java session清空,怎么清空session的值?

TheDisguiser 2020-07-01 16:41:17 java常见问答 4662

我们已经知道如何使用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值的所有内容,如还需要了解更多编程常见问题及答案的详情,就请持续关注本网站吧。

推荐阅读:

session是什么意思?什么是session?

session和cookie的区别是什么?有哪些区别?

session对象的作用是什么?有什么作用?