日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

揭秘幾個(gè)提升JSP應(yīng)用程序效率的小方法_JSP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:揭秘Java初學(xué)者基礎(chǔ)知識(shí)11條
1、對(duì)象的初始化 (1)非靜態(tài)對(duì)象的初始化 在創(chuàng)建對(duì)象時(shí),對(duì)象所在類的所有數(shù)據(jù)成員會(huì)首先進(jìn)行初始化。 基本類型:int型,初始化為0。 如果為對(duì)象:這些對(duì)象會(huì)按順序初始化。 ※在所有類成員初始化完成之后,才調(diào)用本類的構(gòu)造方法創(chuàng)建對(duì)象。 構(gòu)造方法的作用就

    本文介紹了幾個(gè)調(diào)整JSP和servlet的一些非常實(shí)用的方法,它可使你的servlet和JSP頁面響應(yīng)更快,擴(kuò)展性更強(qiáng)。而且在用戶數(shù)增加的情況下,系統(tǒng)負(fù)載會(huì)呈現(xiàn)出平滑上長的趨勢(shì)。我將通過一些實(shí)際例子和配置方法使得你的應(yīng)用程序的性能有出人意料的提升。其中,某些調(diào)優(yōu)技術(shù)是在你的編程工作中實(shí)現(xiàn)的,而另一些技術(shù)是與應(yīng)用服務(wù)器的配置相關(guān)的。我們將詳細(xì)地描述怎樣通過調(diào)整servlet和JSP頁面,來提高你的應(yīng)用程序的總體性能。在閱讀本文之前,你還需要有基本的servlet和JSP的知識(shí)。 
方法一:在servlet的init()方法中緩存數(shù)據(jù) 
    當(dāng)應(yīng)用服務(wù)器初始化servlet實(shí)例之后,為客戶端請(qǐng)求提供服務(wù)之前,它會(huì)調(diào)用這個(gè)servlet的init()方法。在一個(gè)servlet的生命周期中,init()方法只會(huì)被調(diào)用一次。通過在init()方法中緩存一些靜態(tài)的數(shù)據(jù)或完成一些只需要執(zhí)行一次的、耗時(shí)的操作,就可大大地提高系統(tǒng)性能。 
例如,通過在init()方法中建立一個(gè)JDBC連接池是一個(gè)最佳例子,假設(shè)我們是用jdbc2.0的DataSource接口來取得數(shù)據(jù)庫連接,在通常的情況下,我們需要通過JNDI來取得具體的數(shù)據(jù)源。我們可以想象在一個(gè)具體的應(yīng)用中,如果每次SQL請(qǐng)求都要執(zhí)行一次JNDI查詢的話,那系統(tǒng)性能將會(huì)急劇下降。解決方法是如下代碼,它通過緩存DataSource,使得下一次SQL調(diào)用時(shí)仍然可以繼續(xù)利用它: 

public class ControllerServlet 
extends HttpServlet 

 private javax.sql.DataSource 
   testDS = null; 
 public void init(ServletConfig config) 
   throws ServletException 
 { 
  super.init(config); 
  Context ctx = null; 
  try 
  { 
   ctx = new InitialContext(); 
   testDS = (javax.sql.DataSource) 
         ctx.lookup("jdbc/testDS"); 
  } 
  catch(NamingException ne) 
  { 
   ne.printStackTrace(); 
  } 
  catch(Exception e) 
  { 
   e.printStackTrace(); 
  } 
 } 

 public javax.sql.DataSource getTestDS() 
 { 
  return testDS; 
 } 
 ... 
 ... 


方法 2:禁止servlet和JSP 自動(dòng)重載(auto-reloading) 
    Servlet/JSP提供了一個(gè)實(shí)用的技術(shù),即自動(dòng)重載技術(shù),它為開發(fā)人員提供了一個(gè)好的開發(fā)環(huán)境,當(dāng)你改變servlet和JSP頁面后而不必重啟應(yīng)用服務(wù)器。然而,這種技術(shù)在產(chǎn)品運(yùn)行階段對(duì)系統(tǒng)的資源是一個(gè)極大的損耗,因?yàn)樗鼤?huì)給JSP引擎的類裝載器(classloader)帶來極大的負(fù)擔(dān)。因此關(guān)閉自動(dòng)重載功能對(duì)系統(tǒng)性能的提升是一個(gè)極大的幫助。 

方法 3: 不要濫用HttpSession 
    在很多應(yīng)用中,我們的程序需要保持客戶端的狀態(tài),以便頁面之間可以相互聯(lián)系。但不幸的是由于HTTP具有天生無狀態(tài)性,從而無法保存客戶端的狀態(tài)。因此一般的應(yīng)用服務(wù)器都提供了session來保存客戶的狀態(tài)。 
    在JSP應(yīng)用服務(wù)器中,是通過HttpSession對(duì)像來實(shí)現(xiàn)session的功能的,但在方便的同時(shí),它也給系統(tǒng)帶來了不小的負(fù)擔(dān)。因?yàn)槊慨?dāng)你獲得或更新session時(shí),系統(tǒng)者要對(duì)它進(jìn)行費(fèi)時(shí)的序列化操作。你可以通過對(duì)HttpSession的以下幾種處理方式來提升系統(tǒng)的性能: 
    1、如果沒有必要,就應(yīng)該關(guān)閉JSP頁面中對(duì)HttpSession的缺省設(shè)置。如果你沒有明確指定的話,每個(gè)JSP頁面都會(huì)缺省地創(chuàng)建一個(gè)HttpSession。如果你的JSP中不需要使用session的話,那可以通過如下的JSP頁面指示符來禁止它: 
<%@ page session="false"%> 
    2、不要在HttpSession中存放大的數(shù)據(jù)對(duì)像:如果你在HttpSession中存放大的數(shù)據(jù)對(duì)像的話,每當(dāng)對(duì)它進(jìn)行讀寫時(shí),應(yīng)用服務(wù)器都將對(duì)其進(jìn)行序列化,從而增加了系統(tǒng)的額外負(fù)擔(dān)。你在HttpSession中存放的數(shù)據(jù)對(duì)像越大,那系統(tǒng)的性能就下降得越快。 
    3、當(dāng)你不需要HttpSession時(shí),盡快地釋放它:當(dāng)你不再需要session時(shí),你可以通過調(diào)用HttpSession.invalidate()方法來釋放它。 
    4、盡量將session的超時(shí)時(shí)間設(shè)得短一點(diǎn):在JSP應(yīng)用服務(wù)器中,有一個(gè)缺省的session的超時(shí)時(shí)間。當(dāng)客戶在這個(gè)時(shí)間之后沒有進(jìn)行任何操作的話,系統(tǒng)會(huì)將相關(guān)的session自動(dòng)從內(nèi)存中釋放。超時(shí)時(shí)間設(shè)得越大,系統(tǒng)的性能就會(huì)越低,因此最好的方法就是盡量使得它的值保持在一個(gè)較低的水平。 

分享:解讀真正掌握J(rèn)ava語言需要了解的知識(shí)
經(jīng)�?吹揭恍┤苏f掌握了Java,但是讓他們用Java做一個(gè)實(shí)際的項(xiàng)目可能又很難完成,所以,筆者根據(jù)自己的經(jīng)驗(yàn),提出一些對(duì)掌握J(rèn)ava這個(gè)說法的標(biāo)準(zhǔn),主要對(duì)于新手,也可以提供一個(gè)需要學(xué)習(xí)哪些內(nèi)容的參考。另外這個(gè)標(biāo)準(zhǔn)僅限于J2SE部分,J2EE部分的內(nèi)容有時(shí)間再

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:JSP教程/更新時(shí)間:2010-02-08
相關(guān)JSP教程