Session对浏览器的要求

        虽然Session是保存在浏览器中的,对客户端是透明的,它的运行仍然需要客户端浏览器的支持。这是因为Session需要使用Cookies作为识别标志。HTTP协议是无状态的,Session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为JSESSIONID的Cookies,它的值为该Session的id(也就是HttpSession.getId()的返回值),Seesion依据该Cookies来识别是否为同一个用户。

        该Cookie为服务器自动生成。同一个电脑的不同浏览器会生成不同的session。

        如果客户端浏览器将Cookie功能禁用或者客户端浏览器不支持cookie,JavaWeb应用提供了一种解决方案:URL地址重写。

        URL地址重写是对客户端不支持Cookie的解决方案。URL地址重写的原理是将该用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id。这样即使客户端不支持Cookie,也可以使用Session来记录用户状态。HttpServletResponse类提供了encodeURL(String url)实现URL地址重写,例如:

<a href="<%=response.encodeURL("/index.jsp")%>">index.jsp</a>

如果是页面重定向URL,URL地址重写应该这样写:

response.encodeRedirectURL(httpServletRequest.getRequestURI())


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值