聽完 JavaTwo 孫三才講師演講完後關於 JSP Session 的一個疑問 |
尚未結案
|
JackTasy
初階會員 ![]() ![]() 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
一般書上常教的做法是把變數暫存在 session 中以實作類似購物車功能,當然我也不例外採用此做法。
但孫講師的論點,因為要實作 Load Balancing & no cookie ,所以可能有很多 Web Container 在不同 PC,也就是說不可以用 session 來暫存資料了,而必須把暫時性的資料儲存在 Database or File 裡。(我大概描述孫講師的結論,希望大家懂我的意思)
結果我回家馬上作測試,把 Browser Cookie 安全性設成最高(表示禁用 Cookie),結果我的網站就不能正常使用了,因為我會在登入後的每一個 Page 去檢查 session 理登入身分和正確性,但 session 在轉到新頁面時已經不見了(JSP 無法從 User 端 Cookie 取出 session information...)。
這又延伸另一個問題,用 Tomcat Manager 觀察該 Web Server session count 會一值累增,日基月累下來想必會造成負擔,且易成為人家攻擊弱點(一值用禁用 cookei 的連線來 request,讓 Tomcat 負荷大增...)。 經過一番思索,我把我想像中的做法描述如下,不知道對不對,請各方先學不吝指教:
當 A.jsp 產生第一個新的 session 時,馬上將 session 『序列化』存入資料庫,而資料庫為兩個欄位(SessionID,SessionObj),導向 B.jsp (或爾後所有新的 Page)時設法在 B.jsp 藏一個隱藏欄位 SessionID 以方便再從資料庫中取出,B.jsp 需要用到 Session 時在依隱藏的 SessionID 為 Key 去資料庫中抓取出 SessionObj 來讀取或寫入,若有寫入則在存入 DB 一次,爾後皆如此辦理。
上述做法聽起來似乎很麻煩但相信寫成共用模組會好些。不知道我這樣的想法和做法是否正確呢? 謝謝! JackTasy
------
JackTasy |
hahalin
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
你可以去 http://edu.uuu.com.tw/jspwidget/default.jsp 安裝jspwidget後也安裝他的範例程式 執行起來就可以研究了,在進階技巧->延展性的區段操作範例程式看看, 它使用了兩個方式並行,log in database and file,並且有設定session time out, 比較需要注意的是他的範例程式都是架構在他所設計的jspwidget上,不過也是有提供source可以參考. 我也在研究當中,歡迎在ktop上一起討論,你也可以在孫講師的留言版跟他請教也可以,他都會回答.
|
JackTasy
初階會員 ![]() ![]() 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
|
hahalin
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
JackTasy
初階會員 ![]() ![]() 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
引言: 您客氣了,在delphi的世界我只是個中手,在java的世界我也還只是個低手. 不過,java的使用需要有更穩固的物件導向基礎... 最近正在怨嘆基本功夫不夠...
------
JackTasy |
hahalin
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
JackTasy
初階會員 ![]() ![]() 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
|
neoart
版主 ![]() ![]() ![]() ![]() ![]() 發表:22 回覆:582 積分:425 註冊:2003-05-09 發送簡訊給我 |
引言:引言: < >< > |
JackTasy
初階會員 ![]() ![]() 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
|
JackTasy
初階會員 ![]() ![]() 發表:22 回覆:97 積分:28 註冊:2002-06-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |