SessionCookie相关设置

首先,你要知道Session和SessionId的关系,以及Session和Cookie的关系。

Session是将会话数据存在于服务端的一种机制,由于Http无状态的特性,所以需要SessionId来维持浏览器与服务器的关联。

SessionId只要用特定的方式传递到服务器,服务器就可以解析到SessionId并拿到Session数据。常见的有URL参数、Cookie、Header参数等传递方式。

一般情况下JavaWeb项目的容器会把SessionId存储到Cookie中,这样就可以设置过期时间、只读等属性。

Session的配置一般会写在JavaWeb项目的Web.xml文件中,比如以下配置

需要注意以下配置只能用于Servlet3.0及以上版本,较低版本可用监听器或过滤器实现设置属性。

<session-config>
    # 设置Session数据30分钟后过期
    <session-timeout>30</session-timeout>
    <cookie-config>
        # 设置SessionId在Cookie中的名称
        <name>sop_session_id</name>
        # 设置SessionId存在哪个路径下,跟路径则可全站使用
        <path>/</path>
        # 设置是否只读
        <http-only>true</http-only>
        # 设置SessionId30分钟后过期
        <max-age>10800</max-age>
        # 设置安全机制,只有https才能获取
        <secure>true</secure>
 </cookie-config>
</session-config>
    原文作者:琳千秋
    原文地址: https://segmentfault.com/a/1190000004273956
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞