Session会话(重点)
什么是session
- 服务器会给每一个用户(浏览器)创建一个session对象
- 一个session独占一个浏览器,只要浏览器没有关闭,这个session就存在
- 用户登录之后,整个网站他都可以访问—>保存用户的信息;保存购物车的信息
Session技术,底层其实是基于Cookie技术来实现的
Session和Cookie的区别
- Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)
- Session把用户的数据写到用户独占Session中,服务器保存(保存重要的信息,减少服务器资源的浪费)
- Session对象由服务创建
Session使用场景
- 保存一个登录用户的信息;
- 购物车信息;
- 在整个网站中,经常会使用的数据,我们将它保存在Session中
代码演示
//为了简洁 把导入的包去掉了...
public class SessionDemo01 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//解决中文乱码问题
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
//得到session
HttpSession session = req.getSession();
//在session中存东西
// session.setAttribute("name","张三");
//Person类有两个属性 name和age
session.setAttribute("name",new Person("李四",1));
//获取session的ID
String sessionId = session.getId();
//判断session是不是新创建
if(session.isNew()){
resp.getWriter().write("session创建成功,ID:"+sessionId);
}else{
resp.getWriter().write("session已经存在了,ID:"+sessionId);
}
// //session创建的时候做了什么事情
// Cookie cookie = new Cookie("JSESSIONID", sessionId);
// resp.addCookie(cookie);
}
}
//得到session
HttpSession session = req.getSession();
//String name = (String) session.getAttribute("name");
Person name = (Person) session.getAttribute("name");
resp.getWriter().print(name);//.print对象也能输出 .write不能输出对象
//手动注销,有另一种在web.xml中注销
//session.removeAttribute("name");
//session.invalidate();
session.setMaxInactiveInterval(30);//单独设置时长(设置当前session30秒后超时)
session.getMaxInactiveInterval();//获取session的超时时间(默认30分钟)
会话自动过期:web.xml配置
<session-config>
<!-- 15分钟后session自动失效 ,以分钟为单位 -->
<session-timeout>15</session-timeout>
</session-config>
本文详细介绍了Session的概念,指出Session是服务器为每个浏览器创建的对象,用于存储用户信息,如登录状态和购物车。Session基于Cookie实现,但数据存储在服务器端,更安全。讲解了Session的创建、获取、设置超时时间以及如何通过代码操作Session。还提到了会话自动过期的两种方式:通过setMaxInactiveInterval()方法单独设置和在web.xml配置文件中全局设置。此外,讨论了Session的使用场景,如保存登录用户信息和购物车数据。
411

被折叠的 条评论
为什么被折叠?



