【servelt原理_14_Session对象】
创始人
2024-03-15 22:26:24
0

Session对象(重点)

1.Session概述

  • Session用于记录用户的状态。Session是指在一段时间之内,单个客户端与Web服务端的一连串的交互过程。
  • 在一个Session中,客户可能会多次请求访问各种不同的服务器资源

2.Session原理

  • 服务器会为每一次会话分配一个Session对象
  • 同一浏览器发起的多次请求,同属于一次会话(Session)
  • 首次使用Session时,服务器会自动创建session,并创建Cookie存储SessionId发送回客户端
    在这里插入图片描述
    3.Session的使用
    ①:获取session
@WebServlet("/ss")
public class CookieServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 1. 通过request对象获取Session对象HttpSession session = req.getSession();// 获取sessionidSystem.out.println(session.getId());}
}

我们使用浏览器对网站进行访问,我们会发现打印
在这里插入图片描述
在浏览器当中会有
在这里插入图片描述
当我们关闭浏览器,重新打开访问项目我们会发现session变了
在这里插入图片描述
②:Session保存数据
setAttribute(“key”, value)保存数据到session中

session.setAttribute("key", value); //以键值对的形式存储在session当中

③:Session获取数据
getAttribute(“key”)获取session中的数据

session.getAttribute("key");  // 通过String类型的key访问Object类型的value

④:Session移除数据
removeAttribute(“key”)从session中删除数据

session.removeAttribute("key"); // 通过key值删除session中的值

4.Session的生命周期
开始:第一次使用到session的请求产生则创建session
结束

  • *浏览器关闭
  • *session超时失效
  • session.setMaxInactiveInterval(interval)
  • *手动销毁失效
  • session.invalidate();

5.浏览器禁用Cookie后使用Session解决方案
浏览器在默认情况下,会使用cookie的方式将sessionID发送给浏览器,如果用户禁用Cookie,则sessionID不会被浏览器保存,此时浏览器可以使用URL重写这样的方式发送sessionID

①:URL重写
浏览器在访问服务器上的某个地址时,不在使用原来的地址,而是使用经过该写的地址(在原来的地址上边加上sessionID)

②:实现URL重写
response.encodeRedirectURL(url)

@WebServlet("/ss")
public class SetSession extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubHttpSession session = request.getSession();// 重写 URL 追加 SessionIDString newUrl = response.encodeRedirectURL("/SecondServlet/gs");System.out.println(newUrl);response.sendRedirect(newUrl);  //重定向到我们要跳转页servlet}}
@WebServlet("/gs")
public class GetSession extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub// 1. 通过request对象获取Session对象HttpSession session = req.getSession();// 获取sessionidSystem.out.println(session.getId());}}

输出
在这里插入图片描述
实际情况是我们在url上边加上了sessionID
在这里插入图片描述

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...