Save This Page
Home » spring-framework-2.5.5-with-dependencies » org.springframework » web » filter » [javadoc | source]
org.springframework.web.filter
abstract public class: OncePerRequestFilter [javadoc | source]
java.lang.Object
   org.springframework.web.filter.GenericFilterBean
      org.springframework.web.filter.OncePerRequestFilter

All Implemented Interfaces:
    Filter, DisposableBean, BeanNameAware, InitializingBean, ServletContextAware

Direct Known Subclasses:
    ServletContextRequestLoggingFilter, OpenSessionInViewFilter, AbstractRequestLoggingFilter, MultipartFilter, OpenPersistenceManagerInViewFilter, OpenSessionInViewFilter, CharacterEncodingFilter, OpenEntityManagerInViewFilter, CommonsRequestLoggingFilter, Log4jNestedDiagnosticContextFilter, RequestContextFilter

Filter base class that guarantees to be just executed once per request, on any servlet container. It provides a #doFilterInternal method with HttpServletRequest and HttpServletResponse arguments.

The #getAlreadyFilteredAttributeName method determines how to identify that a request is already filtered. The default implementation is based on the configured name of the concrete filter instance.

Field Summary
public static final  String ALREADY_FILTERED_SUFFIX    Suffix that gets appended to the filter name for the "already filtered" request attribute. 
Fields inherited from org.springframework.web.filter.GenericFilterBean:
logger
Method from org.springframework.web.filter.OncePerRequestFilter Summary:
doFilter,   doFilterInternal,   getAlreadyFilteredAttributeName,   shouldNotFilter
Methods from org.springframework.web.filter.GenericFilterBean:
addRequiredProperty,   afterPropertiesSet,   destroy,   getFilterConfig,   getFilterName,   getServletContext,   init,   initBeanWrapper,   initFilterBean,   setBeanName,   setServletContext
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.springframework.web.filter.OncePerRequestFilter Detail:
 public final  void doFilter(ServletRequest request,
    ServletResponse response,
    FilterChain filterChain) throws IOException, ServletException 
    This doFilter implementation stores a request attribute for "already filtered", proceeding without filtering again if the attribute is already there.
 abstract protected  void doFilterInternal(HttpServletRequest request,
    HttpServletResponse response,
    FilterChain filterChain) throws IOException, ServletException
    Same contract as for doFilter, but guaranteed to be just invoked once per request. Provides HttpServletRequest and HttpServletResponse arguments instead of the default ServletRequest and ServletResponse ones.
 protected String getAlreadyFilteredAttributeName() 
    Return the name of the request attribute that identifies that a request is already filtered.

    Default implementation takes the configured name of the concrete filter instance and appends ".FILTERED". If the filter is not fully initialized, it falls back to its class name.

 protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException 
    Can be overridden in subclasses for custom filtering control, returning true to avoid filtering of the given request.

    The default implementation always returns false.