前面用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保存用戶信息就是這樣做的,希望運行成功!