在服务器端产生: //如果有数据,就说明用户登陆成功,登陆成功的时候,需要在服务器去记录登陆成功的信息 HttpSession session =req.getSession(); //把用户的编号存储在session中 int userid = rowSet.getInt("userid"); session.setAttribute("userid", userid); |
在其它页面或者servlet中判断session是否存在,如果存在,说明用户是登陆过的,如果不存在说明用户是没有登陆过:
//判断用户是否登陆过,如果没有登陆,就直接跳转到登陆的页面 HttpSession session = req.getSession(); if(session.getAttribute("userid")==null){//说明用户没有登陆 //页面发生跳转 //url路径发生改变,如果在request里存储数据,该数据无法到达下一个跳转的页面 resp.sendRedirect("login.jsp"); //另外一种跳转方式,是服务器端跳转,url路径不会发生改变,但是实际指向内容发生了改变 //并且该数据是可以通过request传递到下一个页面的 //req.getRequestDispatcher("login.jsp").forward(req, resp);
return; } |
关于Seesion的特点:
1)表示一次客户端与服务器之间的会话,什么时候Session会消失(如果一旦关掉浏览器,Session就自动消失了)。
2)session有可能会被服务器给清理掉。当服务器发现资源不足的情况下。session的存储是不稳定的,有可能会被服务器给清理掉。
3)session有一个最大会话时间。session在规定的时间内过期了,那么就相当于session已经被清理掉了。