Jsp中的Application使用
來源:互聯網
上載者:User
Jsp調用Javeabean命令UseBean中有Scope設定,一般有Application session page等設定,Page就是每頁重新產生usebean中的javabean新對象,一般情況是用這種,如果多個Jsp程式間為共用資料,可以使用session
而application的意思,該javabean將一直存在,與session相對使用者來說,application是相對應用程式的,一般來說,一個使用者有一個session,並且隨著使用者離開而消失;而application則是一直存在,類似一個servlet程式,類似整個系統的"全域變數",而且只有一個執行個體。
MVC中控制功能
因此application這個特性,很適合用來做MVC中的控制功能,一般傳統MVC是用servlet做控制功能,V基本是Jsp頁面,M就是中介軟體Javabean之類。
但是隨著Jsp功能的完善和推廣,逐漸有替代servlet之趨勢,我們在實踐中更多使用的也是Jsp,有時為了省卻麻煩的事情,就使用Jsp代替servlet.尤其是其控制功能。
實際上,這個控制功能是封裝在一個Javabean中,Jsp使用scope=application來調用這個Javabean,這樣,具備控制功能的javabean就類似servlet常駐記憶體,並和後台各種中介軟體互動操作。
“首頁”的展現
在實際應用中,我們經常有多個使用者要同時訪問一個頁面,如首頁,這個首頁中有很多功能要運行,比如目錄分類,首頁程式要從資料庫中讀入樹形資料並展開,輸出到首頁,這個功能是封裝在Javabean中的。
那麼首頁Jsp調用這個Javabean時,使用scope=application, 再通過樹形資料的緩衝演算法,這樣,多個使用者同時訪問首頁時,首頁JSp就無需每次啟動Javabean然後再反覆讀取資料庫了。無疑大大提高速度。
所以如果你的首頁Jsp訪問量很高,那麼就應該在這方面多花點時間最佳化。
資料庫連接緩衝
<jsp:useBean id="cods"
class="oracle.jdbc.pool.OracleConnectionCacheImpl"
scope="application" />
<event:application_OnStart>
<%
cods.setURL("jdbc:oracle:thin:@HOST:PORT:SID");
cods.setUser("scott");
cods.setPassword("tiger");
cods.setStmtCache (5);
%>
</event:application_OnStart>
<%@ page import="java.sql.*, javax.sql.*, oracle.jdbc.pool.*" %>
<!----------------------------------------------------------------