1. 程式人生 > >Session的用途一:儲存使用者資訊

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儲存時間到了(使用者發呆時間一般達到30mintimeout,這時使用者名稱為空),則返回到登陸介面,否則直接返回則會出現不友好介面。

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儲存使用者資訊就是這樣做的,希望執行成功!