public class GuiceFilter
extends java.lang.Object
implements javax.servlet.Filter
Apply this filter in web.xml above all other filters (typically), to all requests where you plan to use servlet scopes. This is also needed in order to dispatch requests to injectable filters and servlets:
<filter> <filter-name>guiceFilter</filter-name> <filter-class>com.google.inject.servlet.GuiceFilter</filter-class> </filter> <filter-mapping> <filter-name>guiceFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>This filter must appear before every filter that makes use of Guice injection or servlet scopes functionality. Typically, you will only register this filter in web.xml and register any other filters (and servlets) using a
ServletModule
.Modifier and Type | Class and Description |
---|---|
(package private) static class |
GuiceFilter.Context |
Modifier and Type | Field and Description |
---|---|
private FilterPipeline |
injectedPipeline
We allow both the static and dynamic versions of the pipeline to exist.
|
(package private) static java.lang.ThreadLocal<GuiceFilter.Context> |
localContext |
private static java.util.logging.Logger |
LOGGER |
private static java.lang.String |
MULTIPLE_INJECTORS_WARNING |
(package private) static FilterPipeline |
pipeline |
(package private) static java.lang.ref.WeakReference<javax.servlet.ServletContext> |
servletContext
Used to inject the servlets configured via
ServletModule |
Constructor and Description |
---|
GuiceFilter() |
GuiceFilter(FilterPipeline filterPipeline) |
Modifier and Type | Method and Description |
---|---|
void |
destroy() |
void |
doFilter(javax.servlet.ServletRequest servletRequest,
javax.servlet.ServletResponse servletResponse,
javax.servlet.FilterChain filterChain) |
private static GuiceFilter.Context |
getContext(Key<?> key) |
private FilterPipeline |
getFilterPipeline() |
(package private) static javax.servlet.http.HttpServletRequest |
getOriginalRequest(Key<?> key) |
(package private) static javax.servlet.http.HttpServletRequest |
getRequest(Key<?> key) |
(package private) static javax.servlet.http.HttpServletResponse |
getResponse(Key<?> key) |
(package private) static javax.servlet.ServletContext |
getServletContext() |
void |
init(javax.servlet.FilterConfig filterConfig) |
(package private) static void |
reset() |
(package private) static void |
setPipeline(FilterPipeline pipeline) |
static final java.lang.ThreadLocal<GuiceFilter.Context> localContext
static volatile FilterPipeline pipeline
private final FilterPipeline injectedPipeline
static volatile java.lang.ref.WeakReference<javax.servlet.ServletContext> servletContext
ServletModule
private static final java.lang.String MULTIPLE_INJECTORS_WARNING
private static final java.util.logging.Logger LOGGER
public GuiceFilter()
@Inject GuiceFilter(FilterPipeline filterPipeline)
@Inject static void setPipeline(FilterPipeline pipeline)
static void reset()
public void doFilter(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse, javax.servlet.FilterChain filterChain) throws java.io.IOException, javax.servlet.ServletException
doFilter
in interface javax.servlet.Filter
java.io.IOException
javax.servlet.ServletException
static javax.servlet.http.HttpServletRequest getOriginalRequest(Key<?> key)
static javax.servlet.http.HttpServletRequest getRequest(Key<?> key)
static javax.servlet.http.HttpServletResponse getResponse(Key<?> key)
static javax.servlet.ServletContext getServletContext()
private static GuiceFilter.Context getContext(Key<?> key)
public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException
init
in interface javax.servlet.Filter
javax.servlet.ServletException
public void destroy()
destroy
in interface javax.servlet.Filter
private FilterPipeline getFilterPipeline()