1. 分析
退出功能相对简单,我在登录的时候,已经将user对象存入session,只要通过退出按钮点击之后发送ajax请求,移除session中的user对象,并刷新页面就ok了
2. 代码实现
2.1 前端
function exit(){
$.post("user/exit",{
},function(){
location.reload();
});
}
2.2 后端
public void exit(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession();
User user = (User) session.getAttribute("user");
if(user != null){
session.removeAttribute("user");
}
}
完成了。
补充,因为在页面需要判断用户是否已经登录,在头页面需要在页面加载完成之后发送ajax请求查看session是否有对象
代码
前端
$(function(){
$.post("user/findOne",{
},function(user){
if(user != ""){
$("#user_name").html("欢迎回来,"+user.name);
}else{
$("#user_name").html("");
}
});
});
后端
public void findOne(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {
User user = (User) req.getSession().getAttribute("user");
if(user != null){
ObjectMapper om = new ObjectMapper();
resp.setContentType("application/json;charset=utf-8");
om.writeValue(resp.getWriter(),user);
}
}