サーブレットマッピングに関連する問題があります。 web.xmlに次のものがあります。
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>test.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
http://localhost:<port>/MyApp/HelloWorld
にアクセスすると、サーブレットHelloWorldServlet
が呼び出されます。
また、私のサーブレットがhttp://localhost:<port>/MyApp/HelloWorld/
に応答することを望みます。どうすればこの効果を達成できますか? NetBeansを使用して開発していますが、/
で終わるパターンを配置できません。
_<url-pattern>
_にワイルドカードを追加した後
_<url-pattern>/HelloWorld/*</url-pattern>
_
HttpServletRequest.getPathInfo()
を使用して、URLに関連付けられた追加のパスを取得できます。
例えば。
_http://localhost:<port>/MyApp/HelloWorld/one/
_
結果は
_/one/
_
JavaDocから:
クライアントがこの要求を行ったときに送信したURLに関連付けられた追加のパス情報を返します。追加のパス情報は、サーブレットのパスに続きますが、クエリ文字列の前にあり、「/」文字で始まります。
ワイルドカードを使用します。特定のURLに向かうすべてのトラフィックを同じサーブレットにリダイレクトできます。たとえば、次を追加できます。
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/HelloWorld/*</url-pattern>
</servlet-mapping>
これにより、スラッシュ付きのURLが元のサーブレットにリダイレクトされます。
ある考え-これは、このURLパターンにあるものをサーブレットにリダイレクトします。他のURLがこのURLを通過したい場合は、(指定されたURLを見て)正しいURLにリダイレクトするサーブレットを作成する必要があります。または、マッピングを提供するフレームワークを使用できます。