Servlet的session问题

浏览器与web server之间通常是无状态的,为了某种需求,如做购物车,需要一种有状态的连接机智.WEB就引入了SESSION的概念.实现的方式就是SESSION TRACKONG.一般实现方法有:

1 建立含有数据的隐藏表格字段

2 重写URL

3 使用COOKIE

4 就是本文要讨论的Servlet SESSION API问题

为了识别每个CLIENT的身份,WEB SERVER会给每个client分配一个SESSION ID,并随网页一起传給CLIENT.以上四种方式处理的不同在于CLIENT下次再请求页面时,这个SESSION ID如何传给服务器,以便让服务器知道是谁.

第一种方式的缺点是通过查看网页原代码就知道SESSION ID,安全隐患大,如

  <form name="form" mothod=post aciton="aa.jsp">

     <input type="hidden" name="name" value="aiqiuming"/>

     <input type="submit" value="transmit"/>

   </form>

第二种方式是把SESSION ID写在URL上,以GET方式传输到服务器,如

    ::URL:: http://www.abc.com?sessionid=123456

   同样不安全,而且URL的长度有限制

第三种:使用COOKIE,受浏览器设置限制(默认是在一定的安全范围内是可以使用的),而且不同的人用同一台电脑,可以互相看到对方的信息,如购物车的信息

第四种:当CLIENT不接受COOKIE的时候,就改用重写URL方式了,解决了当不能使用COOKIE的问题.此时必须用encodeURL()或encodeRedirectURL()方法.如:

     <a href=www.ezget.com.cn>优得网</a>  改为:

     <a href='<%=response.encodeURL("www.ezget.com.cn)"%>优得网</a>

   又如:

      response.sendRedirect(www.ezget.com.cn) 改为:

      response.sendRedirct(response.encodeRedirectURL(www.ezget.com.cn)) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值