同一使用者的不同頁面共享資料的方法

2022-09-11 01:33:10 字數 3461 閱讀 5448

方法一  cookie

伺服器在客戶端儲存使用者的資訊,並在需要的時候從客戶端(本機)讀取使用者資訊

功能: (1) 儲存使用者名稱和密碼,在一定時間不需重新登入

(2) 記錄使用者訪問**的喜好

(3) **的個性化

方法二  sendredirect跳轉(保密性不好,傳遞的資訊會在url上顯示)

例項:sendredirect("wel?uname=ksyoon&pass=123");

注意點:(1)wel代表要跳轉到的該servlet的內容;

(2)servlet的url與變數之間用?連線;

(3)若要傳遞兩個或兩個以上變數用&連線;

(4)若要傳遞的資料是中文,會得到亂碼;

修改logincl.j**a**,實現當使用者資訊填寫正確時,跳轉到歡迎頁面並顯示使用者名稱和密碼

修改wel.j**a**,獲取使用者名稱並在頁面顯示

在瀏覽器上訪問http:127.0.0.1:8080/myweb-site/login,使用者資訊填寫正確後,跳轉到歡迎頁面,顯示如下:

方法三  session技術

session的各個屬性會占用伺服器的記憶體,因此軟體公司在迫不得已的情況下才使用session

應用: (1) 網上**中的購物車 (2) 儲存登入使用者的資訊 (3)防止使用者非法登入到某個頁面

(4)將某些資料放在session中,供同一使用者的各個頁面使用

常用方法:

(1)獲得session,若沒有則建立session    httpsession hs = req.getsession(true);

(2)向session中新增屬性      hs.setattribute(string name,object value);

(3)從session中獲得某個屬性   string name= hs.getattribute(string name);

(4)從session中刪除某個屬性

hs.removeattribute(string name);

(5)設定session存在時間,預設存在時間為30min,此方法中時間單位s     hs.setmaxinactiveinterval(int time);

思路:

(1)在sessiontest1.j**a中新建session屬性,並設定其存在時間,在sessiontest2.j**a中訪問session屬性,並測試在存在時間之外訪問session是否能讀取其屬性值

(2)分別進行servlet部署,如下:

(3)開啟tomcat,在瀏覽器上訪問http:127.0.0.1:8080/myweb-site/sessiontest1,頁面效果如下:

在設定的session存在時間10s內,在同個頁面上將sessiontest1改成sessiontest2,頁面效果如下:

發現:兩個頁面效果中sessionid一樣,在10s不做任何重新整理操作的情況下,再次訪問sessiontest2,頁面效果如下:

方法四

隱藏表單提交(form)

案例思路:分別新建兩個j**a檔案,乙個命名為hiddenform1(隱藏使用者的性別資訊),另乙個命名為hiddenform2(文字輸出使用者性別資訊),

**如下:

分別進行servlet部署

開啟tomcat,在瀏覽器上訪問頁面顯示如下:

隨意填寫使用者資訊後,點選login,頁面顯示如下:

若想通過傳輸變數到使用者性別,只需新增或修改hiddenform1的**

string s = "女";

pw.println("");

最終頁面顯示:

不同按鈕進入同乙個頁面顯示不同的div

頁面一的按鈕 納稅報表 資產負債表 利潤表現金流量表 頁面二在載入前進行判斷 mounted function else if list.indexof debet 1 else if list.indexof profit 1 else if list.indexof money 1 window...

防止同一使用者同時登陸的實現 單WEB服篇

背景 功能像咱倆上同乙個qq號,你先上去了,然後我用同樣的號登陸,你的肯定就掉線了,就是這個功能.該方案只考慮了web伺服器為一台的情況.多台以後再寫一篇.思路 記錄使用者登陸資訊 登陸時間,使用者 id 每隔一段時間 如 5秒怎麼樣?檢查儲存的登陸資訊。如果發現多個,則比較各個的登陸時間,如果自己...

Ubuntu中的使用者管理(一)使用者賬戶

linux 系統中通常有三種型別的使用者 超級使用者 super user 常規使用者 regular user 和系統使用者 system user 超級使用者的 uid和 gid都是 0。常規使用者的 uid從 1000 開始。系統使用者的 uid從 1 499 還包括 65,534 ubunt...