首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Tomcat中支持没有Cookie的会话

在Tomcat中,支持没有Cookie的会话主要是通过URL重写来实现的。这种方法可以在不使用Cookie的情况下,将会话信息附加到URL的末尾。

要实现这一点,需要在Tomcat的配置文件中进行一些设置。具体来说,需要修改Tomcat的context.xml文件,该文件位于$CATALINA_HOME/conf/context.xml路径下。

在该文件中,需要添加以下配置:

代码语言:xml
复制
<Valve className="org.apache.catalina.valves.CorsValve" allow-credentials="true" />

同时,还需要在Tomcat的web.xml文件中添加以下配置:

代码语言:xml<session-config>
复制
   <session-timeout>30</session-timeout>
   <cookie-config>
        <name>JSESSIONID</name>
        <http-only>true</http-only>
       <secure>true</secure>
    </cookie-config>
   <tracking-mode>URL</tracking-mode>
</session-config>

这里的tracking-mode设置为URL,表示使用URL重写的方式来实现会话追踪。

在应用程序中,可以使用HttpSession来管理会话信息。当不使用Cookie时,会话信息将通过URL的形式附加到请求的URL中。

需要注意的是,使用URL重写的方式来实现会话追踪可能会泄露会话信息,因此需要谨慎使用。同时,也需要注意URL的长度限制问题,因为会话信息会附加到URL中,过长的URL可能会导致请求失败。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • java学习与应用(4.5)--Cookie、Session、JSP等

    会话技术:Cookie(客户端),Session(服务端)。一次会话中包含多次请求和响应直到一端断开,在一次会话范围内多次请求间共享数据。 Cookie由服务器发送给客户端使用,供客户端多次使用。服务端:创建Cookie(Cookie对象的构造函数传入Cookie信息)、发送Cookie(response.addCookie方法传入参数),接收Cookie(getCookies)。 idea的Settings-->File and Code Templates-->Web-->Java code templates下可以修改Servlet Annoteated Class自动生成的代码以方便自定义自动生成。 服务器发送cookie保存在,响应头的set-cookie下的参数被客户端获取。当客户端再次请求数据时,请求头中的cookie字段添加了之前获取的cookie。 一次请求可以发送多个cookie键值对(多个Cookie对象通过addCookie方法添加),cookie默认在浏览器关闭时被销毁,可设置持久化存储到硬盘时间(Cookie的setMaxAge方法传入整数秒设定存活时间,0为删除,负数为默认方式) cookie在tomcat8之后支持中文数据(直接使用,但特殊字符仍需编码),在tomcat8之前需要编码(可以使用URLEncoder.encode方法decode解码)。cookie范围,默认情况下tomcat服务器多个项目的cookie不能共享(只能在当前虚拟目录下共享),可以使用setPath方法设置为/则可以共享。 不同的tomcat服务器直接的cookie也可以共享,使用setDomain(String path),设置一级域名,则可以在指定一级域名下共享。 浏览器下的cookie大小有限制(4kb,20个),用于存储少量,不太敏感的数据(不安全)。可以用于网页离线的信息设置和同步(不登录情况下的网页偏好设置)。

    03

    谈一谈分布式会话

    会话Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。曾经的Servlet时代(jsp)),一旦用户与服务端交互,服务器tomcat就会为用户创建一个session,同时前端会有一个jsessionid,每次交互都会携带。如此一来,服务器只要在接到用户请求时候,就可以拿到jsessionid,并根据这个ID在内存中找到对应的会话session,当拿到session会话后,那么我们就可以操作会话了。会话存活期间,我们就能认为用户一直处于正在使用着网站的状态,一旦session超期过时,那么就可以认为用户已经离开网站,停止交互了。用户的身份信息,我们也是通过session来判断的,在session中可以保存不同用户的信息。session的使用之前在单体部分演示过,代码如下∶

    00

    理解分布式会话

    会话 Session 代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。早期的 Servlet时代(jsp),一旦用户与服务端交互,服务器 tomcat 就会为用户创建一个 session,同时前端会有一个 jsessionid,每次交互都会携带。如此一来,服务器只要在接到用户请求时候,就可以拿到 jsessionid,并根据这个ID在内存中找到对应的会话 session,当拿到 session 会话后,那么我们就可以操作会话了。会话存活期间,我们就能认为用户一直处于正在使用着网站的状态,一旦 session 超期过时,那么就可以认为用户已经离开网站,停止交互了。用户的身份信息,我们也是通过session 来判断的,在 session 中可以保存不同用户的信息。

    02

    分布式Session架构演示史

    Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。曾经的Sevlet时代(JSP),一旦用户与服务端交互,Tomcat就会为用户创建一个session,同时前端会有一个jsessionid,每次交互都会携带。 服务器只要在接到用户请求时候,就可以拿到jsessionid, 并根据这个ID在内存中找到对应的会话session,当拿到session会话后,那么我们就可以操作会话了。会话存活期间,我们就能认为用户一直处于正在使用着网站的状态,session超期过时,那么就可以认为用户已经离开网站,停止交互了。用户的身份信息,我们也是通过session来判断的,在session中可以保存不同用户的信息。 session的使用之前在单体部分演示过,代码如下:

    02

    2. 深入理解 Cookie 与 Session ,Facade 设计模式, 分布式 Session

    "BAIDUID=40E9A74CB78CA05206FD128BEB27E014:FG=1; PSTM=1568883435; BIDUPSID=4927A15EB7E602CFABA425A910D5136C; BD_UPN=123253; BDSFRCVID=OvtOJeC62C6a1m7wlk3EjPnnWgA5FqRTH6aowb_SsXNp6D3o4q0aEG0P_U8g0Kub2VhkogKKKgOTHICF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=tJAj_D-btK03fP36qR6sMJ8thmT22-ustN5RQhcH0hOWsIOF3-Rj5U-q-PneQMc4WjrG-pLXbtQCqj69DUC0DjO-jaKOJjFsb5vfstbHatnjDb7GbKTjhPrM0HQiWMT-0bFHLRO_BxJofUoeDRQY3TkW0tjnbRof-Hn7_JjCbb5Mhq5oMPKh3TtObMrMWUQxtNR--CnjtpvhKJ3D3-oobUPUyUJ9LUvA02cdot5yBbc8eIna5hjkbfJBQttjQn3hfIkj2CKLtC8WhD_mDjRV5-JH-xQ0KnLXKKOLVb38Wh7keq8CDR76QU4q-lJQa5Jd2HRXWf3jJUn_jtQ2y5jHhnIDhUcRXJ3vtaRz0RjFKxTpsIJMMl_WbT8U5ecgJfRuaKviahvjBMb1OqODBT5h2M4qMxtOLR3pWDTm_q5TtUJMeCnTDMFhe6jyDNADJ6FDf5vfL5uat4bqqPbYh4t_hnDsePnq-URZ5mAqoq8KKCjVMP31MTbpMl8HhRJM36Ql-GrnaIQqa-3D_UORWMT2jx3yhNODJPo43bRTMMKy5KJvfJ_4347OhP-UyPRMWh37Wm7lMKoaMp78jR093JO4y4Ldj4oxJpOJ5JbMopCafJOKHICCDj82jUK; H_PS_PSSID=1428_21093_29568_29220; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; ZD_ENTRY=baidu; BD_HOME=1; delPer=0; BD_CK_SAM=1; PSINO=5; COOKIE_SESSION=735862_0_6_5_10_3_0_1_5_2_0_1_69129_0_0_0_1573784783_0_1574520625%7C9%23721633_42_1572833622%7C9; sug=3; sugstore=1; ORIGIN=0; bdime=0"

    03
    领券