HttpSession介绍
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的基本使用,如何获取和使用。 - 实现步骤
- 在第一个Servlet中获取请求的用户名。
- 获取HttpSession对象。
- 将用户名设置到共享数据中。
- 在第二个Servlet中获取HttpSession对象。
- 获取共享数据用户名。
- 将获取到的用户名响应给客户端浏览器。
下面是代码实例
前置条件:虚拟路径是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介绍相关推荐
- JavaWeb核心|CookieSessionJsp
文章目录 一.Cookie 1.1 会话介绍 1.2 Cookie介绍 1.3 Cookie属性 1.4 Cookie的方法 1.5 Cookie的添加和获取 1.6 Cookie的使用 1.7 Co ...
- 5.1linux整理
虚拟机下linux的安装与使用 1 虚拟机下linux的安装与使用 1.1 安装虚拟机 1.2 启动虚拟机的linux系统 1.3 Xshell与虚拟机链接 1.3.1 为什么要用Xshell工具 1 ...
- 单点登录与权限管理本质:session和cookie介绍
本篇开始写「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,这部分主要介绍相关的知识概念.抽象的处理过程.常见的实现框架.通过这部分的介绍,能够对单点登录与权限管理有整体上的了解,对其相关 ...
- 介绍一篇关于session的好文章,写的很详细
介绍一篇关于session的好文章,写的很详细 目录: 一.术语session 二.HTTP协议与状态保持 三.理解cookie机制 四.理解session机制 五.理解javax.servlet.h ...
- SpringMVC Controller介绍(转)
SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...
- python模块介绍-locustio:性能测试工具locustio
转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...
- Tomcat容器入门介绍
Tomcat容器入门介绍 Tomcat环境配置 PS:JDK的安装这里就不讲了,找到安装包直接下一步下一步就行了. 1.配置JDK 在Windows10下,找到环境变量 在环境变量中添加JDK主目录 ...
- Apache shiro介绍
原文链接Application Security With Apache Shiro(翻译) 前面自己自己配合谷歌翻译,后面大部分谷歌翻译. 当你尝试保护你的程序时候你会被困扰吗?你会觉得现有的jav ...
- 【引用】ActionContext和ServletActionContext介绍
ActionContext(Action上下文) 1.ActionContext介绍 我们知道Xwork与Web无关性,我们的Action不用去依赖于任何Web容器,不用和那些JavaServlet复 ...
- 【spring-session】介绍
前言 spring-session 2.0.10.RELEASE 项目地址: https://spring.io/projects/spring-session 文档地址: https://docs. ...
最新文章
- JAVA语言教学重点_《JAVA语言》教学大纲
- 二 ASP.NET AutoPostBack
- 中国连续十年成马来西亚最大贸易伙伴
- Android之back键拦截处理
- [每天一个知识点]20-Java语言-菱形运算符
- java案例代码7--双色球的小项目
- linux 软件应用
- 1546: 回形取数
- PyQt5实现局域网聊天工具
- Word文档转PDF后文件变小、图片不清晰解决办法
- 理解Windows操作系统的KMS与MAK密钥
- 使用nodebb搭建一个论坛
- mvn上传pom/jar至Nexus私服
- Mil代码编程的基本概述
- python编写一个名片_详解Python做一个名片管理系统
- 真c++ 从二叉树到红黑树(3)之二叉搜索树BST
- 【链环科技】如何利用“私域流量”——小程序直播做到高转化低退货
- AWS Re: Invent 2021 新CEO Adam 都讲了些什么
- leetcode717.1比特与2比特字符(帮你读题)
- 大数据平台用于生成数据跑批脚本的脚本(version2.0)
热门文章
- oracle中文转全拼音,Oracle数据库之oracle汉字转拼音
- 蓝桥杯 2012 决赛 拼音字母
- CAN通讯进阶-基于Python使用dbc文件解析CAN数据(dbc文件的创建、使用方法)
- 去掉GaussView启动警告窗口的办法
- Volley,OkHttp,Retrofit网络请求及封装
- 桥接文件中file not found
- R语言:多因素Cox回归森林图 (基于forestplot包) 森林图 cox可视化
- python批量读取nc文件_Python读取nc文件的入门级操作
- 【FPGA】【转载】跨越鸿沟:同步世界的异步信号
- 在Excel中批量生成送货单,按数据类别批量生成产品标签