1

私はこのようなURLをフィルタリングする必要があります:

http://www.mysite.com/708e93

ここ708e93で、は一意のIDです。このIDに基づいて、jspで動的ページを作成する必要があります。

ここで問題は-filter-mappingの下にurl-patternに何を入れるかです

<filter-mapping>
<filter-name>foo.bar.MyFilter</filter-name>
<url-pattern> ?? </url-pattern>
</filter-mapping>

ルート(/)をurl-patternに入れると、mysiteへのすべてのリクエストがフィルタリングされます。その場合、どうすれば一意のIDを取得できますか?

解決策はありますか?

編集

私はこのようなURLにディレクトリを追加したくありません:http://www.mysite.com/dynamicpages/708e93

4

1 に答える 1

1

ユースケースなどの動的URLの場合。ディレクトリ内にすべての動的ページがあるはずです。たとえば、dynamicpagesフォルダです。そして、以下のようなディレクトリURLパターンをマッピングする必要があります。

<filter-mapping>
  <filter-name>foo.bar.MyFilter</filter-name>  
  <url-pattern>/dynmaicpages/*</url-pattern>
</filter-mapping>

<servlet-mapping>
  <servlet-name>foo.bar.MyServlet</servlet-name>  
  <url-pattern>/dynmaicpages/*</url-pattern>
</servlet-mapping>

次の方法を使用して、一意のIDを取得できます。

  • HttpServletRequest.getPathInfo() 上記のようなサーブレットマッピングがある場合、これにより一意のID値が直接提供されます。

たとえば、リクエストURIがの場合は/dynamicpages/708e93 、を返し708e93ます。

  • HttpServletRequest.getRequestURI()これにより、リクエストURL全体が提供されます。そして、一意のIDを適切に解析する必要があります。

たとえば、リクエストURIがの場合は/dynamicpages/708e93 、を返し/dynamicpages/708e93ます。

于 2012-07-09T10:36:29.287 に答える