四、session

一、问题:

       Request对象解决了一次请求内的不同Servlet的数据共享问题,那么一个用户的不同请求的处理需要使用相同的数据怎么办呢?

  解决:

  使用session技术。

二、原理:      

  用户使用浏览器第一次向服务器发送请求,服务器在接受到请求后,调用对应的Servlet进行处理。在处理过程中会给用户创建一个session对象,用来存储用户请求处理相关的公共数据,并将此session对象的JSESSIONID以Cookie的形式存储在浏览器中(临时存储,浏览器关闭即失效)。用户在发起第二次请求及后续请求时,请求信息中会附带JSESSIONID,服务器在接收到请求后,调用对应的Servlet进行请求处理,同时根据JSESSIONID返回其对应的session对象。

使用:

1.创建session对象

  HttpSession session =req.getSession();

2.存储数据到session中

  session.setAttribute(String name, Object value);

3.获取session对象

  HttpSession session =req.getSession();

4.获取session中的数据

  session.getAttribute(String uname);注意:返回的object类型,需要强制转换

5.删除session中的数据

  session.removeAttribute(String uname);注意:如果有数据则删除,没有则什么都不做。

三、特点:

  • Session技术是依赖Cookie技术的服务器端的数据存储技术。
  • 服务器进行创建
  • 每个用户独立拥有一个session
  • 默认存储时间为30分钟(可以在tomcat下的web.xml中进行配置)

三、作用:

解决了一个用户的不同请求的数据共享问题。

四、注意:

只要不关闭浏览器,并且session不失效的情况下,同一个用户的任意请求在项目的任意Servlet中获取到的都是同一个session对象。

五、作用域:

一次会话

猜你喜欢

转载自www.cnblogs.com/qiaoxin11/p/12907331.html