我们已经知道如何使用session了,但我们知道,在session中值是不能一直存放的,所以这次我们就来了解下该如何清空session的值。
Session值清空
在java中,session清空有着这么两种情况:
1.session.removeAttribute("sessionname")
用来清除SESSION中某个属性.
2.session.invalidate()
让SESSION失效.
我们可以使用getAttributeNames来得到所有属性名,然后再removeAttribute
例如:
public void removeSessionAttributr(HttpServletRequest request) { Enumeration em = request.getSession() .getAttributeNames(); //得到session中所有的属性名 while (em.hasMoreElements()) { request.gteSession() .removeAttribute(em.nextElemet() .toString()); //遍历删除session中的值 } }
现在我们用一个实例来更加清楚的了解一下该如何清空session值
如:退出登录清空session
1)、首先获取项目路径
< % String path = request.getContextPath(); % >
2)、设置页面退出按钮
<a href="javascript:;" onclick="logout()">安全退出</a> < script > //退出系统的方法 function logout() { location.href = "<%=path%>/logout.do"; } </script>
3)、后台代码编写
@RequestMapping("/logout") public void logout(HttpServletRequest request, HttpServletResponse response) { request.getSession() .invalidate(); try { request.getRequestDispatcher("/login.jsp") .forward(request, response); } catch (Exception e) { e.printStackTrace(); } }
4)、退出登录后让浏览器后退按钮失效(记得在登录页面编写)
<script type="text/javascript"> $(function(){ if(window.history && window.history.pushState){ $(window).on("popstate", function(){ window.history.pushState("forward", null, "#"); window.history.forward(1); }); } window.history.pushState("forward", null, "#"); //在IE中必须得有这两行 window.history.forward(1); }); </script>
以上就是关于如何清空session值的所有内容,如还需要了解更多编程常见问题及答案的详情,就请持续关注本网站吧。
推荐阅读: