1.Session的概念
- Session是依赖于Cookie的,
- 每次请求时,会将特殊标识带到服务器端,根据这个标识来找到对应的内存空间,从而实现数据共享!是Servlet规范中四大域对象之一的会话域对象。
- 作用:是Servlet规范中四大域对象之一的会话域对象。可以实现数据共享
![在这里插入图片描述](https://img-blog.csdnimg.cn/ed0eb7ce1355494893a5ca466b57bd79.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ3NjQ5NTg1,size_16,color_FFFFFF,t_70)
2.Session设置共享数据
@WebServlet("/ServletDemo1")
public class ServletDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String username = req.getParameter("username");
HttpSession session = req.getSession(true);
System.out.println(session);
System.out.println(session.getId());
session.setAttribute("username",username);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
3.Session获取共享数据
@WebServlet("/ServletDemo2")
public class ServletDemo2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
HttpSession session = req.getSession();
System.out.println(session);
System.out.println(session.getId());
String username = (String) session.getAttribute("username");
resp.getWriter().write(username);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
4.Cookie的禁用解决方法
@WebServlet("/ServletDemo3")
public class ServletDemo3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession(false);
System.out.println(session);
if (session==null){
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("为了不影响使用,请不要禁用浏览器的Cookie");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}