org.apache.catalina.valves
Class CrawlerSessionManagerValve
java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
org.apache.catalina.valves.ValveBase
org.apache.catalina.valves.CrawlerSessionManagerValve
- All Implemented Interfaces:
- MBeanRegistration, Contained, Lifecycle, Valve
public class CrawlerSessionManagerValve
- extends ValveBase
Web crawlers can trigger the creation of many thousands of sessions as they
crawl a site which may result in significant memory consumption. This Valve
ensures that crawlers are associated with a single session - just like normal
users - regardless of whether or not they provide a session token with their
requests.
Fields inherited from interface org.apache.catalina.Lifecycle |
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT |
Methods inherited from class org.apache.catalina.valves.ValveBase |
event, getContainer, getDomainInternal, getInfo, getNext, getObjectNameKeyProperties, isAsyncSupported, setAsyncSupported, setContainer, setNext, startInternal, stopInternal, toString |
Methods inherited from class org.apache.catalina.util.LifecycleBase |
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, init, removeLifecycleListener, setState, setState, start, stop |
CrawlerSessionManagerValve
public CrawlerSessionManagerValve()
setCrawlerUserAgents
public void setCrawlerUserAgents(String crawlerUserAgents)
- Specify the regular expression (using
Pattern
) that will be used
to identify crawlers based in the User-Agent header provided. The default
is ".*GoogleBot.*|.*bingbot.*|.*Yahoo! Slurp.*"
- Parameters:
crawlerUserAgents
- The regular expression using Pattern
getCrawlerUserAgents
public String getCrawlerUserAgents()
- Returns:
- The current regular expression being used to match user agents.
- See Also:
setCrawlerUserAgents(String)
setSessionInactiveInterval
public void setSessionInactiveInterval(int sessionInactiveInterval)
- Specify the session timeout (in seconds) for a crawler's session. This is
typically lower than that for a user session. The default is 60 seconds.
- Parameters:
sessionInactiveInterval
- The new timeout for crawler sessions
getSessionInactiveInterval
public int getSessionInactiveInterval()
- Returns:
- The current timeout in seconds
- See Also:
setSessionInactiveInterval(int)
initInternal
protected void initInternal()
throws LifecycleException
- Description copied from class:
LifecycleMBeanBase
- Sub-classes wishing to perform additional initialization should override
this method, ensuring that super.initInternal() is the first call in the
overriding method.
- Overrides:
initInternal
in class ValveBase
- Throws:
LifecycleException
invoke
public void invoke(Request request,
Response response)
throws IOException,
ServletException
- Description copied from class:
ValveBase
- The implementation-specific logic represented by this Valve. See the
Valve description for the normal design patterns for this method.
This method MUST be provided by a subclass.
- Specified by:
invoke
in interface Valve
- Specified by:
invoke
in class ValveBase
- Parameters:
request
- The servlet request to be processedresponse
- The servlet response to be created
- Throws:
IOException
- if an input/output error occurs
ServletException
- if a servlet error occurs
backgroundProcess
public void backgroundProcess()
- Description copied from class:
ValveBase
- Execute a periodic task, such as reloading, etc. This method will be
invoked inside the classloading context of this container. Unexpected
throwables will be caught and logged.
- Specified by:
backgroundProcess
in interface Valve
- Overrides:
backgroundProcess
in class ValveBase
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.