Session的用途一:儲存使用者資訊
上一篇提到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
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(
}
}
Session儲存使用者資訊就是這樣做的,希望執行成功!