1.Session的概念
Session是依赖于Cookie的, 每次请求时,会将特殊标识带到服务器端,根据这个标识来找到对应的内存空间,从而实现数据共享!是Servlet规范中四大域对象之一的会话域对象。 作用:是Servlet规范中四大域对象之一的会话域对象。可以实现数据共享
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) ; }
}