1.当客户端关闭后,服务器不关闭,两次获取Session是否为同一个?
1.默认情况下不是
把浏览器关闭后在访问 session的地址值不一样了
如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存
@WebServlet("/sessionD3") public class SessionD3 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //使用Session获取数据 //获取Session HttpSession session = request.getSession(); System.out.println(session); //期望客户端关闭后,session也能相同 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); } }
2.客户端不关闭,服务器关闭后,两次获取的session是同一个吗?
1.不是同一个,要确保数据不丢失
>session的钝化:
在服务器正常关闭之前,将session对象序列化到硬盘上
>session的活化:
在服务器启动后,将session文件转化为内存中的session对象即可。
##(tomcat服务器已经帮我们把钝化和活化的事情完成了,我们不需要考虑
idea中完成不了,它可以钝化,但是活化不了)——操作(20_会话技术_Session_细节2)
【本地硬盘操作】
3.session的失效时间(什么时候被销毁)。
1.服务器关闭
2.session对象调用invalidate()。
3.session默认失效时间 30分钟
在D:\apache-tomcat-9.0.22\conf\web.xml下
配置修改
<session-config>
<session-timeout>30</session-timeout>
</session-config>
①session用于存储一次会话的多次请求的数据,存在服务器端
②session可以存储任意类型,任意大小的数据
1.session存储数据在服务器端,Cookie在客户端
2.session没有数据大小限制,Cookie有
3.session数据安全,Cookie相对于不安全
搜索
复制