写点什么

【Java Web 系列】Session 的工作流程与基本使用

作者:倔强的牛角
  • 2022 年 6 月 14 日
  • 本文字数:1152 字

    阅读完需:约 4 分钟

写在前面😘

大一电子信息工程新生,请多多关照,希望能在 InfoQ 社区记录自己的学习历程!

一、Session 简介

1️⃣什么是 Session

Session服务端会话跟踪技术,将数据保存到服务端

2️⃣Session 工作流程


  • 在服务端的 AServlet 获取一个Session对象,把数据存入其中

  • 在服务端的 BServlet 获取到相同的 Session 对象,从中取出数据

  • 就可以实现一次会话中多次请求之间的数据共享了

3️⃣Session API 参考

Session 对象由服务器创建,通过 HttpServletRequest.getSession() 方法可以获得 HttpSession 对象


HttpSession 接口定义了一系列对 Session 对象操作的方法,如下表。


二、Session 基本使用

0️⃣获取 session

  • 使用 request 对象获取 session 对象


HttpSession session = request.getSession();
复制代码

1️⃣存储数据

  • 存储数据到 session 域中,Object可以存储任意类型的数据


void setAttribute(String name, Object o)
复制代码

2️⃣获取数据

  • 根据 key,获取值


Object getAttribute(String name)
复制代码

3️⃣删除数据

  • 根据 key,删除该键值对


void removeAttribute(String name)
复制代码

4️⃣代码案例

  1. SessionDemo1:获取 Session 对象、存储数据


/** * 存储数据 */@WebServlet(name = "SessionDemo1", value = "/s1")public class SessionDemo1 extends HttpServlet {    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // 1.获取session对象        HttpSession session = request.getSession();        // 2.存储数据        session.setAttribute("username","大角牛向前冲");    }
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }}
复制代码


  1. SessionDemo2:获取 Session 对象、获取数据


/** * 获取数据 */@WebServlet(name = "SessionDemo2", value = "/s2")public class SessionDemo2 extends HttpServlet {    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // 1. 获取Session对象        HttpSession session = request.getSession();        // 2. 获取数据        Object username = session.getAttribute("username");        // 3. 打印结果        System.out.println(username);    }
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }}
复制代码


  1. 先访问 s1,再访问 s2,查看控制台输出结果


写在后面🍻

感谢观看啦✨

有什么不足,欢迎指出哦💖

发布于: 刚刚阅读数: 3
用户头像

把学问造就,还期身健行优。 2022.06.02 加入

大一在读,电子信息工程专业。 希望在InfoQ写作社区记录自己的学习历程!

评论

发布
暂无评论
【Java Web 系列】Session的工作流程与基本使用_Java_倔强的牛角_InfoQ写作社区