创建Session时会把含有Session ID 的Cookie对象加到响应对象上
从逻辑角度讲,我们应该会这样做,因为创建Session的目的,在于保存会话信息,所以要把SessionID传给浏览器,以便后面的请求能找到服务器中自己的Session,来获取自己的会话信息。
我们来分析下源代码
以下面的代码为例
public class IndexServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 解决乱码问题response.setContentType("text/html;charset=utf-8");// 创建或者获取保存用户信息的Session对象HttpSession session = request.getSession();User user = (User) session.getAttribute("user");if (user == null) {response.getWriter().print("您还没有登录,请<a href='/chapter05/login.html'>登录</a>");} else {response.getWriter().print("您已登录,欢迎你," + user.getUsername() + "!");response.getWriter().print("<a href='/chapter05/LogoutServlet'>退出</a>");// 创建Cookie存放Session的标识号/** Cookie cookie = new Cookie("JSESSIONID", session.getId());* cookie.setMaxAge(60 * 30); cookie.setPath("/chapter05");* response.addCookie(cookie);*/}}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}
先运行一下看下效果
可以看出浏览器获得了SessionID,那么上面的代码中哪一句,让响应对象添加了SessionID,最有可能的是HttpSession session = request.getSession(),我们debug进去看看:
我们再从这里进去看看
最后我们可以看到响应对象添加了响应消息头,消息头就有session ID,如下图
创建Session时会把含有Session ID 的Cookie对象加到响应对象上相关推荐
- http模块中创建最基本的web服务器,以及req请求对象和res相应对象
晚上好啊小伙伴们,最近几天来温度有了很大的回升,能明显感觉到没有那么冷了,现在连刮风都是那种温柔柔的暖风,让人感觉很舒服,最近爱上了打羽毛球,每天晚上都会出去玩儿会儿,然后回去睡觉会睡得非常舒服,也同 ...
- php 鼠标小手,鼠标移动至少一次时创建PHP会话(Create PHP session when mouse moved at least once)...
鼠标移动至少一次时创建PHP会话(Create PHP session when mouse moved at least once) 我想在鼠标移动至少一次时创建php会话,如果鼠标继续移动则不需要 ...
- java怎么销毁session_「销毁session」java中session和cookie的创建与销毁
1.后端创建cookie Cookie cookName =newCookie("cookName", cookValue);cookName.setMaxAge(60*60*24 ...
- 基于session id 的cookie对比token有什么好处。
在Web应用程序中,使用Token作为身份验证机制是非常常见的.尤其是在RESTful API中,Token被广泛用于验证客户端身份. 在这种情况下,每个用户都会被分配一个唯一的Token,用于识别其 ...
- Spring Session - Cookie VS Session VS Token 以及 Session不一致问题的N种解决方案
文章目录 Cookie VS Session VS Token History Cookie Session Token Session不一致问题 Session不一致解决方案 nginx sessi ...
- php session有什么用,session有什么作用?
什么是session 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务器程序 ...
- cookie代码加时间多久出现一次_一文彻底搞懂Cookie、Session、Token到底是什么
前言 在了解这三个概念之前我们先要了解HTTP是无状态的Web服务器,什么是无状态呢?就像上面夏洛特烦恼中经典的一幕对话一样,一次对话完成后下一次对话完全不知道上一次对话发生了什么.如果在Web服务器 ...
- 实战 用户登录、session校验、分布式存储session
实现登录功能 然后再创建login.css存放于在static下,css目录中,id 为 content 的 样式: #content {margin-left: 220px;margin-right ...
- session mysql java_PHP自定义session处理方法,保存到MySQL数据库中
我们都知道,session是为了解决因特网的无状态属性而创造出来的.我们可以用session这种会话管理机制来构建购物车.监控站点网络访问,甚至还可以跟踪某一个用户具体是如何使用你的应用的.PHP默认 ...
最新文章
- 关于学习Python的一点学习总结(50->描述符)
- R语言ggplot2可视化:ggplot2使用geom_mark_ellipse函数进行椭圆形圈定(注释)特定的数据簇或组
- [转载] 杜拉拉升职记——33 360度评估
- 安装Windows服务时出现试图加载格式不正确的程序或系统找不到指定的文件以及相关问题
- 2020 我的C++学习之路 C++PrimerPlus第五章课后习题
- SAP S/4HANA表结构之变
- python爬虫什么书好_初学python爬虫看什么书
- NLog-ASP.NET Core 5入门
- Java 8 Friday Goodies:新的新I / O API
- 第七十期:IT技术人员的自我修养
- 证书的应用之一 —— TCPSSL通信实例及协议分析(上)
- 什么是java dom_java web--DOM
- 堡垒机原生ssh登陆解决方案
- el表达式原样输出问题
- 11gR2rac的两个bug
- 性能测试之工具对比-ngrinder jmeter loadunner及ngrinder安装使用方法
- node http创建正向代理_Node.JS实战20:用execFile执行外部程序
- 新中大财务软件虚拟化解决方案
- 关闭Cadence Orcad Capture CIS原理图弹出startpage页面的方法
- android 音量流类型,android 音量控制setVolumeControlStream
热门文章
- 《转》Unsafe与CAS
- Eclipse安装UML 插件
- Eclipse项目上传码云、从码云上检出项目、修改检出项目后在提交到码云、看此篇即可
- 05-BIO,NIO,AIO几种通讯模式的比较
- 【Elasticsearch】针对初学者的Elasticsearch搜索故障排除
- 【Spring】Spring hibernate JSR-303 Validator 自定义参数校验器
- 95-235-040-源码-task-Flink 对用户代码异常处理
- hive The specified datastore driver (“com.mysql.jdbc.Driver“) was not found
- 19-linux下ElasticSearch.6.2.1与head、Kibana、X-Pack、SQL、IK、PINYIN插件的配置安装
- hadoop基本思想与概念