11. 同一使用者共享不同頁面的資料
1)cookie技術
伺服器儲存客戶端的資訊,例如儲存使用者名稱,密碼。伺服器獲得這些資訊後,需要回寫到客戶端的某個目錄。這樣伺服器在使用的時候可以從客戶端讀取cookie中的資訊。
實現功能:
* 儲存使用者名稱密碼,在一定時間內不需要登入
* 記錄使用者訪問**的喜好
* **的個性化,可以定製**伺服器等。
2)sendredirect()轉向
通過該方法將資訊傳遞給下乙個頁面:比如sendredirect(「welcome?uname=shunping」);
優點:傳遞資訊的速度比較快
缺點:只能傳遞字串,不能傳遞物件等其他資訊
sendredirect(「welcome?uname=shunping」); 注:
1. welcome代表要跳轉的那個servlet的url
2. servlet url名和變數之間有?號
3. 如果傳遞兩個以上值,需要使用&號分開,例如:
sendredirect(「welcome?uname=shunping&&pass=ok」);
4. 如果傳遞的是中文,那麼可能會得到亂碼,需要進行處理。
注意每乙個引數獲取時要與傳送是相同
例如引數傳送的**如下:
res.sendredirect("welcome?usrname=" + u + "&&passwd=" + p);
// 從loginhandle中得到或得的使用者名稱
string u = req.getparameter("usrname");
// 從loginhandle中獲得密碼
string p = req.getparameter( "passwd");
引數獲取時,usrname要與傳送時完全相同,否則獲得的值為null。
3)隱藏表單
最常見的一種方式,也是最簡單的一種,但是這種技巧非常管用
它使用的是html中的隱藏表單,因為隱藏表單除了不顯示以外,其他的功能都有。既有名字也有動作。
例如隱藏表單:
4)session技術
當使用者開啟瀏覽器,訪問某個**,被訪問的伺服器就會在伺服器中為該瀏覽器分配乙個記憶體,該空間被這個瀏覽器獨佔。
這個空間就是session空間,該空間中的資料預設存在時間是30min,可以進行修改。
完成功能:
* 網上**中的購物車
* 儲存登入使用者的資訊
* 將某些資料放入到session中,供同乙個使用者的各個頁面使用
* 防止使用者非法登入到某個頁面
如何理解session:
* session可以看做一張表,這個表有兩列,多少行沒有限制,每乙個就是session 的乙個屬性。包含了兩部分,名字和名字對應的值。
使用session:
1)得到session
2) 向session新增屬性
3)從session中得到乙個屬性的值:
string name = hs.getattribute(string name);
4) 從session中刪除摸個屬性值:
hs.removeattribute(string name);
上面說過,session的時間是有限制的,超過一定時間沒有訪問某乙個值,這個值就會被刪除掉。
要修改session的儲存時間,在tomcat下的conf目錄下的web.xml中進行修改。
找到session-config標籤,即可修改session的時間。這個時間是使用者的發呆時間,也就是使用者登入在本**,但是並沒有進行任何動作了。
5) 當瀏覽器訪問某個**時,伺服器會給瀏覽器分配乙個唯一的session id,並以此來區分不同的瀏覽器(即客戶端)。
session 的各個屬性都要占用伺服器的記憶體,因此軟體公司都是在迫不得已的情況下才使用。
使用session共享資料,使用記錄登陸成功為例:
(1) // 將驗證成功的資訊寫入session
// 為了測試,修改session的存在時間
hs.setmaxinactiveinterval( 20);
// 將登陸成功設定進session
hs.setattribute("pass", "ok");
(2) 取出session的資料,根據資料進行處理
// 得到session
string val = (string)hs.getattribute("pass");
if(val == null)
catch(exception ex)
}
Java EE學習筆記之 繼承
子類不能同時繼承多個父類,但是子類可以多層繼承父類 舉個例子 class zu class fuextends zu class ziextends fu父類可以被多個子類繼承。子類有父類的的全部屬性和方法。public class demo02 class zu class fuextends z...
JAVAEE學習查詢
spring各種註解 1.autowired註解 不推薦使用,建議使用 resource autowired可以對成員變數 方法和建構函式進行標註,來完成自動裝配的工作。autowired的標註位置不同,它們都會在spring在初始化這個bean時,自動裝配這個屬性。2.qualifier註解 au...
JAVAEE老師筆記(二)
載入驅動 把驅動類載入到jvm中 獲取連線 根據驅動管理器獲取連線 建立執行器 根據連線穿甲預處理執行。執行sql,處理結果 最麻煩的 關閉資源 不需要手動處理,多數情況下是程式設計人員寫錯了。arithmeticexception a1 classcastexception a3 illegala...