作者NewSpec (新規格)
看板java
標題[JSP ] 請問JSP生命週期與全域變數問題
時間Tue Oct 22 11:38:30 2013
大家好, 小弟有幾個問題想請教
1. JSP所translate出來, 用以實際render網頁輸出的servlet實體
在web container中的數量與存活時間大概是多久?
我找了好一陣子, 都沒有找到什麼相關資料
我想當然一定是implementation dependent的
但還是想看看有沒有什麼確切的資料或文獻可以佐證的~
例如如果同時有m個request進來的話, JSP servlet會產生n個實體
在t時間內如果沒有其他request發生, 該n個實體會被清除掉這樣.
2. 在JSP中以<c:set scope="page"/>設定的變數是servlet中的instance variable
這個認知沒錯吧?
(A: 錯, 是儲存於代表page context的物件中的)
如果我現在把頁面中的文字訊息都用這種方式以字串變數儲存
是否是個好的practice?(但看起來就不好XD)
如果不好, 那不好在哪邊呢?
================ 以下是我遇到的問題以及後來得到的答案: =================
我們用的framework是Grails
我在review code的時候發現有人在GSP中大量使用了g:set來儲存網頁中訊息的字串
在一個頁面中有數十個g:set標籤定義
我的第一個反應是這樣做似乎不太好,
因為在view元件中應該盡量減少程式邏輯的量, 以及變數定義等
不過後來發現Grails本身就是透過這個方式完成i18n的支援的
所以2.的答案應該的確是個good practice吧?
========================================================================
謝謝大家囉:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.134.11
→ swpoker:好快~我也是想到這篇! 10/22 11:46
痾... 我不是以初學者的身分發這些問題的
只是我帶的人有這些小問題, 以 "這樣做比較好" 並不足以打發他們
所以我需要一些更確切的答案:P
→ NewSpec:那篇跟我的問題完全不一樣吧...Orz 10/22 11:46
※ 編輯: NewSpec 來自: 59.120.134.11 (10/22 12:13)
→ swpoker:這個是跟實作有關的~所以要看該產品的文件比較準 10/22 13:36
→ swpoker:2->要看的是該訊息要使用的範圍為何?及thread safe?就好 10/22 13:43
→ swpoker:存取變數的範圍只要小心會不會有thread safe的問題就好 10/22 13:59
→ swpoker:2.可以PO一下CODE嗎?是想知道變數的定義及其使用範圍 10/22 14:15
→ swpoker:我自己會去定義該不同變數的不同範圍就是 10/22 14:17
※ 編輯: NewSpec 來自: 36.224.226.157 (10/22 19:42)
→ swpoker:ㄎ~我有要求某些變數僅只在view勒~XD 10/23 10:35