2012-01-01 56 views
0

我在日食動態Web項目,該項目使用註解來這樣的映射的servlet:添加錯誤頁面區塊在Tomcat中的所有servlet 7

@WebServlet("/LoginController") 
public class LoginController extends HttpServlet { 
    .... 
} 

我也有使用這些小服務程序,類似這樣的jsp頁面:

<form method="post" action="LoginController"> 

它所有的工作就像一個字符,直到我決定添加錯誤404500錯誤頁面。 Google上的一些搜索帶我到java2s,我發現我必須修改web.xml文件來指定錯誤頁面。但我的項目沒有在WEB-INF目錄下的web.xml文件(順便說一句,我使用Eclipse Indigo作爲IDE和Tomcat 7.0.14)。所以我加了一個如下:

<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app> 
    <error-page> 
     <error-code> 
      404 
     </error-code> 
     <location> 
      /404.html 
     </location> 
    </error-page> 

    <error-page> 
     <error-code> 
      500 
     </error-code> 
     <location> 
      /500.html 
     </location> 
    </error-page> 
</web-app> 

這就引入了一個新問題。我的servlet不再工作了!我所有的JSP都正常工作。但是對我的servlet的所有請求都帶我進入404錯誤頁面。例如,我可以得到一個登錄表單,因爲JSP的工作正常。但是,當我將我的登錄表單提交到LoginController時,它會顯示404錯誤頁面。

我認爲可以通過使用web.xml文件來解決servlet映射而不是WebServlet註解。但是有沒有一種方法可以使用WebServlet註釋並提供錯誤頁面?我會很高興,如果web.xml可以避免顯示錯誤頁面。另外,我不喜歡編輯tomcat的任何配置文件。那麼,我該如何解決這個問題呢?

回答

3

刪除的文檔類型,使用下面的webapp元素聲明:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 

您使用的文檔類型聲明你的web應用的web應用程序2.3,它沒有支持註釋。

+0

這解決了我的問題。謝謝。 +1! – Jomoos 2012-01-01 13:20:06