最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > jsp教程

在JSP编程中Application的使用方法详解

日期:03-14    来源:中国设计秀    作者:cnwebshow.com

jsp调用Javeabean命令UseBean中有Scope设置,一般有application session page等设置,Page就是每页Jhb中国设计秀

重新产生usebean中的javabean新对象,一般情况是用这种,如果多个Jsp程序间为共享数据,可以使用Jhb中国设计秀

sessionJhb中国设计秀

而application的意思,该javabean将一直存在,与session相对用户来说,application是相对应用程序Jhb中国设计秀

的,一般来说,一个用户有一个session,并且随着用户离开而消失;而application则是一直存在,类似Jhb中国设计秀

一个servlet程序,类似整个系统的"全局变量",而且只有一个实例。Jhb中国设计秀

MVC中控制功能Jhb中国设计秀

因此application这个特性,很适合用来做MVC中的控制功能,一般传统MVC是用servlet做控制功能,V基Jhb中国设计秀

本是Jsp页面,M就是中间件Javabean之类。Jhb中国设计秀

但是随着Jsp功能的完善和推广,逐渐有替代servlet之趋势,我们在实践中更多使用的也是Jsp,有时为Jhb中国设计秀

了省却麻烦的事情,就使用Jsp代替servlet.尤其是其控制功能。Jhb中国设计秀

实际上,这个控制功能是封装在一个Javabean中,Jsp使用scope=application来调用这个Javabean,这样Jhb中国设计秀

,具备控制功能的javabean就类似servlet常驻内存,并和后台各种中间件交互操作。Jhb中国设计秀

“首页”的展现Jhb中国设计秀

在实际应用中,我们经常有多个用户要同时访问一个页面,如首页,这个首页中有很多功能要运行,比如Jhb中国设计秀

目录分类,首页程序要从数据库中读入树形数据并展开,输出到首页,这个功能是封装在Javabean中的。Jhb中国设计秀

那么首页Jsp调用这个Javabean时,使用scope=application, 再通过树形数据的缓冲算法,这样,多个用Jhb中国设计秀

户同时访问首页时,首页JSp就无需每次启动Javabean然后再反复读取数据库了。无疑大大提高速度。Jhb中国设计秀

所以如果你的首页Jsp访问量很高,那么就应该在这方面多花点时间优化。Jhb中国设计秀

数据库连接缓冲Jhb中国设计秀

Jhb中国设计秀
< jsp:useBean id="cods" Jhb中国设计秀
  class="Oracle.jdbc.pool.OracleConnectionCacheImpl" Jhb中国设计秀
  scope="application" />Jhb中国设计秀

< event:application_OnStart> Jhb中国设计秀
< % Jhb中国设计秀
cods.setURL("jdbc:oracle:thin:@HOST:PORT:SID"); Jhb中国设计秀
cods.setUser("scott"); Jhb中国设计秀
cods.setPassword("tiger"); Jhb中国设计秀
cods.setStmtCache (5); Jhb中国设计秀
%> Jhb中国设计秀
< /event:application_OnStart>Jhb中国设计秀

< %@ page import="java.sql.*, javax.sql.*, oracle.jdbc.pool.*" %> Jhb中国设计秀
< !---------------------------------------------------------------- Jhb中国设计秀
* This is a JavaServer Page that uses Connection Caching over Jhb中国设计秀
application Jhb中国设计秀
* scope. The Cache is created in an application scope in Jhb中国设计秀
globals.jsa file. Jhb中国设计秀
* Connection is obtained from the Cache and recycled back once Jhb中国设计秀
done.Jhb中国设计秀

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

Jhb中国设计秀
使用application缓存数据库的连接,每次使用时,从缓冲中取出,用完就返回。Jhb中国设计秀

本文引用地址:/bc/article_46596.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明