zoukankan      html  css  js  c++  java
  • 四、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对象。

    五、作用域:

    一次会话

  • 相关阅读:
    【Java123】enum枚举及其应用
    sql查询优化_慢查询
    9.4 如何实现属性可修改的函数装饰器?
    9.2 如何为被装饰的函数保存元数据?
    python的如何通过实例方法名字的字符串调用方法?
    9.1 如何使用函数装饰器 用装饰器解决重复计算问题
    asyncio 笔记
    python笔记截图
    list绑定
    表单数据交互
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12907331.html
Copyright © 2011-2022 走看看