@WebFilter
Ek açıklama kullanarak filtre yürütme sırasını tanımlayamazsınız . Bununla birlikte, web.xml
kullanımı en aza indirmek için , tüm filtrelere açıklama eklemek yeterlidir, filterName
böylece <filter>
tanıma ihtiyacınız yoktur , ancak <filter-mapping>
istenen sırayla bir tanım gerekir.
Örneğin,
@WebFilter(filterName="filter1")
public class Filter1 implements Filter {}
@WebFilter(filterName="filter2")
public class Filter2 implements Filter {}
içinde birlikte web.xml
sadece bu:
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern>/url1/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>filter2</filter-name>
<url-pattern>/url2/*</url-pattern>
</filter-mapping>
URL kalıbını içeride tutmak @WebFilter
istiyorsanız, bunu yapabilirsiniz,
@WebFilter(filterName="filter1", urlPatterns="/url1/*")
public class Filter1 implements Filter {}
@WebFilter(filterName="filter2", urlPatterns="/url2/*")
public class Filter2 implements Filter {}
ama yine de tutmalı <url-pattern>
in web.xml
o XSD uyarınca gerekli çünkü o boş olabilir ancak,:
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern />
</filter-mapping>
<filter-mapping>
<filter-name>filter2</filter-name>
<url-pattern />
</filter-mapping>
Yaklaşımdan bağımsız olarak, bu, Tomcat'te 7.0.28 sürümüne kadar başarısız olacaktır çünkü <filter-mapping>
onsuz varlığını boğar <filter>
. Ayrıca bkz . Tomcat'i kullanma, @WebFilter web.xml içindeki <filter-mapping> ile çalışmaz
order
iç içe bir@WebFilterMapping
ek açıklama niteliği getirebilirlerdi . Basitlik için yapmadım mı acaba