0

私たちのサーバーには、一般的なサーブレット マッピングがあります。

  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

問題は、すべての *.do URL がコントローラーで構成されているわけではないため、存在しない *.do で終わる URL を呼び出すと 500 エラーが発生し、*.do で終わらない同じ存在しない URL が適切な 404 を返すことです。

そのため、DispatcherServlet を構成して、その場合に 404 を返すか、少なくともこれらすべての例外をキャッチして 404 を返すようにします。

4

2 に答える 2

0

<error-page/>特にエラーをキャッチするためにデプロイメント記述子の要素を構成する404以外に、他のオプションはありません。Glassfishな​​どの完全なWebアプリケーションコンテナを使用していた場合は404、コンテナレベルでもページを上書きするオプションがあります。構成ごとのオプションについては、ここを参照してください(サーブレット3.0には新しいオプションがあります)

コンテナがジャンプして、要求されたリソースを提供する機能に根本的な問題がある可能性があるという最初のヒントで制御を取得するため、JavaEEスタックにはaのようなものはないことに注意してくださいViewNotFoundException(絶対に確認しました)。

4XXシリーズステータスコードは、Javaのランタイム例外のように、処理できない可能性が高い(など)、または処理すべきでないエラー状態を記述しているため、通常、開発者は制御できません401-forbidden404-Not found

于 2012-12-13T07:42:34.980 に答える