2011-09-14 448 views
0

現在我有以下問題: 我正在嘗試使用Tomcat 7和JSP創建網站。 但我無法正確配置服務器。 我想要一個在瀏覽器地址欄中顯示的網站,如mydomain.com/about,而不帶* .jsp或* .html。 爲了實現這一點,我有一個重定向Bean,由JSP-Page調用,解析請求的URI並返回應該轉發的JSP文件的路徑。問題是web.xml中的servlet映射 在那裏我試圖創建一個servlet映射。 /關於它被映射到調用bean的redirect.jsp。問題是,我收到以下異常:Servlet映射失敗

javax.servlet.ServletException:沒有servlet類已經爲servlet的指定重定向

下面是web.xml中的代碼:

<servlet-mapping> 
    <servlet-name>redirect</servlet-name> 
    <url-pattern>/engine</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>redirect</servlet-name> 
    <url-pattern>/about</url-pattern> 
</servlet-mapping> 

BTW:index.jsp被正確調用,因爲它在歡迎文件列表中。問題是重定向到其他網站,而不在地址欄中顯示路徑。

也許有一種方法可以在Javabean中轉發。這可以由servlet映射中的<servlet-class> -tag調用。

感謝您的幫助提前! 最大

回答

4

沒有servlet類已經爲servlet的指定重定向

此錯誤只是意味着有一個與redirect被definied在web.xml

<servlet> 
    <servlet-name>redirect</servlet-name> 
    <servlet-class>com.example.YourServletClass</servlet-class> 
</servlet> 

或名稱沒有的servlet

<servlet> 
    <servlet-name>redirect</servlet-name> 
    <jsp-file>/redirect.jsp</jsp-file> 
</servlet> 

相應地修復您的web.xml


無關的具體問題,我建議使用一個單一的Filter一些(XML?)配置爲這個而不是文件。類似於Tuckey's URL rewrite filter,與Apache HTTPD的mod_rewrite非常相似。

1

對不起, 這僅僅是一個塊上方在web.xml

<servlet> 
    <servlet-name>redirect</servlet-name> 
    <description>The main redirection thing</description> 
    <jsp-file>/jsp/redirect.jsp</jsp-file> 
</servlet> 

<servlet-mapping> 
    <servlet-name>redirect</servlet-name> 
    <url-pattern>/engine</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>redirect</servlet-name> 
    <url-pattern>/about</url-pattern> 
</servlet-mapping> 

不是解決辦法。我很確定,需要一個servlet定義的節點。但正如我所說,我需要一個JSP文件。