URL重写——在禁用Cookie的情况下使用Session

Cookie是以文本文件的方式存储在客户端,而Session却存储在服务器内存中,当客户发送请求时,Cookie信息会随着请求一起发送到服务器,服务器会根据Cookie中的SessionID寻找客户对应的Session对象,因此如果Cookie被禁用后,Session会受到影响。

这样就需要使用URL重写来解决问题了:

HttpServletRespoonse接口提供了重写URL的方法,声明如下:


public java.lang.String encodeurl(java.lang.String url)

URL重写的机制如何呢?:

  • encodeurl()方法在使用时,首先会判断Session是否启用,如果未启用,直接返回参数URL;
  • 判断浏览器客户端是否支持Cookie,如果支持,直接返回参数URL;
  • 如果浏览器客户端不支持Cookie,就在参数URL中加入SessionID信息,然后返回修改后的URL。

为了解决上述问题,可以对网页中的超链接稍作修改:

修改前:


<a href="login.jsp">登录</a>


修改后:


<a href="<%=response.encodeurl("login.jsp")%>">登录</a>




  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值