2 つ (またはそれ以上) の異なる URL パターンに使用したい Java サーブレットがあるとします。
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/this/exact/path</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/that/prefix/path/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/yet/another/exact/path</url-pattern>
</servlet-mapping>
MyServlet は、次のいずれかに対して呼び出されます。
/this/exact/path
/yet/another/exact/path
/that/prefix/path/param1
/that/prefix/path/param2.html
私が知りたいのは、リクエストが一致したパスが何であったかをコード内からどのように知ることができるかということです。(つまり、リクエストが行われた場合は/myapp/yet/another/exact/path
、文字列を取得したい/yet/another/exact/path
)。
また、/that/prefix/path/ と * に一致したものを区別する方法があるはずだと思います。
試してみString path = req.getRequestURI()
ましたが、 /myapp 部分も返されます。