@WebFilter(
attribute1=value1,
attribute2=value2,
...
)
public class TheFilter implements javax.servlet.Filter {
// implements Filter's methods: init(), doFilter() and destroy()
} Name | Type | Required | Description |
filterName | String | Optional | Name of the filter. |
value or urlPatterns | String[] | Required | Specify one or more URL patterns to which the filter applies. Either of attribute can be used, but not both. |
dispatcherTypes | DispatcherType[] | Optional | Specify types of dispatcher to which the filter applies. Default is javax.servlet.DispatcherType.REQUEST |
servletNames | String[] | Optional | Specify names of servlets to which the filter applies. |
displayName | String | Optional | Display name of the filter. |
description | String | Optional | Description of the filter. |
asyncSupported | boolean | Optional | Specify whether the filter supports asynchronous operation mode. Default is false. |
initParams | WebInitParam[] | Optional | Specify one or more initialization parameters of the filter. Each parameter is specified by @WebInitParam annotation type. |
smallIcon | String | Optional | Specify name of the small icon of the filter. |
largeIcon | String | Optional | Specify name of the large icon of the filter. |
@WebFilter("/admin")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
}
@Override
public void destroy() {
}
} Apply a filter for all URLs: @WebFilter("/*")
public class MyFilter implements Filter {
// implements Filter's methods here...
} Register a filter for a specific servlet:@WebFilter(servletNames = "MyOwnServlet")
public class MyFilter implements Filter {
// implements Filter's methods here...
} @WebFilter(servletNames = {"MyOwnServlet", "UploadServlet"})
public class MyFilter implements Filter {
// implements Filter's methods here...
} Specify initialization parameters for the filter:@WebFilter(
urlPatterns = "/uploadFilter",
initParams = @WebInitParam(name = "fileTypes", value = "doc;xls;zip;txt;jpg;png;gif")
)
public class UploadFilter implements Filter {
// implements Filter's methods here...
} Specify additional information for the filter:@WebFilter(
urlPatterns = "/admin/*",
filterName = "AdminFilter",
description = "Filter all admin URLs"
)
public class MyFilter implements Filter {
// implements Filter's methods here...
} Specify dispatcher types:@WebFilter(
urlPatterns = "/admin",
dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.FORWARD}
)
public class MyFilter implements Filter {
// implements Filter's methods here...
}That's how to use the @WebFilter annotation. I recommend you to read the book Head First Servlet and JSP to fully learn about Java servlet programming.
Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He began programming with Java back in the days of Java 1.4 and has been passionate about it ever since. You can connect with him on Facebook and watch his Java videos on YouTube.