JavaEE開發學習筆記 3

2021-06-05 16:03:00 字數 2628 閱讀 1711

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...