JSP & Servlet - 5.Session技术
程序员文章站
2024-03-20 12:25:52
...
Session技术
Request对象解决了一次请求内不同的Servlet数据共享问题, 那么一个用户不同请求的处理需要使用相同数据就要使用到session技术。
1. Session简介
1.1 session原理
用户使用浏览器第一次向服务器发送请求,服务器在接收到请求后没调用对应的Servlet进行处理。在处理过程中会给用户创建一个session对象,用来存储用户请求处理相关的公共数据,并将此Session对象的JSESIONID以COokie的形式存储在浏览器中(临时存储,浏览器关闭即失效)。用户在发起第二次请求后续请求直接根据JSESIONID获取到session对象,保证不同请求获取共享数据。
1.2 session特点
- 存储在服务器端
- 服务器进行创建
- 依赖Cookie技术
- 生命周期为一次会话
- 默认存储时间为30分种(在指定的时间内使用后,重新计时)
1.3 session作用
解决了一个用户不同请求处理的数据共享问题。
2. Session的使用
@WebServlet("/mySession1")
public class SessionTestServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//创建/获取session对象,session默认存储时间为30分钟
HttpSession s = req.getSession();
//设置存储时间为1天,单位为秒
s.setMaxInactiveInterval(24*60*60);
//设置session存储数据
s.setAttribute("name", "mySession");
}
}
@WebServlet("/mySession2")
public class SessionTestServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//创建/获取session对象
HttpSession s = req.getSession();
//从session中取出存储数据
String name = (String)s.getAttribute("name");
System.out.println(name);
//强制session失效
s.invalidate();
}
}
/*output:
mySession
*/
-
HttpSession hs = req.getSession();
如果请求中拥有session标识符(JSESSIONID),则返回其对应的session队形。
如果请求中没有session标识服,则创建新的session对象,并将其JSESSIONID作为cookid数据存储到浏览器内存中(临时存储)。
如果之前的session对象失效了,也会重新创建一个新的session对象,并将其JSESSIONID存储到浏览器内存中。
-
在tomcat中统一修改session存储时间
<session-config> <session-timeout>30</session-timeout> </session-config>
推荐阅读
-
Servlet+JSP(十):Session 学习
-
Servlet和JSP学习总结(八)--Session
-
JSP & Servlet - 5.Session技术
-
Servlet会话跟踪技术(session)
-
JSP的内置对象和会话跟踪技术
-
jsp的四种会话跟踪技术
-
servlet jsp传参的理解(session,request如何使用)
-
Servlet 的生命周期图 博客分类: JSP servletlifecycle
-
【转载】web.xml出现中
default 的作用 博客分类: jsp&servlet servlet -
servlet&jsp 第九章JDBC连接 博客分类: Servlet&jsp jdbcservlet