上方廣告

2011年8月18日 星期四

JSP開發的一些基礎問題

最近剛開始接觸JSP,本文內容並不是要教大家寫JSP,只是單純的紀錄我遇到的一些小問題。

1. 在Tomcat中建立類似IIS中的虛擬目錄。使用方式 : Create一個資料夾【Studio】,一般來說只要直接將資料夾放在Tomcat安裝路徑下的webapps中就可以正常使用,但是該資料夾要是在其它地方就無法使用。如:http://lawrence.serveblog.net/Studio
錯誤訊息描述 :
找不到該檔案HTTP Status 404解決辦法 : 修改{$Tomcat}\conf\server.xml這支檔案({$Tomcat}為安裝路徑),新增以下語法。<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    
<Context path="/studio" reloadable="true" docBase="X:\JSP\Studio" workDir="X:\JSP\Studio\work" /></Host>


2. 改變Tomcat預設路徑。使用方式 : Tomcat安裝完後預設都會指向Tomcat管理介面,這樣似乎有一些安全的問題,因此需要把此路徑替換成自己需要的路徑就好。如:http://lawrence.serveblog.net/解決辦法 : 修改{$Tomcat}\conf\server.xml這支檔案({$Tomcat}為安裝路徑),將原先的Host刪掉並替換成自己需要的路徑,如以下語法(注意Context一定需要一個節點)。<Host name="localhost" appBase="X:\JSP\Studio">
    
<Context path="/" docBase="." />
</Host>



3. 在JSP當中使用 taglib 發生錯誤訊息。使用方式 : <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>錯誤訊息描述 : org.apache.jasper.JasperException: Unable to load class for JSP....解決辦法 : jstl.jarstardard.jar放入WEB-INF/lib目錄裡即可使用

4. 寫一個JavaBean直接呼叫無法使用。
使用方式 :
在網頁上直接呼叫http://lawrence.serveblog.net/test
錯誤訊息 : HTTP Status 404解決辦法 : 要讓JavaBean可以直接使用網頁呼叫必須將class對應關係寫到web.xml<servlet>
    <servlet-name>自己命名要一樣</servlet-name>
    <servlet-class>類別完整名稱,類似NET Namespace(pe.test.mytest)</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>自己命名要一樣</servlet-name>
    <url-pattern>Site路徑(/test)</url-pattern>
</servlet-mapping>


5. 使用fileupload處理文件上傳開發模式中顯示調用失敗。使用方式 : <%@page import="org.apache.commons.fileupload.FileItem"%>  
誤訊息 : 開發工具顯示無法解析org.apache.commons,且已將.jar檔放到WEB-INF/lib目錄
解決辦法 : 原本將commons-fileupload-1.2.2.jarcommons-io-2.0.1.jar 兩個檔案放到WEB-INF/lib目錄,需改到{$Tomcat}/common/lib目錄底下,{$Tomcat}為安裝時的路徑


6. 調整Server.xml檔將預設根目錄後發現子目錄內使用CKEditor出現錯誤訊息。使用方式 : 正常使用都無此問題,但一到使用CKEditor的頁面馬上掛掉  
誤訊息 : HTTP Status 500 -org.apache.jasper.JasperException: The absolute uri: http://ckeditor.com cannot be resolved in either web.xml or the jar files deployed with this application
解決辦法 :
//使用此方法讓預設的跟目錄在D:\JSP\Studio可是到CKEdtior頁面會掛
 <Host name="localhost" appBase="X:\JSP\Studio">
   
<Context path="" docBase="." />
</Host>
//改根目錄指到上一層目錄,虛擬目錄指到正常目錄即可解決此問題
<Host name="localhost" appBase="X:\Java\JSP">
   
<!-- 不這樣設定CKEditor就一直報錯   -->
   
<Context path="" reloadable="true" debug="10" docBase="X:\JSP\Studio" />
</Host>


7. MySQL設定遠端存取。使用方式 :
誤訊息 : 解決辦法 :
網路文章



參考網站 :
Tomcat目錄設定


本文附件 :
isapi_redirect.msi
ckeditor-java-core-3.5.3.zip
commons-fileupload-1.2.2.zip
commons-io-2.0.1.zip
jstl.jar
standard.jar