servlet-会话

来源:互联网 发布:矩阵和行列式的转换 编辑:程序博客网 时间:2024/05/16 06:32

Cookie介绍

Cookie是一种在客户端保持HTTP状态信息的技术;Cookie以“名-值”对的形式保存数据,保存到客户端的一个文本文件,与特定客户相关浏览器访问WEB服务器端的某个资源时,由WEB服务器在HTTP应答头中附带传送给浏览器的一个数据,WEB服务器传送给各个客户端浏览器的数据可以是各不相同的;一是WEB浏览器保存了某个Cookie,那么它以后每次访问服务器端时,都应在请求头传回给服务器端;一个Cookie只能记录一种信息,它至少含有一个标识信息的名称(NAME)和设置值(VALUE);一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个站点所提供的Cookie;浏览器一般最多能存入300个Cookie,每个站点的Cookie最多可以放20个Cookie,每个Cookie大小限制在4K。

Cookies工作原理

1.客户端发送请求;2.服务端在响应头中设置Cookies;3.客户端再次请求文档4.服务器读取Cookies客户通过HttpServletRequest对象发送Cookie。Servlet通过HttpServletResponse对象发送Cookie到客户

Cookie方法介绍

Cookie.Cookie(String,String); --用Cookie类构造符创建Cookie,并分配它一个值Cookie.getValue(String name); --被Servlet创建的每个Cookie给一个名和值,此函数返回存储在客户端Cookie的值Cookie.getName(); --用此方法检索Cookie中的名Cookie.setValue(String); --用此函数把String类型的值赋给某个CookieCookie.setMaxAge(int); --用此方法指出客户端浏览器保留Cookie值的最长时间HttpServletResponse.addCookie(); --Cookies由服务器创建并通过HttpServletResponse对象传到客户。用addCookie()方法把Cookie加入到此应答,此方法可调用不只一次,把不同的Cookies加入到要发送给客户的应答HttpServletRequest.getCookie(); --客户以请求形式把数据发送给服务器,它被服务器以HttpServletRequest对象的形式所接收,用此方法可检索请求中Cookie值

Session

session介绍

Session:在计算机中,尤其是在网络应用中,称为"会话控制"。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。Session是指在一段时间内,单个客户访问与Web服务器的一连串相关交互过程。在一个session中,客户可能会多次请求访问同一个网页,也有可能请求访问各种不同的服务器资源。

session的工作原理

当一个Session开始时,Servlet容器将创建一个HttpSession对象,在HttpSession对象中可以存放客户状态信息(例如购物车)。Servlet容器为HttpSession分配一个惟一的标识符,称为SessionID。Servlet容器把SessionID作为Cookie保存在客户浏览器中,每次客户发邮HTTP请求时,Servelt容器从HttpRequest对象中读取SessionID,然后根据SessionID找到相应的HttpSession对象,从而获取客户的状态信息 

HttpSession接口主要方法

初始化阶段:    request.getSesson(); --获得一个Session对象运行阶段:    setAttribuate(String name,Object value); -- 将一对name/value属性保存在HttpSession对象中     getAttribuate(String name); --. getAttribuate(String name)  根据name参数返回HttpSession对象中所有的属性值     removeAtribute(Strings); --移除HttpSession对象中的属性值    getAttribuateNames(); --以数组的方式返回HttpSession对象中所有的属性名释放阶段:    Invalidate(); --使当前的Session失效,servlet 容器会释放HttpSession对象占用的资源    setMaxInactiveInterval(); --设置一个秒数,这个秒数表示客户端在不发出请求时,session被Servlet引擎维持的最长时间。

HttpSession接口其他方法

getID(); --返回SessionID getID(); --判断是否是新创建的Session,如果是新创建的Session,返回true,否则返回false getMaxInactiveInterval(); --读取当前Session可以处于不活动状态的最大时间间隔 session.getCreationTime(); --获得Session对象的创建时间session.getLastAccessedTime(); --最后一次操作时间 

Session失效

1.当客户第一次访问Web应用中支持Session的某个网页时,就会开始一个新和Session。接下来当客户浏览这个Web应用的不同网页时,始终处于同一个Session中。Session拥有特定的生命周期。在以下情况中,Session将结束生命周期,Servlet容器会将Session所占用的资源释放掉:2.客户端关闭浏览器3.Session过期4.服务器端调用了HttpSession的invalidate()方法5.浏览器session没有关闭时,服务器重启,session会序列化保存到本地等待服务器重新启动后反序列化获得sessionSession过期是指当Session开始后,在一段时间内客户没有和Web服务器交互,这个Session会失效 HttpSession类的setMaxInactiveInterval()方法可以设置允许Session保持不活动状态的时间(以秒为单位),如果超过这一时间,Session就会失效。
原创粉丝点击