博客
关于我
Session_细节_hehe.employment.over.16.6
阅读量:386 次
发布时间:2019-03-05

本文共 1570 字,大约阅读时间需要 5 分钟。

Session技术细节说明

16.13.1 当客户端关闭后,服务器不关闭,两次获取session是否为同一个?

默认情况下,获取的不是同一个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);    }}

16.13.2 客户端不关闭,服务器关闭后,两次获取的Session是否为同一个?

服务器关闭后,两次获取的Session不是同一个,但需要注意以下事项以确保数据安全:

  • Session钝化:在服务器正常关闭前,将Session对象系列化到硬盘上。
  • Session活化:服务器重新启动时,将Session文件转化为内存中的Session对象。

通过上述方法,可以确保Session数据在服务器关闭后仍能被正确恢复。

16.13.3 Session何时被销毁?

Session会在以下情况下被销毁:

  • 服务器关闭;
  • Session调用invalidate()方法;
  • Session达到默认失效时间(30分钟)。
  • 需要注意的是,默认失效时间可以通过修改web.xml配置文件来更改。

    示例配置:

    30

    16.13.4 Session的特点

  • Session用于存储一次会话中多次请求的数据,存在于服务器端;
  • Session可以存储任意类型、任意大小的数据;
  • Session与Cookie的主要区别包括:
    • Session存储数据在服务器端,Cookie存储在客户端;
    • Session无数据大小限制,Cookie有数据大小限制;
    • Session数据更安全,Cookie较不安全。
  • 转载地址:http://uugwz.baihongyu.com/

    你可能感兴趣的文章
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    NT symbols are incorrect, please fix symbols
    查看>>
    ntelliJ IDEA 报错:找不到包或者找不到符号
    查看>>
    ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    ntpdate 通过外网同步时间
    查看>>
    NTPD使用/etc/ntp.conf配置时钟同步详解
    查看>>
    NTP及Chrony时间同步服务设置
    查看>>
    NTP配置
    查看>>
    NUC1077 Humble Numbers【数学计算+打表】
    查看>>
    NuGet Gallery 开源项目快速入门指南
    查看>>
    NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
    查看>>
    nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    查看>>
    Nuget~管理自己的包包
    查看>>
    NuGet学习笔记001---了解使用NuGet给net快速获取引用
    查看>>
    nullnullHuge Pages
    查看>>
    NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
    查看>>
    null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
    查看>>
    Numix Core 开源项目教程
    查看>>
    NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
    查看>>