アプリケーション用にweb.xml
を手動で構成しました。現在、アプリケーションの実行中に問題に直面しています。 servlet
ページからjsp
にアクセスしようとしています。ただし、page not found
としてエラーをスローしています。
サーブレットは、フォルダーの場所の下に配置されます
<application folder>/WEB-INF/classes/<package>
したがって、url-pattern
およびservlet-mapping
のサーブレットのエントリはどうなりますか。そのため、servlet
にはURLからアクセスできます。
url-pattern
はweb.xml
で使用され、servlet
を特定のURLにマップします。以下のxmlコードをご覧ください。web.xml
構成ファイルにある類似のコードです。
<servlet>
<servlet-name>AddPhotoServlet</servlet-name> //servlet name
<servlet-class>upload.AddPhotoServlet</servlet-class> //servlet class
</servlet>
<servlet-mapping>
<servlet-name>AddPhotoServlet</servlet-name> //servlet name
<url-pattern>/AddPhotoServlet</url-pattern> //how it should appear
</servlet-mapping>
AddPhotoServlet
のurl-pattern
を/AddPhotoServlet
から/MyUrl
に変更した場合。その後、/MyUrl
を使用して、AddPhotoServlet
サーブレットにアクセスできます。実際のページのURLを非表示にするセキュリティ上の理由から適しています。
Javaサーブレットurl-pattern
仕様:
- '/'文字で始まり '/ *'接尾辞で終わる文字列がパスマッピングに使用されます。
- '*。'プレフィックスで始まる文字列は、拡張マッピングとして使用されます。
- '/'文字のみを含む文字列は、アプリケーションの「デフォルト」サーブレットを示します。この場合、サーブレットパスはリクエストURIからコンテキストパスを引いたものであり、パス情報はnullです。
- 他のすべての文字列は、完全一致にのみ使用されます。
参照: Javaサーブレット仕様
これを読むこともできます Basic of Java Servlet
Servlet-mappingには、url-patternとservlet-nameの2つの子タグがあります。 url-patternは、servlet-nameで指定されたサーブレットを呼び出す必要があるURLのタイプを指定します。コンテナは、サーブレットの一致の文字列比較に大文字と小文字を区別することに注意してください。
最初の指定url-pattern
a web.xml
server.comのサーブレットコンテナ上のサーバーコンテキストのファイルは、次のように<url-pattern>/status/*</url-pattern>
のパターンと一致します。
http://server.com/server/status/synopsis = Matches
http://server.com/server/status/complete?date=today = Matches
http://server.com/server/status = Matches
http://server.com/server/server1/status = Does not match
2番目の指定url-pattern
example.comのエージェントのパス/ examplesにあるコンテキストは、次のように<url-pattern>*.map</url-pattern>
のパターンと一致します。
http://server.com/server/US/Oregon/Portland.map = Matches
http://server.com/server/US/server/Seattle.map = Matches
http://server.com/server/Paris.France.map = Matches
http://server.com/server/US/Oregon/Portland.MAP = Does not match, the extension is uppercase
http://example.com/examples/interface/description/mail.mapi =Does not match, the extension is mapi rather than map`
番目の指定url-mapping
、パターン<url-pattern>/</url-pattern>
を含むマッピングは、他のパターンが一致しない場合にリクエストに一致します。これはデフォルトのマッピングです。このパターンにマップされたサーブレットは、デフォルトサーブレットと呼ばれます。
デフォルトのマッピングは、多くの場合、アプリケーションの最初のページに向けられます。また、デフォルトのマッピングを明示的に提供することにより、エラーを返すのではなく、アプリケーションが返す不正な形式のURL要求がアプリケーションによって処理されるようになります。
以下のservlet-mapping要素は、server
サーブレットインスタンスをデフォルトのマッピングにマッピングします。
<servlet-mapping>
<servlet-name>server</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
この要素を含むコンテキストの場合、別のマッピングによって処理されない要求は、server
サーブレットに転送されます。
そして最も重要なことは、RLパスマッピングのルールについて知っておく必要があることです。
参照 RLパターン