本文共 1570 字,大约阅读时间需要 5 分钟。
默认情况下,获取的不是同一个Session实例。
如果需要确保获取的Session实例相同,可以通过创建带有JSESSIONID值的Cookie并设置其最大有效期来实现持久化。package com.xww.session;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpSession;import java.io.IOException;@WebServlet("/sessionDemo3")public class SessionDemo3 extends HttpServlet {    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // 获取Session        HttpSession session = request.getSession();        System.out.println(session);        // org.apache.catalina.session.StandardSessionFacade@63bfc40                // 创建持久化Cookie        Cookie c = new Cookie("JSESSIONID", session.getId());        c.setMaxAge(60 * 60);        response.addCookie(c);    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        this.doPost(request, response);    }}  服务器关闭后,两次获取的Session不是同一个,但需要注意以下事项以确保数据安全:
通过上述方法,可以确保Session数据在服务器关闭后仍能被正确恢复。
Session会在以下情况下被销毁:
invalidate()方法;需要注意的是,默认失效时间可以通过修改web.xml配置文件来更改。
30 
转载地址:http://uugwz.baihongyu.com/