成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>軟件教程>>新聞內容  
Tomcat于Eclipse集成開發問題以及解決方案
作者:jimcheng 發布時間:2003-12-12 10:49:31 | 【字體:

版本:
JDK 1.4.2 c:\jdk1.4
Eclipse 2.1 c:\eclipse
Tomcat 4.1.24 c:\tomcat4.1
Tomcat Plugins: com.sysdeo.eclipse.tomcat_2.1.0
Tomcat Patch: jasperDebugPatchV4.1.24.zip

存在的問題:


  1. Servlet調用問題
  2. JSP實時編譯問題
  3. 亂碼問題
  4. JSP編譯調試問題


如何解決:
1.Servlet調用問題
對于很多程序員開發的Servlet,如繼承于HttpServlet的程序,想通過URL調用進行直接調用,
但是發現通過如:http://localhost:8080/mywebapp/servlet/com.aaa.bbb.MyServletTest
會出現錯誤,Tomcat提示找不到相應的資源,那是因為TOMCAT的缺省配置是禁止通過全類名
進行Servlet的調用的,如何打開此選項,看TOMCAT_HOME/conf/web.xml
代碼:
<servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>

代碼:
<!-- The mapping for the invoker servlet --> <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>


對于第二段配置是關鍵,那是告訴TOMCAT所有/servlet/****的請求全部發向invoker的servlet,
TOMCAT缺省是注釋掉的,把它打開就行那,所有的WEBAPP都可以通過全路徑進行調用servlet啦。
而對于invoker到底是什么,看第一段配置代碼,所以當你對Tomcat的invoker實現不滿意的話,
可以替換第一段配置代碼中invoker的相應實現類。

注:對于tomcat中的Examples是可以通過全路徑調用SERVLET那是因為,在Examples的web.xml
中使用了filter繼續,截獲了TOMCAT的缺省動作,相當于覆蓋了TOMCAT的全局設置。對于web
container的行為,請參見SUN規范。
代碼:
<filter-mapping> <filter-name>Servlet Mapped Filter</filter-name> <servlet-name>invoker</servlet-name> </filter-mapping> <filter-mapping> <filter-name>Path Mapped Filter</filter-name> <url-pattern>/servlet/*</url-pattern> </filter-mapping>


2.JSP實時編譯問題
很多在TOMCAT中會發現,對于剛改過的JSP在IE中刷新不出來,即TOMCAT沒有實時編譯JSP文件,
如何修改呢?同樣參看TOMCAT_HOME/conf/web.xml,找到對于JSP編譯程序進行配置,如下
加上init-param參數段,告知TOMCAT每次都需要進行reloading,即進行日期比較,適當時候
進行重編譯。對于其他參數可以看在web.xml中的參數解釋,非常的具體。

代碼:
<servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>logVerbosityLevel</param-name> <param-value>WARNING</param-value> </init-param> <init-param> <param-name>reloading</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>javaEncoding</param-name> <param-value>GBK</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet>


注:org.apache.jasper.servlet.JspServlet 的作用,它就是為什么JSP能夠自動轉換成servlet
的罪魁禍首啦,對于JSP編譯上出現的問題都可以從它身上找到答案。注意JSP這個servlet是mapping
到*.jsp的,所以所有的JSP請求才會被編譯成servlet后執行,非常類似于Apache中的addType功能。

代碼:
<servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping>


3.亂碼問題
亂碼問題比較復雜,但是只要找到為什么出現問題就非常簡單啦。
A.JSP頁面編譯后對于中文變成亂碼
B.頁面輸出有亂碼
C.傳遞的URL參數或是中文Form field值,解釋成亂碼

對于A子問題,那是由于Tomcat的Jasper不能正確識別JSP文件的編碼造成的,所以需要告訴Jasper本地
的JSP文件編碼。打開TOMCAT_HOME/conf/web.xml,找到如下的配置段,給<servlet-name>jsp</servlet-name>
加上參數javaEncoding=GBK,其中的GBK換成GB2312也行,大家可以琢磨一下原因。呵呵

代碼:
<servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>logVerbosityLevel</param-name> <param-value>WARNING</param-value> </init-param> <init-param> <param-name>reloading</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>javaEncoding</param-name> <param-value>GBK</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet>



對于B子問題,很簡單,在所有JSP文件的頭部加上:
<%@ page contentType="text/html;charset=gb2312" %>

對于C子問題,也很簡單,那是因為,TOMCAT對于HTTP的解釋全部是按照ISO-8859-1的方式傳送的,
把前臺的GB2312的內容傳到后臺,所以需要轉碼。

對于JSP文件,在所有JSP文件的頭部加上:
request.setCharacterEncoding("GB2312");
對于Servlet類同理:
doGet(...)
{
request.setCharacterEncoding("GB2312");
...
)
就可以搞定了。

4.JSP編譯調試問題
對于使用TOMCAT plugins進行Eclipse的開發的人,是非常希望能夠及時調試的JSP被編譯后的SERVLET的,
但是出現了,在tomcat的Jasper編譯后,TOMCAT plugins導入到Eclipse的workspace后會出現路徑即包名
不匹配的問題,這個TOMCAT plugins提供了補丁,使Tomcat和Eclipse能夠更好的協調工作。
方法:
把jasperDebugPatchV4.1.24.zip解壓到TOMCAT_HOME\common\classes\下,就OK啦!能夠在eclipse中進行
調試編譯后的JSP.

先寫這么多,拋磚引玉先!
附件為jasperDebugPatchV4.1.24.zip,主要是為了防止大家難找。
還有就是版本一定要注意好,否則無法工作。

jasperDebugPatchV4.1.24.zip 點擊此鏈接下載附件


文章來源:ccf
 放生
 愚愛
 夠愛
 觸電
 白狐
 葬愛
 光榮
 畫心
 火花
 稻香
 小酒窩
 下雨天
 右手邊
 安靜了
 魔杰座
 你不像她
 邊做邊愛
 擦肩而過
 我的答鈴
 懷念過去
 等一分鐘
 放手去愛
 冰河時代
 你的承諾
 自由飛翔
 原諒我一次
 吻的太逼真
 左眼皮跳跳
 做你的愛人
 一定要愛你
 飛向別人的床
 愛上別人的人
 感動天感動地
 心在跳情在燒
 玫瑰花的葬禮
 有沒有人告訴你
 即使知道要見面
 愛上你是一個錯
 最后一次的溫柔
 愛上你是我的錯
 怎么會狠心傷害我
 不是因為寂寞才想
 親愛的那不是愛情
 難道愛一個人有錯
 寂寞的時候說愛我
主站蜘蛛池模板: 黄陵县| 盐津县| 元氏县| 石狮市| 桃源县| 陕西省| 刚察县| 咸宁市| 新民市| 兰西县| 宣化县| 仁寿县| 通化县| 大埔区| 文登市| 会宁县| 黄龙县| 图木舒克市| 曲阜市| 镇赉县| 右玉县| 曲水县| 富川| 昌乐县| 历史| 大港区| 五大连池市| 澄城县| 晴隆县| 晋江市| 河北省| 临沂市| 屏东县| 德安县| 伊通| 克东县| 罗田县| 新泰市| 修水县| 林口县| 广宗县|