- All Implemented Interfaces:
Filter
- Direct Known Subclasses:
CacheControlFilter,CharacterEncodingFilter,CompressedResponseFilter,FacesExceptionFilter,FacesViewsForwardingFilter,MutableRequestFilter,OnDemandResponseBufferFilter
The HttpFilter is abstract filter specifically for HTTP requests. It provides a convenient abstract
doFilter(HttpServletRequest, HttpServletResponse, HttpSession, FilterChain) method directly providing the
HTTP servlet request, response and session, so that there's no need to cast them everytime in the
doFilter(ServletRequest, ServletResponse, FilterChain) implementation. Also, default implementations of
init(FilterConfig) and destroy() are provided, so that there's no need to implement them every time
even when not really needed.
It's a bit the idea of using the convenient HttpServlet abstract servlet class instead of the barebones
Servlet interface.
Usage
To use it, just let your custom filter extend from HttpFilter instead of implement Filter.
For example:
@WebFilter("/app/*")
public class LoginFilter extends HttpFilter {
@Override
public void doFilter(HttpServletRequest request, HttpServletResponse response, HttpSession session, FilterChain chain)
throws ServletException, IOException
{
if (session != null && session.getAttribute("user") != null) {
chain.doFilter(request, response);
}
else {
Servlets.facesRedirect(request, response, "login.xhtml");
}
}
}
- Author:
- Arjan Tijms, Bauke Scholtz
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()abstract voiddoFilter(HttpServletRequest request, HttpServletResponse response, HttpSession session, FilterChain chain) Filter the HTTP request.voiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain) protected FilterConfigReturns the filter config.protected StringgetInitParameter(String name) Returns the value of the filter init parameter associated with the given name.protected ServletContextReturns the servlet context.voidinit()Convenience init() method without FilterConfig parameter which will be called by init(FilterConfig).voidinit(FilterConfig filterConfig) Called by the servlet container when the filter is about to be placed into service.
-
Constructor Details
-
HttpFilter
public HttpFilter()
-
-
Method Details
-
init
Called by the servlet container when the filter is about to be placed into service. This implementation stores theFilterConfigobject for later use by the getter methods. It's recommended to not override this method. Instead, just useinit()method. When overriding this method anyway, don't forget to callsuper.init(config), otherwise the getter methods will throw an illegal state exception.- Specified by:
initin interfaceFilter- Throws:
ServletException
-
init
Convenience init() method without FilterConfig parameter which will be called by init(FilterConfig).- Throws:
ServletException- When filter's initialization failed.
-
doFilter
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException - Specified by:
doFilterin interfaceFilter- Throws:
ServletExceptionIOException
-
doFilter
public abstract void doFilter(HttpServletRequest request, HttpServletResponse response, HttpSession session, FilterChain chain) throws ServletException, IOException Filter the HTTP request. The session argument isnullif there is no session.- Parameters:
request- The HTTP request.response- The HTTP response.session- The HTTP session, if any, elsenull.chain- The filter chain to continue.- Throws:
ServletException- As wrapper exception when something fails in the request processing.IOException- Whenever something fails at I/O level.- See Also:
-
destroy
public void destroy() -
getFilterConfig
Returns the filter config.- Returns:
- The filter config.
-
getInitParameter
Returns the value of the filter init parameter associated with the given name.- Parameters:
name- The filter init parameter name to return the associated value for.- Returns:
- The value of the filter init parameter associated with the given name.
-
getServletContext
Returns the servlet context.- Returns:
- The servlet context.
-