上一篇提到Session有几种常用用法,这一篇主要是关于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保存用户信息就是这样做的,希望运行成功!