URL重写

本文探讨了在客户端禁用Cookie的情况下,服务器如何通过URL重写保持Session状态。通过在URL中添加jSessionId参数,确保了即使在无Cookie环境下也能正确识别用户会话。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为服务器需要在每次请求中获取sessionId,然后找到客户端的session对象。那么如果客户端浏览器关闭了Cookie呢?那么session是不是就会不存在了呢?

其实还有一种方法让服务器收到的每个请求中都带有sessioinId,那就是URL重写!在每个页面中的每个链接和表单中都添加名为jSessionId的参数,值为当前sessionid。当用户点击链接或提交表单时也服务器可以通过获取jSessionId这个参数来得到客户端的sessionId,找到sessoin对象。

//它会查看cookie是否存在,如果不存在,在制定的url后添加sessionid参数
//如果cookie存在,它就不会在url后添加任何东西
<% out.println(response.encodeURL("/Demo11/AServlet"))%>

以使用response.encodeURL()对每个请求的URL处理,这个方法会自动追加jsessionid参数,使用response.encodeURL()更加“智能”,它会判断客户端浏览器是否禁用了Cookie,如果禁用了,那么这个方法在URL后面追加jsessionid,否则不会追加。

简单来说:就是把所有页面中的路径,都使用response.encodeURL("..."):处理一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值