会话管理

HTTP是一种“无状态”协议,这意味着每次客户端打开一个网页时,都建立一个单独的连接到Web服务器,服务器不会保留之前客户端请求的任何记录。但是对许多Web应用而言,服务器需要记录客户端与服务器之间的一系列请求及响应等特定信息。因此引入了会话管理。

从特定用户端到服务器的一系列请求称为会话(session)。一个会话是由客户端在一次浏览过程中发出的所有HTTP请求组成的。记录会话的技术被称为会话跟踪。会话跟踪需要唯一的表识每一个会话。有以下三种方式来维持Web客户端和Web服务器之间的会话:Cookie、URL重写、隐藏表单域。另外,Servlet还提供了HTTPSession接口来进行会话跟踪。

cookie:

Cookie是存储在客户端计算机上的文本文件,并保留各种跟踪信息。首先,服务器脚本向浏览器发送一组Cookie(如姓名、年龄等)。然后,浏览器将这些信息存储在本地计算机上。当再向Web服务器发送请求时,浏览器会把这些Cookie信息发送到服务器,使服务器根据它们来识别用户。

在Servlet中设置Cookie步骤:

    创建cookie对象:
    Cookie cookie = new Cookie("key","value");
    设置最大生存周期:
    cookie.setMaxAge();
    发送Cookie到HTTP响应头:
    response.addCookie(cookie);

URL重写:

URL重写在URL地址后面增加一个包含会话信息的字符串来记录会话信息。URL地址与会话信息字符串之间用“?”分隔,多个参数之间用“&”分隔,URL重写在浏览器不支持Cookie时能够更好地维持会话

隐藏表单域:

可以在表单里增加一个hidden类型的隐藏字段以及一个唯一的会话ID,例如:

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

这种方式只在表单被提交时才有效,在单击超文本链接是无效。

HTTPSession接口:

可以通过调用HttpServletRequest的公共方法getSession()来获取HttpSession对象,例如:

    HttpSession session = request.getSession();

需要在向客户端发送任何文档内容之前调用request.getSession().HttpSession对象中常用的几个重要的方法:
getAttribute、setAttribute、removeAttribute、getAttributeNames等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值