Servlet期末复习二

会话管理

一.定义

  通俗的说:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个绘画。

  会话管理是跟踪跨Web用户活动的过程

  会话管理其实是实现跨页面数据传输。

  Http协议是无状态的,每个请求都是独立的,单独和服务器建立连接,这样服务器无法确认两个请求是否是同一个用户,也无法跟踪油壶数据和活动,所以需要实现会话管理

二.会话管理技术

1.隐藏表单字段

在html页面设置一个隐藏的表单,通过方法动态改变值来确认用户

2.URL重写

通过URL以管理用户会话,多是为了提交一些数据给下一个组件

URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的URL是“UserProfile.aspx?ID=1”那么它可以被重写成 “UserProfile/1.aspx”,这样的URL,这样的网址可以更好的被网站所阅读。

3.Cookie

Cookie是一种客户端的会话管理技术

Cookie有服务器端生成,存放到客户端小型文本文件中,用于存储一些少量的数据

一个Cookie只能存放一项信息,一键值对的形式存储数据,键值都是字符串

Cookie和响应一起发送到客户端,Cookie是作为响应爆头/表头被发送到客户端,所以必须调用响应对象的addCookie(Cookie c )方法将Cookie对象添加到响应对象,Cookie才会被存到客户端

默认一个Cookie在浏览器关闭后被清除,默认是浏览器会话结束清楚Cookie

每个主机只能获取自己存放的Cookie,一个主机/一个域名存放的Cookie只能自己读取,其他主机/域名不能读取这些Cooie,如百度存放的Cookie只能百度读取,网易的Cookie只能网易用

一旦存放了Cookie,则下次向改程序发送请求的时候,Cookie会根治请求一起被发送到服务器端。Cookie作为请求的爆头和请求一起发送到服务器端.

Cookie不安全,容易被攻击或篡改,不宜存放机密数据,Cookie信息不应该太大,否则发送数据量大影响传输,Cokie适合存放少量不机密的数据

Cookie可悲客户端删除或禁用。

Cookie的数量,大小限制等因浏览器而不同

4.Session

Session是服务器端技术

服务器在运行时可以为每一个用户浏览器创建一个其独享的session对象,我们可以将一些再回话期间使用的数据放到该session对象,实现会话期间数据共享

session对象是存储在服务器的内存中,在会话超时或调用invalidate方法被摧毁。但若是服务器突然关闭,则会话数据会消失,这是需要持久化技术的辅助来确保数据不会消失

 

三.使会话失效的三种方式

1.调用HttpSession的setMaxlnactivelnterval(int time)设置会话的最大部分活动时间

2.调用HttpSession的inbbalidata()方法使会话立刻失效

3.在web.xml文件使用session-timeout标记配置会话的超时时间

你可能感兴趣的:(JavaWeb)