国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

在JSP編程中Application的使用方法詳解

2019-11-18 16:26:34
字體:
供稿:網(wǎng)友

jsp調(diào)用Javeabean命令UseBean中有Scope設置,一般有application session page等設置,Page就是每頁

重新產(chǎn)生usebean中的javabean新對象,一般情況是用這種,如果多個Jsp程序間為共享數(shù)據(jù),可以使用

session

而application的意思,該javabean將一直存在,與session相對用戶來說,application是相對應用程序

的,一般來說,一個用戶有一個session,并且隨著用戶離開而消失;而application則是一直存在,類似

一個servlet程序,類似整個系統(tǒng)的"全局變量",而且只有一個實例。

MVC中控制功能

因此application這個特性,很適合用來做MVC中的控制功能,一般傳統(tǒng)MVC是用servlet做控制功能,V基

本是Jsp頁面,M就是中間件Javabean之類。

但是隨著Jsp功能的完善和推廣,逐漸有替代servlet之趨勢,我們在實踐中更多使用的也是Jsp,有時為

了省卻麻煩的事情,就使用Jsp代替servlet.尤其是其控制功能。

實際上,這個控制功能是封裝在一個Javabean中,Jsp使用scope=application來調(diào)用這個Javabean,這樣

,具備控制功能的javabean就類似servlet常駐內(nèi)存,并和后臺各種中間件交互操作。

“首頁”的展現(xiàn)

在實際應用中,我們經(jīng)常有多個用戶要同時訪問一個頁面,如首頁,這個首頁中有很多功能要運行,比如

目錄分類,首頁程序要從數(shù)據(jù)庫中讀入樹形數(shù)據(jù)并展開,輸出到首頁,這個功能是封裝在Javabean中的。

那么首頁Jsp調(diào)用這個Javabean時,使用scope=application, 再通過樹形數(shù)據(jù)的緩沖算法,這樣,多個用

戶同時訪問首頁時,首頁JSp就無需每次啟動Javabean然后再反復讀取數(shù)據(jù)庫了。無疑大大提高速度。

所以如果你的首頁Jsp訪問量很高,那么就應該在這方面多花點時間優(yōu)化。

數(shù)據(jù)庫連接緩沖


< 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.*" %>
< !----------------------------------------------------------------
* This is a JavaServer Page that uses Connection Caching over
application
* scope. The Cache is created in an application scope in
globals.jsa file.
* Connection is obtained from the Cache and recycled back once
done.

--------------------------------------------------------------------!>
< HTML>
< HEAD>
< TITLE>
ConnCache JSP
< /TITLE>
< /HEAD>
< BODY BGCOLOR=EOFFFO>
< H1> Hello
< %= (request.getRemoteUser() != null? ", " +
request.getRemoteUser() : "") %>
! I am Connection Caching JSP.
< /H1>
< HR>
< B> I get the Connection from the Cache and recycle it back.
< /B>
< P>
< %
try {
Connection conn = cods.getConnection();
Statement stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery ("SELECT ename, sal " +
"FROM scott.emp ORDER BY ename");
if (rset.next()) {
%>
< TABLE BORDER=1 BGCOLOR="C0C0C0">
< TH WIDTH=200 BGCOLOR="white"> < I>Employee Name< /I> < /TH>
< TH WIDTH=100 BGCOLOR="white"> < I>Salary< /I> < /TH>
< TR> < TD ALIGN=CENTER> < %= rset.getString(1) %> < /TD>
< TD ALIGN=CENTER> $< %= rset.getDouble(2) %> < /TD>
< /TR>
< % while (rset.next()) {
%>
< TR> < TD ALIGN=CENTER> < %= rset.getString(1) %> < /TD>
< TD ALIGN=CENTER> $< %= rset.getDouble(2) %> < /TD>
< /TR>
< % }
%>
< /TABLE>
< % }
else {
%>
< P> Sorry, the query returned no rows! < /P>
< %
}
rset.close();
stmt.close();
conn.close(); // Put the Connection Back into the Pool
} catch (SQLException e) {
out.out.println ("< PRE>" + e + "< /PRE>
< P>");
}
%>
< /BODY>
< /HTML>


使用application緩存數(shù)據(jù)庫的連接,每次使用時,從緩沖中取出,用完就返回。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 泸水县| 甘孜县| 民勤县| 襄汾县| 瑞安市| 龙游县| 嘉兴市| 比如县| 万荣县| 郯城县| 隆安县| 民县| 鞍山市| 辉县市| 封开县| 五莲县| 安福县| 昔阳县| 康马县| 夏津县| 县级市| 东宁县| 东乡族自治县| 通州市| 从江县| 文化| 敖汉旗| 诏安县| 呼伦贝尔市| 高清| 从江县| 梅州市| 盱眙县| 乳源| 永丰县| 临洮县| 承德县| 依兰县| 松溪县| 永修县| 永修县|