Cookie
CookieUtil类
public static void addCookie(String name,String value,int days,HttpServletResponse response)
{
Cookie cookie = new Cookie(name,value);
cookie.setMaxAge(60*60*24*days);
cookie.setPath("/");
response.addCookie(cookie);
}
public static Cookie getCookie(String name,HttpServletRequest request)
{
Cookie []cookies = request.getCookies();
if(cookies==null) return null;
for(Cookie cookie:cookies)
{
if(name.equals(cookie.getName()))
{
return cookie;
}
}
}
public static String getCookieValue(String name,HttpServletRequest request)
{
Cookie cookie = this.getCookie(name,request);
if(cookie==null) return null;
return cookie.getValue();
}
Controllor
因为cookie是明文传送,所以密码须加密,这里举例MD5单向加密
//无加密
String userName = request.getParameter("userName");
String userPass = request.getParameter("userPass");
String saveUser = request.getParameter("saveUser");
if(saveUser!=null)
{
CookieUtil.addCookie("userName",userName,7,response)
CookieUtil.addCookie("userPass",userPass,7,response)
}
//单向加密
String username = request.getParameter("username");
String password = request.getParameter("password");
Userinfo userinfo = UserinfoDAO.getDao().findByUsernameAndPassword(username, password);
if (userinfo != null) {
//如果选中了记住我,则写cookie
String remeberMe = request.getParameter("rememberMe");
if(remeberMe!=null)
{
//写cookie 因为cookie是明文传送,所以密码应该加密
CookieUtil.write("username",username,"/",60*60*24*30,response);
CookieUtil.write("password", MD5Utils.mymd5(password),"/",60*60*24*30,response);
}
jsp获取cookie
<input type="text" value="<%=CookieUtil.getCookieValue("userName",request)==null?"":CookieUtil.getCookieValue("userName",request)%>" >
<input type="text" value=" <%=CookieUtil.getCookieValue("userPass",request)==null?"":CookieUtil.getCookieValue("userPass",request)%>" >
<input type="checkbox" name="saveUser" value="save" checked>保存用户名密码