在WEB开发中,服务器可以为浏览器创建一个会话对象(session对象),通过将一个sessionID 以cookie方式返回给浏览器,只要浏览器不保持关闭或者没有超过session的失效时间,服务器就会一直保持这个session对象存放需要存储的数据,特别应用于用户自动登录。
public void UserInfo(HttpServletRequest request){
JSONObject customerInfo = new JSONObject ();
customerInfo.put("username","hanger");
customerInfo.put("username","hanger111");
// 创建或者获取session对象
HttpSession session = request.getSession();
// 修改session
session.setMaxInactiveInterval(1 * 24 * 60 * 60);// 秒后session对象将要被销毁
// 保存会话数据(作为域对象)
session.setAttribute("customerInfo", customerInfo.toString());
}
public void checkUserInfo(HttpServletRequest request,HttpServletResponse response){
// 创建或者获取session对象
HttpSession session = request.getSession();
String customerInfo = (String) session.getAttribute("customerInfo");
if (StringUtils.isEmpty(customerInfo)) {
response.sendRedirect("http://www.baidu.com");
return null; // 告诉Spring MVC我已经完成了处理 避免因为删除cookies 页面重定向携带jsessionid 报错
// 找不到服务器
} else {
response.getWriter().write(customerInfo);//将客户信息返回到页面
}
}
上述就完成了session的基本操作,当调用UserInfo时,将数据存到session,调用checkUserInfo时,检查session是否还存在,不存在就重定向你想要的页面,比如你的首页,或者登录页,否则将数据发送到页面,用于页面获取,
自动登录的具体实现就是,当请求过来,自己定义一个页面标识是否勾选自动登录的值,当判断不自动登录则不用保存session,下次请求自动重定向到指定页面,否则将数据保存到session中,checkUserInfo方法不用变。