• 健身房的储物柜

    考虑这个场景:
    李佳汜到健身房去练胸肌,首先领了钥匙,然后进了更衣间,把衣服,裤子,手机,钱包都放在盒子里面。

    毛竞也到健身房,去练翘臀。首先领了钥匙,然后 进了更衣间,把衣服,裤子,手机,《Java 21天从入门到精通》也放在了一个盒子里,但是这个盒子是和李佳汜的是不同的。

    健身房,就相当于服务器,盒子,就是会话Session。

    切换到我们常见的购物网站的场景
    李佳汜登陆天猫之后,在购物车里看到的物品是蜡烛和皮鞭
    毛竞登陆天猫之后,在购物车里看到的物品是手铐和《Java 21天从入门到精通》

  • 什么是Session

    Session对应的中文翻译是会话。 
    会话指的是从用户打开浏览器访问一个网站开始,无论在这个网站中访问了多少页面,点击了多少链接,都属于同一个会话。 直到该用户关闭浏览器为止,都属于同一个会话。

  • setSession.jsp
    session.setAttribute("name", "teemo");

    session对象保存数据的方式,有点像Map的键值对(key-value)
    "name"是键,"teemo" 是值

    <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%><%session.setAttribute("name", "teemo");
    %><a href="getSession.jsp">跳转到获取session的页面</a>
  • getSession.jsp
    session.getAttribute("name");

    通过session,根据"name" 取出对应的名称

    <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%><%String name = (String)session.getAttribute("name");
    %>session中的name: <%=name%>
  • Session和Cookie的关系

    回到健身房的储物柜这一段:

    李佳汜和毛竞都有自己的盒子,那么他们怎么知道哪个盒子是自己的呢? 
    通过钥匙就能找到自己的盒子了。

    盒子对应服务器上的Session。
    钥匙对应浏览器上的Cookie。

  • Session 原理示意图

  • 如果没有cookie,session如何工作

    如果浏览器把cookie功能关闭,那么服务端就无法获取jsessionid,每一次访问,都会生成一个新的session对象。
    为了解决这个问题,可以使用

    response.encodeURL("getSession.jsp"))

    response.encodeURL方法会把getSession.jsp这个url转换为

    getSession.jsp;jsessionid=22424AEA86ADBE89F335EEB649D997A8

    通过这个方式,提交jsessionid到服务器。 服务器根据这个jsessionid匹配到对应的session. 与session相关的功能,就可以正常工作了。

    <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%><%session.setAttribute("name", "teemo");
    %><a href="<%=response.encodeURL("getSession.jsp")%>">跳转到获取session的页面</a>
  • session的有效期

    比如登录一个网站,登录后,在短时间内,依然可以继续访问而不用重新登录。
    但是较长时间不登录,依然会要求重新登录,这是因为服务端的session在一段时间不使用后,就失效了。
    这个时间,在Tomcat默认配置下,是30分钟。
    可以通过 d:/tomcat/conf/web.xml 中的session-config 配置进行调整

JSP-session相关推荐

  1. 【JSP HTTP 状态码】【JSP 表单处理】【JSP 过滤器】【JSP Cookie 处理】【JSP Session】【JSP 文件上传】

    JSP HTTP 状态码 HTTP请求与HTTP响应的格式相近,都有着如下结构: 以状态行+CRLF(回车换行)开始 零行或多行头模块+CRLF 一个空行,比如CRLF 可选的消息体比如文件,查询数据 ...

  2. jsp session

    first.jsp <%@ page contentType="text/html;charset=UTF-8"%> <html> <body> ...

  3. Java Web应用(JSP/Session/Cookie)

    JSP JSP本质上就是一个Servlet,JSP主要负责与用户交互,将最终的界面呈现用户,HTML+JS+Java的混合文件.-->前后端不分离 原理:当服务器接收到后缀.jsp文件请求时,将 ...

  4. 【JSP学习笔记】JSP session对象的应用 模拟商城购物车

    前言: 下面贴出的实现代码核心部分摘抄了xiufeng大佬的代码 正文 session对象简介: session对象的主要用途也是保存信息,当用户第一次到达网站时,系统为其分配一个session.se ...

  5. JSP session过期时间(小记)

    以下情况,Session结束生命周期,Servlet容器将Session所占资源释放: 1.客户端关闭浏览器 2.Session过期 3.服务器端调用了HttpSession的invalidate() ...

  6. jsp session

    session对象主要用于保存用户的各种信息,知道它的生命周期(一般是900S)超时或者被人为释放为止 可以通过session对象来判断此用户是否是合法用户 在服务器上通过session来区分每一个上 ...

  7. PHP多台服务实现单点登录,如何在多台服务器上共享Session(PHP/JSP/ASP.NET)以及单点登录(SSO)...

    如何在多台服务器上共享Session(PHP/JSP/ASP.NET)以及单点登录(SSO) Apache Session复制: 使用Memcached来共享PHP Session: 使用Cohere ...

  8. jsp内置对象------session

    session对象 JSP利用servlet提供的HttpSession接口来识别一个用户,存储这个用户的所有访问信息. 默认情况下,JSP允许会话跟踪,一个新的HttpSession对象将会自动地为 ...

  9. jsp学习笔记 - 内置对象 session

    1.session 主要用来用户的登录和注销 设置用户名,获取用户名 session.setAttribute("username","johnson"); s ...

  10. JSP中Session的使用

    JSP session使用方法 <%@page contentType="text/html;charset=GB2312"%> <html>   < ...

最新文章

  1. ES6新增语法与内置对象扩展
  2. linux fork函数浅析
  3. linux的git命令,linux命令实战安装git、配置git、创建仓库、部署项目
  4. 理解 ActivityExecutionContextManager
  5. android 解决getNetworkInfo过时
  6. 如何节约数据中心空间
  7. Spark面对OOM问题的解决方法及优化总结 (转载)
  8. Flask基础知识总结
  9. TLS/SSl 相关攻击漏洞及检测方法(testssl.sh)
  10. mongo 4.2版本注意事项
  11. 基于javaWEB技术的SSM音乐网站设计与实现(含论文+程序设计+PPT答辩)
  12. C# NPOI 和 CSV 导出Excel 功能实现
  13. golang 内存管理
  14. 判断模式分解是否为无损连接的方法
  15. Java精品项目源码第127期新闻发布网站系统
  16. Garrett Motion将在Auto Shanghai 2021上展示用于混合动力汽车和燃料电池汽车的下一代电动助力技术
  17. python是什么?python又可以用来干什么?(详细讲解来啦)
  18. 笨办法学习python3 ex3
  19. Android自带组件之Gallery 实现3D画廊效果
  20. 进口书可以到亚马逊买要便宜些

热门文章

  1. echarts地图地名显示_ECharts特定地图区域的文本标签
  2. echart地图知识点
  3. https自签证书tls握手时错误或go系统错误处理
  4. 【入门PLC】02、博途TIA Portal V16的HMI简单操作学习(人机交互界面)
  5. 帆软数据可视化:BI区域地图制作
  6. 开源棒棒糖学习Android-26之Button、EditText等等的老子TextView一万多行的类源码赏析
  7. Android应用程序安装过程解析(源码解析)
  8. 社会主义市场体系与宏观调控
  9. 大数据是什么?一篇文章正确告诉你
  10. 沪江计算机考研老师,[回报沪江]从六级370到考研74,我的08研英之路[原创].doc