您的位置:首页 > 运维架构 > 网站架构

在javaweb网站中添加记住我的功能

2014-10-25 13:51 281 查看
在前台界面添加如下代码:图片+多选框

<img border="0" src="${pageContext.request.contextPath}/images/remeber.jpg" width="84" height="20">
<input type="checkbox" name="rememberMe" <%=checked %> id="rememberMe" >
在后台添加如下代码:

//处理Cookie
String name = request.getParameter("name");
String password = request.getParameter("password");
LoginUtils.addCookie(name,password,response,request);


创建如下类:

LoginUtils.java

public class LoginUtils {

//加入cookie中
public static void addCookie(String name, String password, HttpServletResponse response, HttpServletRequest request)
throws UnsupportedEncodingException {
if(StringUtils.isNotBlank(name)&&StringUtils.isNotBlank(password)){

//创建Cookie
Cookie nameCookie=new Cookie("name",java.net.URLEncoder.encode(name,"utf-8"));
Cookie passwordCookie=new Cookie("password",password);

//设置Cookie的父路径
nameCookie.setPath(request.getContextPath()+"/");
passwordCookie.setPath(request.getContextPath()+"/");

//获取是否保存Cookie,复选框被选中,则保存
String rememberMe=request.getParameter("rememberMe");
if(rememberMe==null){//不保存Cookie
nameCookie.setMaxAge(0);
passwordCookie.setMaxAge(0);
}else{  //保存Cookie
nameCookie.setMaxAge(7*24*60*60);
passwordCookie.setMaxAge(7*24*60*60);
}
//加入Cookie到响应头
response.addCookie(nameCookie);
response.addCookie(passwordCookie);
}
}
}


此时再在前台页面添加如下处理方法:

<%
String name="";
String password="";
String checked="";
Cookie[] cookies=request.getCookies();
if(cookies!=null&&cookies.length>0){
for(int i=0;i<cookies.length;i++){
Cookie cookie=cookies[i];
if("name".equals(cookie.getName())){
name=URLDecoder.decode(cookie.getValue(),"utf-8");
//System.out.println("name="+name);
checked="checked";
}
if("password".equals(cookie.getName())){
password=cookie.getValue();
//System.out.println("password="+password);
}
}
}

%>


注意:
为了避免保存在cookie中的值出现中文而发生乱码问题,可以用先中文编码再解码的方法。

先在后台如下编码:

Cookie nameCookie=new Cookie("name",java.net.URLEncoder.encode(name,"utf-8"));


再在前台如下解码:
name=URLDecoder.decode(cookie.getValue(),"utf-8");


总结:通过本文知道如何解决中文乱码的问题。

其次在本文中知道如何保存cookie和读取cookie的内容,

其中主要设置cookie的路径为项目路径,避免有些页面无法获取cookie的值的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: