欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Session的用途一:保存用户信息

程序员文章站 2022-07-02 20:18:20
前面用MVC模式设计了一个简单的小系统。不知发现没有,实现分页效果时,为了显示所登录的用户名,每换一次页面就得传一次用户名,显得非常麻烦,引入Session对象就会使问题变得非常简...
前面用MVC模式设计了一个简单的小系统。不知发现没有,实现分页效果时,为了显示所登录的用户名,每换一次页面就得传一次用户名,显得非常麻烦,引入Session对象就会使问题变得非常简单。
首先理一下思路,用户登录系统后,用户名就是他自己了,这时我们就可以把用户信息保存下来,由于我们只是想显示用户名,于是我用Session对象只保存用户名。怎么做呢?
用户登录系统后,是在控制器LoginServlet中完成验证的,如果登录成功,就用Session对象保存用户名信息,代码如下:
//将用户名放入session,以备后用
   // request.getSession().setMaxInactiveInterval(3);单位是秒
   request.getSession().setAttribute("user", u);
而welcome.jsp页面则用来接收session对象的用户名信息,代码如下:
String u=(String)session.getAttribute(“user”);
还需要加一些判断,如果session保存时间到了(用户发呆时间一般达到30min则timeout,这时用户名为空),则返回到登陆界面,否则直接返回则会出现不友好界面。
if(u==null){     
         response.sendRedirect("login.jsp?error=1");
         // return;
      }else{
         out.println(u);     
      }
返回到登录前页面,可以通过error参数判断用户是否正常登陆,没有的话就给出一些提示信息,提示用户非正常登陆,并要求用户登录。
String error=request.getParameter("error");
System.out.println("error:----------------"+error);
if(error!=null){
      if(error.equals("1")){
         out.println("<font size=6>您没有正常登陆,请登录!</font>");
      }
}
Session保存用户信息就是这样做的,希望运行成功!