remove和invilidate的区别:
1、session.invalidate(),这个会使整个客户端对应的Session失效,里面的所有东西都会被清空,同时也释放了资源。通过session.removeAttribute方法删除的是我们传递的对象,不会让整个Session失效。
java实现注销登录的3种方式区别
1、servlet
HttpServletRequest request
HttpSession session=request.getSession();
session.removeAttribute("username");
session.invalidate()
2、springmvc
HttpSession session
登入,设置session
session.setAttribute("username", username);
注销,删除session
request.getSession().removeAttribute("username");
request.getSession().invalidate();
3、struts2HttpServletRequest request=ServletActionContext.getRequest();
request.getSession().invalidate();
或者
ServletActionContext.getRequest().getSession().removeAttribute("username");
//false代表:不创建session对象,只是从request中获取。
HttpSession session = request.getSession(false);
if(session==null){
return;
}
session.removeAttribute("user");
//从定向到index.jsp
response.sendRedirect("/session/index.jsp");