Session基本使用及原理和使用细节

简介: Session基本使用及原理和使用细节

一、Session基本使用

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


JavaEE提供HttpSession接口,来实现一次会话的多次请求间数据共享功能

ea42ea43c4ef4252a1da9e64f3ef2c35.png

使用:


1、获取Session对象

HttpSession session = request.getSession();

2、Session对象功能:


void setAttribute(String name,Object o):存储数据到session域中

Object getAttribute(String name):根据key,获取值

void removeAttribute(String name):根据key,删除该键值对


代码示例:


ServletDemo1:

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet("/demo1")
public class ServletDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //存储到Session中
        //1.获取Session对象
        HttpSession session = request.getSession();
        //2.存储数据
        session.setAttribute("username","zs");
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

ServletDemo2:

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet("/demo2")
public class ServletDemo2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取数据,从session中
        //1.获取Session对象
        HttpSession session = request.getSession();
        //2.获取数据
        Object username = session.getAttribute("username");
        System.out.println(username);
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

访问demo1及demo2时控制台输出:

909b6a3e6cff49f790a080effe8754ca.png

二、Session原理

Session是基于Cookie实现的


8ac878d8094741ef9b0d3633f28cd778.png

关闭浏览器后重新访问demo1的浏览器开发者工具显示:

713340ceb9c04fe4bdfffa7d76b17ede.png

重新访问demo2的浏览器开发者工具显示:

7935426aab914e3f89f91cb6e72fffbc.png

三、Session使用细节

0f7ab606fb1b4d51a0ffe483defc4918.png

Session钝化、活化:


钝化:在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中

活化:再次启动服务器后,从文件中加载数据到Session中


Session销毁:


默认情况下,无操作,30分钟自动销毁

<session=config>
    <session-timeout>30</session-timeout>
</session-config>

调用Session对象的invalidate()方法

目录
相关文章
|
6月前
|
存储 编解码 开发者
Cookie原理及使用细节
Cookie原理及使用细节
81 0
|
2月前
|
数据库
ThinkPHP6模型中的获取器,修改器及搜索器的简单使用
本文介绍了ThinkPHP6模型中的获取器、修改器和搜索器的使用方法。获取器用于对模型数据进行自动处理,修改器用于处理模型设置的数据,搜索器用于封装字段的查询条件表达式。文章通过示例代码展示了如何在模型中定义和使用这些方法,以及如何通过控制器调用模型方法进行数据操作。
|
6月前
|
Java C#
C#学习相关系列之多线程(七)---Task的相关属性用法
C#学习相关系列之多线程(七)---Task的相关属性用法
ES6新增循环对象的四种方法(通俗易懂)
ES6新增循环对象的四种方法(通俗易懂)
|
6月前
|
存储 JavaScript
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
48 0
|
存储 数据库
每日一道面试题之请介绍一下session的工作原理
每日一道面试题之请介绍一下session的工作原理
|
存储
Servlet Session基本概念和使用方法
Session是Web开发中的一种机制,用于在服务器端跟踪和管理用户的状态信息。它允许服务器在用户访问网站期间存储和检索与特定用户相关的数据。 当用户访问服务器时,服务器会为每个用户创建一个唯一的会话,并为该会话分配一个唯一的会话标识符(Session ID)。这个会话标识符通常通过Cookie在客户端保存,但也可以通过URL参数或其他方式传递。通过会话标识符,服务器能够识别特定用户的请求,并在会话中存储和检索数据。 通过使用Session,服务器可以在用户的整个访问过程中保持用户状态,并且可以在不同的页面和请求之间共享数据。这对于实现用户认证、数据共享、购物车管理等功能非常有用。 需要注意的
156 0
|
存储 应用服务中间件 API
Session使用和原理分析图与实现原理
Session使用和原理分析图与实现原理
179 0
|
存储 数据安全/隐私保护
session的概念特点及原理
session的概念特点及原理
114 0
|
JSON JavaScript 前端开发
PHPJSON解析 原理与用法
在现代编程语言中,JSON已经成为最流行的数据交换格式之一。而PHP作为一门流行的服务器端编程语言,自然也提供了一套完整的JSON解析库。本文将介绍PHPJSON解析的原理与用法,以帮助PHP开发者更好地使用JSON格式数据进行开发。
89 0