public class MockServletContext extends Object implements javax.servlet.ServletContext
ServletContext interface.
Compatible with Servlet 2.5 and partially with Servlet 3.0. Can be configured to
expose a specific version through setMajorVersion(int)/setMinorVersion(int);
default is 2.5. Note that Servlet 3.0 support is limited: servlet, filter and listener
registration methods are not supported; neither is cookie or JSP configuration.
We generally do not recommend to unit-test your ServletContainerInitializers and
WebApplicationInitializers which is where those registration methods would be used.
Used for testing the Spring web framework; only rarely necessary for testing
application controllers. As long as application components don't explicitly
access the ServletContext, ClassPathXmlApplicationContext or
FileSystemXmlApplicationContext can be used to load the context files
for testing, even for DispatcherServlet context definitions.
For setting up a full WebApplicationContext in a test environment,
you can use AnnotationConfigWebApplicationContext,
XmlWebApplicationContext, or GenericWebApplicationContext,
passing in an appropriate MockServletContext instance. You might want
to configure your MockServletContext with a FileSystemResourceLoader
in that case to ensure that resource paths are interpreted as relative filesystem
locations.
A common setup is to point your JVM working directory to the root of your
web application directory, in combination with filesystem-based resource loading.
This allows to load the context files as used in the web application, with
relative paths getting interpreted correctly. Such a setup will work with both
FileSystemXmlApplicationContext (which will load straight from the
filesystem) and XmlWebApplicationContext with an underlying
MockServletContext (as long as the MockServletContext has been
configured with a FileSystemResourceLoader).
MockServletContext(org.springframework.core.io.ResourceLoader),
AnnotationConfigWebApplicationContext,
XmlWebApplicationContext,
GenericWebApplicationContext,
ClassPathXmlApplicationContext,
FileSystemXmlApplicationContext| Constructor and Description |
|---|
MockServletContext()
Create a new MockServletContext, using no base path and a
DefaultResourceLoader (i.e.
|
MockServletContext(ResourceLoader resourceLoader)
Create a new MockServletContext, using the specified ResourceLoader
and no base path.
|
MockServletContext(String resourceBasePath)
Create a new MockServletContext, using a DefaultResourceLoader.
|
MockServletContext(String resourceBasePath,
ResourceLoader resourceLoader)
Create a new MockServletContext using the supplied resource base path and
resource loader.
|
| Modifier and Type | Method and Description |
|---|---|
javax.servlet.FilterRegistration.Dynamic |
addFilter(String filterName,
Class<? extends javax.servlet.Filter> filterClass) |
javax.servlet.FilterRegistration.Dynamic |
addFilter(String filterName,
javax.servlet.Filter filter) |
javax.servlet.FilterRegistration.Dynamic |
addFilter(String filterName,
String className) |
void |
addInitParameter(String name,
String value) |
void |
addListener(Class<? extends EventListener> listenerClass) |
void |
addListener(String className) |
<T extends EventListener> |
addListener(T t) |
javax.servlet.ServletRegistration.Dynamic |
addServlet(String servletName,
Class<? extends javax.servlet.Servlet> servletClass) |
javax.servlet.ServletRegistration.Dynamic |
addServlet(String servletName,
javax.servlet.Servlet servlet) |
javax.servlet.ServletRegistration.Dynamic |
addServlet(String servletName,
String className) |
<T extends javax.servlet.Filter> |
createFilter(Class<T> clazz) |
<T extends EventListener> |
createListener(Class<T> clazz) |
<T extends javax.servlet.Servlet> |
createServlet(Class<T> clazz) |
void |
declareRoles(String... roleNames) |
Object |
getAttribute(String name) |
Enumeration<String> |
getAttributeNames() |
ClassLoader |
getClassLoader() |
javax.servlet.ServletContext |
getContext(String contextPath) |
String |
getContextPath() |
Set<String> |
getDeclaredRoles() |
String |
getDefaultServletName()
Get the name of the default
Servlet. |
Set<javax.servlet.SessionTrackingMode> |
getDefaultSessionTrackingModes() |
int |
getEffectiveMajorVersion() |
int |
getEffectiveMinorVersion() |
Set<javax.servlet.SessionTrackingMode> |
getEffectiveSessionTrackingModes() |
javax.servlet.FilterRegistration |
getFilterRegistration(String filterName) |
Map<String,? extends javax.servlet.FilterRegistration> |
getFilterRegistrations() |
String |
getInitParameter(String name) |
Enumeration<String> |
getInitParameterNames() |
javax.servlet.descriptor.JspConfigDescriptor |
getJspConfigDescriptor() |
int |
getMajorVersion() |
String |
getMimeType(String filePath)
This method uses the Java Activation framework, which returns "application/octet-stream"
when the mime type is unknown (i.e.
|
int |
getMinorVersion() |
javax.servlet.RequestDispatcher |
getNamedDispatcher(String path) |
String |
getRealPath(String path) |
javax.servlet.RequestDispatcher |
getRequestDispatcher(String path) |
URL |
getResource(String path) |
InputStream |
getResourceAsStream(String path) |
protected String |
getResourceLocation(String path)
Build a full resource location for the given path,
prepending the resource base path of this MockServletContext.
|
Set<String> |
getResourcePaths(String path) |
String |
getServerInfo() |
javax.servlet.Servlet |
getServlet(String name) |
String |
getServletContextName() |
Enumeration<String> |
getServletNames() |
javax.servlet.ServletRegistration |
getServletRegistration(String servletName) |
Map<String,? extends javax.servlet.ServletRegistration> |
getServletRegistrations() |
Enumeration<javax.servlet.Servlet> |
getServlets() |
javax.servlet.SessionCookieConfig |
getSessionCookieConfig() |
void |
log(Exception ex,
String message) |
void |
log(String message) |
void |
log(String message,
Throwable ex) |
void |
registerContext(String contextPath,
javax.servlet.ServletContext context) |
void |
registerNamedDispatcher(String name,
javax.servlet.RequestDispatcher requestDispatcher)
Register a
RequestDispatcher (typically a MockRequestDispatcher)
that acts as a wrapper for the named Servlet. |
void |
removeAttribute(String name) |
void |
setAttribute(String name,
Object value) |
void |
setContextPath(String contextPath) |
void |
setDefaultServletName(String defaultServletName)
Set the name of the default
Servlet. |
void |
setEffectiveMajorVersion(int effectiveMajorVersion) |
void |
setEffectiveMinorVersion(int effectiveMinorVersion) |
boolean |
setInitParameter(String name,
String value) |
void |
setMajorVersion(int majorVersion) |
void |
setMinorVersion(int minorVersion) |
void |
setServletContextName(String servletContextName) |
void |
setSessionTrackingModes(Set<javax.servlet.SessionTrackingMode> sessionTrackingModes) |
void |
unregisterNamedDispatcher(String name)
Unregister the
RequestDispatcher with the given name. |
public MockServletContext()
DefaultResourceLoaderpublic MockServletContext(String resourceBasePath)
resourceBasePath - the root directory of the WAR (should not end with a slash)DefaultResourceLoaderpublic MockServletContext(ResourceLoader resourceLoader)
resourceLoader - the ResourceLoader to use (or null for the default)public MockServletContext(String resourceBasePath, ResourceLoader resourceLoader)
Registers a MockRequestDispatcher for the Servlet named
"default".
resourceBasePath - the root directory of the WAR (should not end with a slash)resourceLoader - the ResourceLoader to use (or null for the default)registerNamedDispatcher(java.lang.String, javax.servlet.RequestDispatcher)protected String getResourceLocation(String path)
path - the path as specifiedpublic void setContextPath(String contextPath)
public String getContextPath()
getContextPath in interface javax.servlet.ServletContextpublic void registerContext(String contextPath, javax.servlet.ServletContext context)
public javax.servlet.ServletContext getContext(String contextPath)
getContext in interface javax.servlet.ServletContextpublic void setMajorVersion(int majorVersion)
public int getMajorVersion()
getMajorVersion in interface javax.servlet.ServletContextpublic void setMinorVersion(int minorVersion)
public int getMinorVersion()
getMinorVersion in interface javax.servlet.ServletContextpublic void setEffectiveMajorVersion(int effectiveMajorVersion)
public int getEffectiveMajorVersion()
getEffectiveMajorVersion in interface javax.servlet.ServletContextpublic void setEffectiveMinorVersion(int effectiveMinorVersion)
public int getEffectiveMinorVersion()
getEffectiveMinorVersion in interface javax.servlet.ServletContextpublic String getMimeType(String filePath)
null). In order to maintain
the ServletContext.getMimeType(String) contract, this method returns null
if the mimeType is "application/octet-stream", as of Spring 3.2.2.getMimeType in interface javax.servlet.ServletContextpublic Set<String> getResourcePaths(String path)
getResourcePaths in interface javax.servlet.ServletContextpublic URL getResource(String path) throws MalformedURLException
getResource in interface javax.servlet.ServletContextMalformedURLExceptionpublic InputStream getResourceAsStream(String path)
getResourceAsStream in interface javax.servlet.ServletContextpublic javax.servlet.RequestDispatcher getRequestDispatcher(String path)
getRequestDispatcher in interface javax.servlet.ServletContextpublic javax.servlet.RequestDispatcher getNamedDispatcher(String path)
getNamedDispatcher in interface javax.servlet.ServletContextpublic void registerNamedDispatcher(String name, javax.servlet.RequestDispatcher requestDispatcher)
RequestDispatcher (typically a MockRequestDispatcher)
that acts as a wrapper for the named Servlet.name - the name of the wrapped ServletrequestDispatcher - the dispatcher that wraps the named ServletgetNamedDispatcher(java.lang.String),
unregisterNamedDispatcher(java.lang.String)public void unregisterNamedDispatcher(String name)
RequestDispatcher with the given name.name - the name of the dispatcher to unregistergetNamedDispatcher(java.lang.String),
registerNamedDispatcher(java.lang.String, javax.servlet.RequestDispatcher)public String getDefaultServletName()
Servlet.
Defaults to "default".
setDefaultServletName(java.lang.String)public void setDefaultServletName(String defaultServletName)
Servlet.
Also unregisters the current default
RequestDispatcher and replaces
it with a MockRequestDispatcher for the provided
defaultServletName.
defaultServletName - the name of the default Servlet;
never null or emptygetDefaultServletName()public javax.servlet.Servlet getServlet(String name)
getServlet in interface javax.servlet.ServletContextpublic Enumeration<javax.servlet.Servlet> getServlets()
getServlets in interface javax.servlet.ServletContextpublic Enumeration<String> getServletNames()
getServletNames in interface javax.servlet.ServletContextpublic void log(String message)
log in interface javax.servlet.ServletContextpublic void log(Exception ex, String message)
log in interface javax.servlet.ServletContextpublic void log(String message, Throwable ex)
log in interface javax.servlet.ServletContextpublic String getRealPath(String path)
getRealPath in interface javax.servlet.ServletContextpublic String getServerInfo()
getServerInfo in interface javax.servlet.ServletContextpublic String getInitParameter(String name)
getInitParameter in interface javax.servlet.ServletContextpublic Enumeration<String> getInitParameterNames()
getInitParameterNames in interface javax.servlet.ServletContextpublic boolean setInitParameter(String name, String value)
setInitParameter in interface javax.servlet.ServletContextpublic Object getAttribute(String name)
getAttribute in interface javax.servlet.ServletContextpublic Enumeration<String> getAttributeNames()
getAttributeNames in interface javax.servlet.ServletContextpublic void setAttribute(String name, Object value)
setAttribute in interface javax.servlet.ServletContextpublic void removeAttribute(String name)
removeAttribute in interface javax.servlet.ServletContextpublic void setServletContextName(String servletContextName)
public String getServletContextName()
getServletContextName in interface javax.servlet.ServletContextpublic ClassLoader getClassLoader()
getClassLoader in interface javax.servlet.ServletContextpublic void declareRoles(String... roleNames)
declareRoles in interface javax.servlet.ServletContextpublic javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className)
addServlet in interface javax.servlet.ServletContextpublic javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, javax.servlet.Servlet servlet)
addServlet in interface javax.servlet.ServletContextpublic javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class<? extends javax.servlet.Servlet> servletClass)
addServlet in interface javax.servlet.ServletContextpublic <T extends javax.servlet.Servlet> T createServlet(Class<T> clazz) throws javax.servlet.ServletException
createServlet in interface javax.servlet.ServletContextjavax.servlet.ServletExceptionpublic javax.servlet.ServletRegistration getServletRegistration(String servletName)
getServletRegistration in interface javax.servlet.ServletContextpublic Map<String,? extends javax.servlet.ServletRegistration> getServletRegistrations()
getServletRegistrations in interface javax.servlet.ServletContextpublic javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className)
addFilter in interface javax.servlet.ServletContextpublic javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, javax.servlet.Filter filter)
addFilter in interface javax.servlet.ServletContextpublic javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends javax.servlet.Filter> filterClass)
addFilter in interface javax.servlet.ServletContextpublic <T extends javax.servlet.Filter> T createFilter(Class<T> clazz) throws javax.servlet.ServletException
createFilter in interface javax.servlet.ServletContextjavax.servlet.ServletExceptionpublic javax.servlet.FilterRegistration getFilterRegistration(String filterName)
getFilterRegistration in interface javax.servlet.ServletContextpublic Map<String,? extends javax.servlet.FilterRegistration> getFilterRegistrations()
getFilterRegistrations in interface javax.servlet.ServletContextpublic javax.servlet.SessionCookieConfig getSessionCookieConfig()
getSessionCookieConfig in interface javax.servlet.ServletContextpublic void setSessionTrackingModes(Set<javax.servlet.SessionTrackingMode> sessionTrackingModes)
setSessionTrackingModes in interface javax.servlet.ServletContextpublic Set<javax.servlet.SessionTrackingMode> getDefaultSessionTrackingModes()
getDefaultSessionTrackingModes in interface javax.servlet.ServletContextpublic Set<javax.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes()
getEffectiveSessionTrackingModes in interface javax.servlet.ServletContextpublic void addListener(String className)
addListener in interface javax.servlet.ServletContextpublic <T extends EventListener> void addListener(T t)
addListener in interface javax.servlet.ServletContextpublic void addListener(Class<? extends EventListener> listenerClass)
addListener in interface javax.servlet.ServletContextpublic <T extends EventListener> T createListener(Class<T> clazz) throws javax.servlet.ServletException
createListener in interface javax.servlet.ServletContextjavax.servlet.ServletExceptionpublic javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()
getJspConfigDescriptor in interface javax.servlet.ServletContextCopyright © 2015. All rights reserved.