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

weblogic的jsp問題解決方法_JSP教程

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

推薦:JSP XML實現(xiàn)網(wǎng)頁內(nèi)容動態(tài)顯示的方案
一、xml技術(shù)簡介   XML(eXtensible Markup Language??可擴展標(biāo)記語言)是一種 擴展的源標(biāo)記語言,是可以定義其他語言的語言。   它是SGML的一個簡化子集,這個子集是專為Web

在做項目的時候,jsp在運行的時候出現(xiàn)了一些問題,現(xiàn)將我的問題解決方法做一個小結(jié),供以后作項目的參考。

問題1:
weblogic 的數(shù)據(jù)庫連接數(shù)目在程序運行中不斷增長,最后連接數(shù)目超過最大數(shù),導(dǎo)致weblogic服務(wù)關(guān)閉
原因:
在操作完數(shù)據(jù)庫后,沒有關(guān)閉數(shù)據(jù)庫連接;或者是返回結(jié)果集(Resultset),而無法在jsp中關(guān)閉數(shù)據(jù)庫連接。
解決方法:
1. 在操作完數(shù)據(jù)庫要關(guān)閉數(shù)據(jù)庫連接。
2. 盡量不要返回結(jié)果集Resultset, 可以返回Vector(一個字段)、Hashtable(多個字段),這樣可以在javabean中關(guān)閉數(shù)據(jù)庫。
3. 如果javabean中返回的是結(jié)果集(Resultset),也可以在javaBean中寫一個connectDB(連接數(shù)據(jù)庫)、closeDB(關(guān)閉數(shù)據(jù)庫)的方法,然后jsp里面調(diào)用connectDB,建立數(shù)據(jù)庫連接,同時就可以對數(shù)據(jù)庫進(jìn)行操作了,操作數(shù)據(jù)庫完畢,可以通過closeDB() 來關(guān)閉數(shù)據(jù)庫。
使用第二種方法
問題2:
在運行某一個jsp 程序的時候,weblogic 的內(nèi)存陡然增長,而且居高不下。最終導(dǎo)致weblogic 內(nèi)存不足,甚至當(dāng)機。
原因:
過度使用內(nèi)存。
解決方法:
1. 由于數(shù)據(jù)量比較大,在對字符串進(jìn)行操作的時候,使用 進(jìn)行字符串連接,而
相信大家對String都非常熟悉,我們也經(jīng)常要用它來做字符串的連接什么的,例如:
String a =b c file://b,c 都是String
但是在實際的編譯中卻是這樣:
String a=new StringBuffer().append(b).append(c).toString() 顯然,在一個簡單的語句中卻意外的多生成了2個對象:
.StringBuffer()
.toString返回的一個String
我們比較一下這兩段程序的性能:
程序片斷一:
StringBuffer s=new StringBuffer();
long start = System.currentTimeMillis();
for (int i=0;i<10000;i ){
s1 ="a";
}
long stop = System.currentTimeMillis();
System.out.println(stop-start);
程序片斷二:
StringBuffer s=new StringBuffer(10000);//
long start=System.currentTimeMillis();
for (int i=0;i<10000;i ){
s.append("a");
}
long stop=System.currentTimeMillis();
System.out.println(stop-start);
比較一下結(jié)果,差距很明顯。
至于為什么String的連接這么做,因為String無法直接改變其長度,而必須采用StringBuffer的用法。
因此建議使用StringBuffer 的append 方法來進(jìn)行字符串相連。
2. 在解決這個問題的時候,我也嘗試使用上面的方法,效果并不是很明顯(消耗內(nèi)存上)。后來在顯示大量數(shù)據(jù)的時候,避免字符串相連的步驟,而直接使用out.println(),直接輸出。
問題3:Java并不阻止程序占用過多的內(nèi)存,當(dāng)對象向堆所請求的內(nèi)存不足時,垃圾收集器(Garbage Collector)就會自動啟動,釋放那些引用數(shù)為零的對象所占用的內(nèi)存,Java也不會自動釋放無用的對象的引用,如果程序忘記釋放指向?qū)ο蟮囊?則程序運行時的內(nèi)存隨著時間的推移而增加,發(fā)生所謂內(nèi)存泄漏(memory leaks),創(chuàng)建對象不但消耗CPU的時間和內(nèi)存,同時,為釋放對象內(nèi)存JVM需不停地啟動垃圾收集器(Garbage Collector),這也會消耗大量的CPU時間。

解決方法: 由于在運行一段時間jsp程序后,weblogic 的內(nèi)存會有一個緩慢的增長,這樣也會導(dǎo)致內(nèi)存溢出,為了避免這總現(xiàn)象的出現(xiàn),最終的解決方法是: 編寫一個servlet程序,在啟動服務(wù)器的時候,啟動一個這個servlet,每隔20分鐘運行在服務(wù)器端運行一次,來定時回收內(nèi)存。
問題4:
log文件里面的調(diào)試信息沒有注釋去掉。
解決方法:
在程序通過后,盡量把調(diào)試的信息注釋去掉。
同時在捕捉錯誤的時候要寫明程序名稱,方便查找,這一點做的還不夠。
最好能寫一個記錄log的方法,以便程序調(diào)用。
問題5
改善性能,提高速度。
具體實例:
我們再來看一個有關(guān)Vector類的代碼片段:
for(int I=0; I如果v包含100,000個元素,這個代碼片段將調(diào)用v.size()方法100,000次。雖然size方法是一個簡單的方法,但它仍舊需要一次方法調(diào)用的開銷,至少JVM需要為它配置以及清除堆棧環(huán)境。在這里,for循環(huán)內(nèi)部的代碼不會以任何方式修改Vector類型對象v的大小,因此上面的代碼最好改寫成下面這種形式:
int size = v.size(); for(int I=0; I雖然這是一個簡單的改動,但它仍舊贏得了性能。畢竟,每一個CPU周期都是寶貴的。
問題 6:
在 jsp 文件里面 不要寫
因為java 不需要引入此包就可以引用里面的類文件。

分享:實例講解在JSP開發(fā)中的對象和范圍屬性
在JSP頁面中的對象,包括用戶創(chuàng)建的對象(例如,JavaBean對象)和JSP的隱含對象,都有一個范圍屬性。范圍定義了在什么時間內(nèi),在哪一個JSP頁面中可以訪問這些對象。例如,session對象在會

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