0

私はEclipseに動的Webプロジェクトを持っています。これは注釈を使用してサーブレットを次のようにマップします:

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

次のように、これらのサーブレットを使用する jsp ページもあります。

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

エラー404500. Google で少し検索するとjava2sweb.xmlにたどり着き、エラー ページを指定するにはファイルを変更する必要があることがわかりました。web.xmlしかし、私のプロジェクトにはディレクトリの下にファイルがありませんWEB-INF(ちなみに、IDEとしてEclipse Indigoと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>

これにより、新しい問題が発生します。サーブレットが機能しなくなりました。私の JSP はすべて正常に動作しています。しかし、サーブレットへのすべてのリクエストで 404 エラー ページが表示されます。たとえば、JSP が正常に機能しているため、ログイン フォームを取得できます。しかし、ログイン フォームを送信すると、つまりLoginController404 エラー ページが表示されます。

アノテーションweb.xmlの代わりにファイルをサーブレットマッピングに使用することで解決できるかもしれないと思います。WebServletしかし、WebServlet注釈を使用してエラーページを提供する方法はありますか? web.xmlエラーページの表示を回避できれば幸いです。また、Tomcat の構成ファイルを編集するのも好きではありません。では、どうすれば問題を解決できますか?

4

1 に答える 1

3

doc タイプを削除し、次の web-app 要素宣言を使用します。

<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">

使用する doc タイプは、Web アプリを 2.3 Web アプリとして宣言しますが、これは注釈をサポートしていません。

于 2012-01-01T13:08:59.040 に答える