JAvaフィルタ<br>タブで行います.<br>さぎょう
1805 ワード
2.4バージョンのservlet仕様は、REQUEST、FOrWARD、INCLUDE、およびERRORの4つの可能な値を持つ要素を部属記述子に新たに追加した.要素に任意の数のを加えることで、filterはクライアントから直接来たrequest、forwardから来たrequest、includeから来たrequest、およびから来たrequestに作用します.要素が指定されていない場合は、デフォルト値はREQUESTです.次のいくつかの例で理解を助けることができます.
例1:
この場合、フィルタは、クライアントから直接送信された/products/...から始まるリクエストに作用します.ここでは要素は一切制定されていないので、デフォルト値はREQUESTです.
例2:
この場合、リクエストがrequest dispatcherのincludeメソッドによって渡されたProductServiceletに対するリクエストであれば、このフィルタのフィルタを通過します.このフィルタは、クライアントから直接来たProductServiceletに対する要求など、他のものは必要ありません.フィルタのマッチング方法を指定するには、url-patternを直接指定する方法と、指定したservletに対応するurl-patternをフィルタのマッチングモードとする方法の2つがあります.filterのパスマッチングはservletと同じであり、servlet仕様の「SRV.1.2 Specification of Mappings」のセクションの説明に従います.
例3:
この場合、リクエストが/products/...で始まり、request dispatcherのforwardメソッドで渡されたり、クライアントから直接渡されたりした場合は、このフィルタを通過する必要があります.
例1:
<filter-mapping>
<filter-name>Logging Filter</filter-name>
<url-pattern>/products/*</url-pattern>
</filter-mapping>
この場合、フィルタは、クライアントから直接送信された/products/...から始まるリクエストに作用します.ここでは
例2:
<filter-mapping>
<filter-name>Logging Filter</filter-name>
<servlet-name>ProductServlet</servlet-name>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
この場合、リクエストがrequest dispatcherのincludeメソッドによって渡されたProductServiceletに対するリクエストであれば、このフィルタのフィルタを通過します.このフィルタは、クライアントから直接来たProductServiceletに対する要求など、他のものは必要ありません.フィルタのマッチング方法を指定するには、url-patternを直接指定する方法と、指定したservletに対応するurl-patternをフィルタのマッチングモードとする方法の2つがあります.filterのパスマッチングはservletと同じであり、servlet仕様の「SRV.1.2 Specification of Mappings」のセクションの説明に従います.
例3:
<filter-mapping>
<filter-name>Logging Filter</filter-name>
<url-pattern>/products/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
この場合、リクエストが/products/...で始まり、request dispatcherのforwardメソッドで渡されたり、クライアントから直接渡されたりした場合は、このフィルタを通過する必要があります.