加了@SessionAttributes("uid")退出登陆后如何清除session

发布时间 2024-01-12 13:55:21作者: 小码子
@RequestMapping("cleanSession")
    public int cleanSession(HttpSession session, SessionStatus sessionStatus, HttpServletRequest request,
                            HttpServletResponse response){
        session.removeAttribute("uid");// 先取出httpsession中的student属性
        session.invalidate(); // 然后让httpsession失效
        sessionStatus.setComplete(); // 最后调用sessionStatus方法
        // 清除cookie,并且退出
        Cookie[] cookies = request.getCookies();
        for (Cookie cookie : cookies) {
            cookie.setMaxAge(0);
            response.addCookie(cookie);
        }
        return 200;
    }

上面就是如何清除session

登录进去后如何防止用户回退到之前的页面

html代码如下

<script>// 页面加载完毕后
window.addEventListener('load', function () {
    // 阻止掉第一次页面加载时的popstate事件
    history.pushState(null, null, location.href);
    window.addEventListener('popstate', function (event) {
        // 当用户点击后退按钮时,这里的代码会被执行
        // 防止浏览器默认的后退行为
        history.pushState(null, null, location.href);
        // 这里可以加入想要执行的逻辑
        axios.post("admin/cleanSession").then(res =>{
            console.log(res)
        })
    });
});
</script>