Session初识

  web服务器没有短期记忆,所以需要使用session来跟踪用户的整个会话活动。会话管理有3种解决方案:

  1)使用隐藏域(很少使用)

  在显示页面中使用隐藏域来保存会话ID。例如,在JSP中将input标签的type属性设定为hidden,再将绘画的唯一标识记录到隐藏域的value属性中,并设置name属性。当表单提交时,会话标识也被提交到服务端,服务端根据它找到对应的会话对象。此方法实现起来比较繁琐,需要在每个页面中都包含会话标识表单,所以使用较少。

  2)使用Cookie

  服务器生成会话ID、创建cookie对象、把会话ID放到cookie中、把cookie设置为响应的一部分(这些均由容器负责)。客户端收到响应后,将会话ID保存在cookie中,在下一次请求时从cookie中取得慧华表示并发送给服务器端,服务器端收到请求后,根据发送过来的会话标识查找到对应的会话对象,这样服务器端就清除当前是哪个客户端在连接,并且可以从会话中获得信息。利用cookie实现会话管理是目前开发中采用的主流方法。

Session初识

  3)使用URL重写

  如果浏览器不支持cookie,可以使用URL重写实现会话。就是在URL地址的末尾添加会话标识,改写了原来的URL地址。服务端接收到请求时,解析出会话标识,然后利用会话标识查找出与当前请求相对应的会话对象。

  利用URL重写的方法,整个web应用中的超链接或者脚本中用到的URL都需要添加会话标识,web应用中的每一个页面都需要动态生成,页面的每一个连接或者由客户端生成的跳转指令都必须加上会话标识,这样才能确保是当前会话。当客户访问静态页面时,会话标识将会丢失,当重回动态页面时将不能继续此前的会话,这是它的缺陷之一。

  其次,当用户在浏览网页时,可能会复制URL分享给朋友,因为URL中包含了会话标识,那么其他人可能与当前浏览者使用同一会话对象,这样可能会暴露隐私信息。

上一篇:SpringMVC框架六:拦截器


下一篇:ubuntu 配置jdk报错解决办法