- 2011年12月1日 9:20 PM
- Java
Servlet 3.0 になってから HttpServlet クラスの @WebServlet 同様に、Filter クラスも @WebFilter というアノテーションが指定できるようになっていて、やたら便利です。
@WebFilter(dispatcherTypes = { DispatcherType.REQUEST }, urlPatterns = { "/*" },
initParams = { @WebInitParam(name = "encoding", value = "UTF-8") })
public class EncodingFilter implements Filter {
private String encoding = null;
@Override
public void init(FilterConfig fConfig) throws ServletException {
encoding = fConfig.getInitParameter("encoding");
}
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}
}
が、どうもアノテーションだけでは、Filter クラスの順番を定義することはできないようです。
なので、結局、web.xml に Filter を上から順番に書いていくしかないようです、残念。
(指定する方法があったら教えて欲しいです)
ちなみに @WebFilter に指定するアノテーション定義はこちら
http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/WebFilter.html
やはり、順番を指定する指定は無いっぽい。
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://sinsengumi.net/blog/2011/12/servlet-3-0-%e3%81%ae%e3%82%a2%e3%83%8e%e3%83%86%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a7%e3%81%af-filter-%e3%81%ae%e9%a0%86%e7%95%aa%e3%82%92%e6%8c%87%e5%ae%9a%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84/trackback/
- Listed below are links to weblogs that reference
- Servlet 3.0 のアノテーションでは Filter の順番を指定できない? from sinsengumi血風録