为了账号安全,请及时绑定邮箱和手机立即绑定

Servlet-实现会话跟踪的技术

标签:
Java
  1. 使用Cookie

    所有的HTTP消息,不管是请求还是相应均包含头信息,
    当返回相应给客户端时Servlet容器把会话的信息添加到响应头信息中
    客户端浏览器接收到响应后提取头信息,并将其存储在本地机中,再发送请求会将信息带回服务器端。由浏览器存储在客户端机器中的头信息就叫做Cookie,以“属性名=属性值”的方式组成的文本信息

    • 向客户端发送Cookie
Cookie c =new Cookie("name","value"); //创建Cookie
c.setMaxAge(60*60*24); //设置最大时效,此处设置的最大时效为一天
response.addCookie(c); //把Cookie放入到HTTP响应中
  • 从客户端读取Cookie
String name ="name";
Cookie[]cookies =request.getCookies();
if(cookies !=null){
    for(int i= 0;i<cookies.length;i++){
        Cookie cookie =cookies[i];
        if(name.equals(cookis.getName()))
            //something is here. 
            //you can get the value
            cookie.getValue();
    }
}
Cookie的优缺点:

优点:数据可以持久保存,不需要服务器资源,简单,基于文本的Key-Value
缺点:大小受到限制,用户可以禁用Cookie功能,由于保存在本地,有一定的安全风险。

  1. URL重写

客户程序在每个URL的尾部添加额外的数据来标识会话
服务器将这个标识符与它所存储的有关会话的数据关联
URL重写的优缺点:
优点:在Cookie被禁用的时候依然可以使用
缺点:必须对网站的URL进行编码,所有页面必须动态生成,不能用预先记录下来的URL进行访问。

  1. 隐藏的表单域
<input type="hidden" name ="session" value="..."/>

表单域的优点:Cookie被禁时可以使用
表单域的缺点:所有页面必须是表单提交之后的结果。

  1. HttpSession

会话对象生存于服务器上,会话自动通过Cookie或URL重写与客户端关联起来,允许我们将任何对象存储到会话中。

  • 使用HttpSession对象
    获取一个与请求相关的会话
    从会话中添加或删除一个属性
    根据需要关闭会话
    具体HttpSession应用请参考笔记:HttpSession实现购物车功能
点击查看更多内容
6人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消