HttpSession介绍

  • HttpSession:服务器端会话管理技术
    本质也是采用客户端会话管理技术。
    只不过在客户端保存的是一个特殊标识,而共享的数据保存到了服务器端的内存对象中。
    每次请求时,会将特殊标识带到服务器端,根据这个标识来找到对应的内存空间,从而实现数据共享!
    是Servlet规范中四大域对象之一的会话域对象。
  • 作用:可以实现数据共享
域对象 功能 作用
ServletContext 应用域 在整个应用之间实现数据共享
ServletRequest 请求域 在当前的请求或请求转发之间实现数据共享
HttpSession 会话域 在当前会话范围之间实现数据共享

HttpSession常用方法

返回值 方法名 说明
void setAttribute(String name,Object value) 设置共享数据
Object getAttribute(String name) 获取共享数据
void removeAttribute(String name) 移除共享数据
String getId() 获取唯一标识名称
void Invalidate() 让session立即失效

HttpSession获取

  • HttpSession实现类对象是通过HttpServletRequest对象来获取。
返回值 方法名 说明
HttpSession getSession 获取HttpSession对象
HttpSession getSession(boolean create) 获取HttpSession对象,未获取到是否自动创建

HttpSession的使用

  • 需求说明
    通过第一个Servlet设置共享数据用户名,并在第二个Servlet获取到。
  • 最终目的
    掌握HttpSession的基本使用,如何获取和使用。
  • 实现步骤
  1. 在第一个Servlet中获取请求的用户名。
  2. 获取HttpSession对象。
  3. 将用户名设置到共享数据中。
  4. 在第二个Servlet中获取HttpSession对象。
  5. 获取共享数据用户名。
  6. 将获取到的用户名响应给客户端浏览器。

下面是代码实例

前置条件:虚拟路径是session

第一个Java代码

/*Session的基本使用*/
@WebServlet("/servletDemo01")
public class ServletDemo01 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1,获取请求的用户名String username = req.getParameter("username");//2,获取HttpSession的对象HttpSession session = req.getSession();System.out.println(session);System.out.println(session.getId());//3,将用户名信息添加到共享数据中session.setAttribute("username",username);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

第二个Java代码

/*Session的基本使用*/
@WebServlet("/servletDemo02")
public class ServletDemo02 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1,获取HttpSession对象HttpSession session = req.getSession();System.out.println(session);System.out.println(session.getId());//2,获取共享数据Object username = session.getAttribute("username");//3,将数据响应给浏览器resp.getWriter().write(username + "");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

启动Tomcat后打开两个浏览器。先运行第一个浏览器,再运行第二个

然后控制台会出现这些玩意儿

HttpSession介绍相关推荐

  1. JavaWeb核心|CookieSessionJsp

    文章目录 一.Cookie 1.1 会话介绍 1.2 Cookie介绍 1.3 Cookie属性 1.4 Cookie的方法 1.5 Cookie的添加和获取 1.6 Cookie的使用 1.7 Co ...

  2. 5.1linux整理

    虚拟机下linux的安装与使用 1 虚拟机下linux的安装与使用 1.1 安装虚拟机 1.2 启动虚拟机的linux系统 1.3 Xshell与虚拟机链接 1.3.1 为什么要用Xshell工具 1 ...

  3. 单点登录与权限管理本质:session和cookie介绍

    本篇开始写「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,这部分主要介绍相关的知识概念.抽象的处理过程.常见的实现框架.通过这部分的介绍,能够对单点登录与权限管理有整体上的了解,对其相关 ...

  4. 介绍一篇关于session的好文章,写的很详细

    介绍一篇关于session的好文章,写的很详细 目录: 一.术语session 二.HTTP协议与状态保持 三.理解cookie机制 四.理解session机制 五.理解javax.servlet.h ...

  5. SpringMVC Controller介绍(转)

    SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...

  6. python模块介绍-locustio:性能测试工具locustio

    转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...

  7. Tomcat容器入门介绍

    Tomcat容器入门介绍 Tomcat环境配置 PS:JDK的安装这里就不讲了,找到安装包直接下一步下一步就行了. 1.配置JDK 在Windows10下,找到环境变量 在环境变量中添加JDK主目录 ...

  8. Apache shiro介绍

    原文链接Application Security With Apache Shiro(翻译) 前面自己自己配合谷歌翻译,后面大部分谷歌翻译. 当你尝试保护你的程序时候你会被困扰吗?你会觉得现有的jav ...

  9. 【引用】ActionContext和ServletActionContext介绍

    ActionContext(Action上下文) 1.ActionContext介绍 我们知道Xwork与Web无关性,我们的Action不用去依赖于任何Web容器,不用和那些JavaServlet复 ...

  10. 【spring-session】介绍

    前言 spring-session 2.0.10.RELEASE 项目地址: https://spring.io/projects/spring-session 文档地址: https://docs. ...

最新文章

  1. JAVA语言教学重点_《JAVA语言》教学大纲
  2. 二 ASP.NET AutoPostBack
  3. 中国连续十年成马来西亚最大贸易伙伴
  4. Android之back键拦截处理
  5. [每天一个知识点]20-Java语言-菱形运算符
  6. java案例代码7--双色球的小项目
  7. linux 软件应用
  8. 1546: 回形取数
  9. PyQt5实现局域网聊天工具
  10. Word文档转PDF后文件变小、图片不清晰解决办法
  11. 理解Windows操作系统的KMS与MAK密钥
  12. 使用nodebb搭建一个论坛
  13. mvn上传pom/jar至Nexus私服
  14. Mil代码编程的基本概述
  15. python编写一个名片_详解Python做一个名片管理系统
  16. 真c++ 从二叉树到红黑树(3)之二叉搜索树BST
  17. 【链环科技】如何利用“私域流量”——小程序直播做到高转化低退货
  18. AWS Re: Invent 2021 新CEO Adam 都讲了些什么
  19. leetcode717.1比特与2比特字符(帮你读题)
  20. 大数据平台用于生成数据跑批脚本的脚本(version2.0)

热门文章

  1. oracle中文转全拼音,Oracle数据库之oracle汉字转拼音
  2. 蓝桥杯 2012 决赛 拼音字母
  3. CAN通讯进阶-基于Python使用dbc文件解析CAN数据(dbc文件的创建、使用方法)
  4. 去掉GaussView启动警告窗口的办法
  5. Volley,OkHttp,Retrofit网络请求及封装
  6. 桥接文件中file not found
  7. R语言:多因素Cox回归森林图 (基于forestplot包) 森林图 cox可视化
  8. python批量读取nc文件_Python读取nc文件的入门级操作
  9. 【FPGA】【转载】跨越鸿沟:同步世界的异步信号
  10. 在Excel中批量生成送货单,按数据类别批量生成产品标签