tomcat向weblogic移植需要注意的问题
生活随笔
收集整理的這篇文章主要介紹了
tomcat向weblogic移植需要注意的问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.在開發(fā)階段,對(duì)應(yīng)用程序熱部署時(shí),會(huì)拋出ClassCastException異常,這是因?yàn)轭惣虞d器的原因,因?yàn)樵趯?duì)程序熱部署會(huì)由不同的類加載器加載同一個(gè)類,解決辦法:重啟weblogic或在console中WEB模塊配置中對(duì)問題程序點(diǎn)擊重新部署
2.用frameset實(shí)現(xiàn)的框架頁面,其中的頁面有時(shí)會(huì)得不到主頁面的session,原因是frameset是放在一個(gè)htm頁面上而不是ASPX頁面。在一般情況下,如果frameset是aspx頁面,當(dāng)你請(qǐng)求頁面時(shí),它首先將請(qǐng)求發(fā)送到Web服務(wù)器,此時(shí)已經(jīng)獲得了SessionID,接著瀏覽器會(huì)分別請(qǐng)求Frame中的其他頁面,這樣所有頁面的SessionID就是一樣的,就是FrameSet頁面的SessionID。然而如果你使用Html頁面做FrameSet頁面,第一個(gè)請(qǐng)求將是HTML頁面,當(dāng)該頁面從服務(wù)器上返回是并沒有任何Session產(chǎn)生,接著瀏覽器會(huì)請(qǐng)求Frame里面的頁面,這樣這些頁面都會(huì)產(chǎn)生自己的SessionID,所以在這種情況下就會(huì)出現(xiàn)這種問題。當(dāng)你重新刷新頁面時(shí),SessionID就會(huì)一樣,并且是最后一個(gè)請(qǐng)求頁面的SessionID。一個(gè)常見的誤解是以為session在有客戶端訪問時(shí)就被創(chuàng)建,然而事實(shí)是直到某server端程序調(diào)用HttpServletRequest.getSession(true)這樣的語句時(shí)才被創(chuàng)建,注意如果JSP沒有顯示的使用?<%??@page?session="false"%>?關(guān)閉session,則JSP文件在編譯成Servlet時(shí)將會(huì)自動(dòng)加上這樣一條語句?HttpSession?session?=?HttpServletRequest.getSession(true);這也是JSP中隱含的session對(duì)象的來歷。
3.編碼問題:tomcat下缺省編碼方式是ISO-8859-1,而在weblogic下缺省的編碼是GBK,所以在對(duì)用URL傳遞的參數(shù)無須再做處理,比如在TOMCAT下要對(duì)參數(shù)的編碼方式由ISO-8859-1轉(zhuǎn)換為GBK,而在weblogic下就不能再這么做了,否則會(huì)出現(xiàn)亂碼
4.對(duì)于用include包含的頁面在tomcat下要單獨(dú)對(duì)每個(gè)包含的頁面指定編碼方式,否則會(huì)出現(xiàn)亂碼,但在weblgic下就不能這么做了,第一個(gè)原因是被包含的頁面會(huì)遵從主頁面的編碼方式,第二個(gè)原因是如果重復(fù)定義JSP頁面的編碼方式,會(huì)使jsp頁面無法編碼,在運(yùn)行時(shí)出錯(cuò)
2.用frameset實(shí)現(xiàn)的框架頁面,其中的頁面有時(shí)會(huì)得不到主頁面的session,原因是frameset是放在一個(gè)htm頁面上而不是ASPX頁面。在一般情況下,如果frameset是aspx頁面,當(dāng)你請(qǐng)求頁面時(shí),它首先將請(qǐng)求發(fā)送到Web服務(wù)器,此時(shí)已經(jīng)獲得了SessionID,接著瀏覽器會(huì)分別請(qǐng)求Frame中的其他頁面,這樣所有頁面的SessionID就是一樣的,就是FrameSet頁面的SessionID。然而如果你使用Html頁面做FrameSet頁面,第一個(gè)請(qǐng)求將是HTML頁面,當(dāng)該頁面從服務(wù)器上返回是并沒有任何Session產(chǎn)生,接著瀏覽器會(huì)請(qǐng)求Frame里面的頁面,這樣這些頁面都會(huì)產(chǎn)生自己的SessionID,所以在這種情況下就會(huì)出現(xiàn)這種問題。當(dāng)你重新刷新頁面時(shí),SessionID就會(huì)一樣,并且是最后一個(gè)請(qǐng)求頁面的SessionID。一個(gè)常見的誤解是以為session在有客戶端訪問時(shí)就被創(chuàng)建,然而事實(shí)是直到某server端程序調(diào)用HttpServletRequest.getSession(true)這樣的語句時(shí)才被創(chuàng)建,注意如果JSP沒有顯示的使用?<%??@page?session="false"%>?關(guān)閉session,則JSP文件在編譯成Servlet時(shí)將會(huì)自動(dòng)加上這樣一條語句?HttpSession?session?=?HttpServletRequest.getSession(true);這也是JSP中隱含的session對(duì)象的來歷。
3.編碼問題:tomcat下缺省編碼方式是ISO-8859-1,而在weblogic下缺省的編碼是GBK,所以在對(duì)用URL傳遞的參數(shù)無須再做處理,比如在TOMCAT下要對(duì)參數(shù)的編碼方式由ISO-8859-1轉(zhuǎn)換為GBK,而在weblogic下就不能再這么做了,否則會(huì)出現(xiàn)亂碼
4.對(duì)于用include包含的頁面在tomcat下要單獨(dú)對(duì)每個(gè)包含的頁面指定編碼方式,否則會(huì)出現(xiàn)亂碼,但在weblgic下就不能這么做了,第一個(gè)原因是被包含的頁面會(huì)遵從主頁面的編碼方式,第二個(gè)原因是如果重復(fù)定義JSP頁面的編碼方式,會(huì)使jsp頁面無法編碼,在運(yùn)行時(shí)出錯(cuò)
總結(jié)
以上是生活随笔為你收集整理的tomcat向weblogic移植需要注意的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经验之谈——送给年轻的职场人
- 下一篇: 两个datatable之间的复制