public abstract class HttpFilter extends Object implements Filter
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.
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"); } } }
Constructor and Description |
---|
HttpFilter() |
Modifier and Type | Method and Description |
---|---|
void |
destroy() |
abstract void |
doFilter(HttpServletRequest request,
HttpServletResponse response,
HttpSession session,
FilterChain chain)
Filter the HTTP request.
|
void |
doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) |
protected FilterConfig |
getFilterConfig()
Returns the filter config.
|
protected String |
getInitParameter(String name)
Returns the value of the filter init parameter associated with the given name.
|
protected ServletContext |
getServletContext()
Returns the servlet context.
|
void |
init()
Convenience init() method without FilterConfig parameter which will be called by init(FilterConfig).
|
void |
init(FilterConfig filterConfig)
Called by the servlet container when the filter is about to be placed into service.
|
public void init(FilterConfig filterConfig) throws ServletException
FilterConfig
object for later use by the getter methods. It's recommended to not
override this method. Instead, just use init()
method. When overriding this method anyway, don't forget
to call super.init(config)
, otherwise the getter methods will throw an illegal state exception.init
in interface Filter
ServletException
public void init() throws ServletException
ServletException
- When filter's initialization failed.public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException
doFilter
in interface Filter
ServletException
IOException
public abstract void doFilter(HttpServletRequest request, HttpServletResponse response, HttpSession session, FilterChain chain) throws ServletException, IOException
null
if there is no session.request
- The HTTP request.response
- The HTTP response.session
- The HTTP session, if any, else null
.chain
- The filter chain to continue.ServletException
- As wrapper exception when something fails in the request processing.IOException
- Whenever something fails at I/O level.Filter.doFilter(ServletRequest, ServletResponse, FilterChain)
protected FilterConfig getFilterConfig()
protected String getInitParameter(String name)
name
- The filter init parameter name to return the associated value for.protected ServletContext getServletContext()
Copyright © 2012–2017 OmniFaces. All rights reserved.