Class MockServletContext
- All Implemented Interfaces:
jakarta.servlet.ServletContext
ServletContext interface.
As of Spring 7.0, this set of mocks is designed on a Servlet 6.1 baseline.
Compatible with Servlet 6.1 but can be configured to expose a specific version
through setMajorVersion(int)/setMinorVersion(int); default is 6.1.
Note that some Servlet SPI support is limited: servlet, filter and listener
registration methods are not supported; neither is JSP configuration.
We generally do not recommend to unit test your ServletContainerInitializers and
WebApplicationInitializers which is where those registration methods would be used.
For setting up a full WebApplicationContext in a test environment, you can
use AnnotationConfigWebApplicationContext, XmlWebApplicationContext,
or GenericWebApplicationContext, passing in a corresponding
MockServletContext instance. Consider configuring your
MockServletContext with a FileSystemResourceLoader in order to
interpret resource paths as relative filesystem locations.
- Since:
- 1.0.2
- Author:
- Rod Johnson, Juergen Hoeller, Sam Brannen
- See Also:
-
Field Summary
Fields inherited from interface jakarta.servlet.ServletContext
ORDERED_LIBS, TEMPDIR -
Constructor Summary
ConstructorsConstructorDescriptionCreate a newMockServletContext, using no base path and aDefaultResourceLoader(i.e.MockServletContext(String resourceBasePath) Create a newMockServletContext, using aDefaultResourceLoader.MockServletContext(String resourceBasePath, @Nullable ResourceLoader resourceLoader) Create a newMockServletContextusing the supplied resource base path and resource loader.MockServletContext(@Nullable ResourceLoader resourceLoader) Create a newMockServletContext, using the specifiedResourceLoaderand no base path. -
Method Summary
Modifier and TypeMethodDescriptionjakarta.servlet.FilterRegistration.Dynamicjakarta.servlet.FilterRegistration.Dynamicjakarta.servlet.FilterRegistration.DynamicvoidaddFilterRegistration(jakarta.servlet.FilterRegistration registration) Add aFilterRegistration.voidaddInitParameter(String name, String value) jakarta.servlet.ServletRegistration.DynamicaddJspFile(String servletName, String jspFile) voidaddListener(Class<? extends EventListener> listenerClass) voidaddListener(String className) <T extends EventListener>
voidaddListener(T t) voidaddMimeType(String fileExtension, MediaType mimeType) Adds a mime type mapping for use bygetMimeType(String).jakarta.servlet.ServletRegistration.DynamicaddServlet(String servletName, jakarta.servlet.Servlet servlet) jakarta.servlet.ServletRegistration.DynamicaddServlet(String servletName, Class<? extends jakarta.servlet.Servlet> servletClass) jakarta.servlet.ServletRegistration.DynamicaddServlet(String servletName, String className) <T extends jakarta.servlet.Filter>
TcreateFilter(Class<T> c) <T extends EventListener>
TcreateListener(Class<T> c) <T extends jakarta.servlet.Servlet>
TcreateServlet(Class<T> c) voiddeclareRoles(String... roleNames) getAttribute(String name) @Nullable jakarta.servlet.ServletContextgetContext(String contextPath) Get the name of the defaultServlet.Set<jakarta.servlet.SessionTrackingMode> intintSet<jakarta.servlet.SessionTrackingMode> @Nullable jakarta.servlet.FilterRegistrationgetFilterRegistration(String filterName) getInitParameter(String name) jakarta.servlet.descriptor.JspConfigDescriptorintgetMimeType(String filePath) int@Nullable jakarta.servlet.RequestDispatchergetNamedDispatcher(String path) getRealPath(String path) jakarta.servlet.RequestDispatchergetRequestDispatcher(String path) getResource(String path) getResourceAsStream(String path) protected StringgetResourceLocation(String path) Build a full resource location for the given path, prepending the resource base path of thisMockServletContext.getResourcePaths(String path) @Nullable jakarta.servlet.ServletRegistrationgetServletRegistration(String servletName) This method always returnsnull.This method always returns an empty map.jakarta.servlet.SessionCookieConfigintvoidvoidvoidregisterContext(String contextPath, jakarta.servlet.ServletContext context) voidregisterNamedDispatcher(String name, jakarta.servlet.RequestDispatcher requestDispatcher) Register aRequestDispatcher(typically aMockRequestDispatcher) that acts as a wrapper for the named Servlet.voidremoveAttribute(String name) voidsetAttribute(String name, @Nullable Object value) voidsetContextPath(String contextPath) voidsetDefaultServletName(String defaultServletName) Set the name of the defaultServlet.voidsetEffectiveMajorVersion(int effectiveMajorVersion) voidsetEffectiveMinorVersion(int effectiveMinorVersion) booleansetInitParameter(String name, String value) voidsetMajorVersion(int majorVersion) voidsetMinorVersion(int minorVersion) voidsetRequestCharacterEncoding(@Nullable String requestCharacterEncoding) voidsetResponseCharacterEncoding(@Nullable String responseCharacterEncoding) voidsetServletContextName(String servletContextName) voidsetSessionTimeout(int sessionTimeout) voidsetSessionTrackingModes(Set<jakarta.servlet.SessionTrackingMode> sessionTrackingModes) voidUnregister theRequestDispatcherwith the given name.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jakarta.servlet.ServletContext
setRequestCharacterEncoding, setResponseCharacterEncoding
-
Constructor Details
-
MockServletContext
public MockServletContext()Create a newMockServletContext, using no base path and aDefaultResourceLoader(i.e. the classpath root as WAR root).- See Also:
-
MockServletContext
Create a newMockServletContext, using aDefaultResourceLoader.- Parameters:
resourceBasePath- the root directory of the WAR (should not end with a slash)- See Also:
-
MockServletContext
Create a newMockServletContext, using the specifiedResourceLoaderand no base path.- Parameters:
resourceLoader- the ResourceLoader to use (or null for the default)
-
MockServletContext
Create a newMockServletContextusing the supplied resource base path and resource loader.Registers a
MockRequestDispatcherfor the Servlet named 'default'.- Parameters:
resourceBasePath- the root directory of the WAR (should not end with a slash)resourceLoader- the ResourceLoader to use (or null for the default)- See Also:
-
-
Method Details
-
getResourceLocation
-
setContextPath
-
getContextPath
- Specified by:
getContextPathin interfacejakarta.servlet.ServletContext
-
registerContext
-
getContext
-
setMajorVersion
public void setMajorVersion(int majorVersion) -
getMajorVersion
public int getMajorVersion()- Specified by:
getMajorVersionin interfacejakarta.servlet.ServletContext
-
setMinorVersion
public void setMinorVersion(int minorVersion) -
getMinorVersion
public int getMinorVersion()- Specified by:
getMinorVersionin interfacejakarta.servlet.ServletContext
-
setEffectiveMajorVersion
public void setEffectiveMajorVersion(int effectiveMajorVersion) -
getEffectiveMajorVersion
public int getEffectiveMajorVersion()- Specified by:
getEffectiveMajorVersionin interfacejakarta.servlet.ServletContext
-
setEffectiveMinorVersion
public void setEffectiveMinorVersion(int effectiveMinorVersion) -
getEffectiveMinorVersion
public int getEffectiveMinorVersion()- Specified by:
getEffectiveMinorVersionin interfacejakarta.servlet.ServletContext
-
getMimeType
-
addMimeType
Adds a mime type mapping for use bygetMimeType(String).- Parameters:
fileExtension- a file extension, such astxt,gifmimeType- the mime type
-
getResourcePaths
-
getResource
- Specified by:
getResourcein interfacejakarta.servlet.ServletContext- Throws:
MalformedURLException
-
getResourceAsStream
- Specified by:
getResourceAsStreamin interfacejakarta.servlet.ServletContext
-
getRequestDispatcher
- Specified by:
getRequestDispatcherin interfacejakarta.servlet.ServletContext
-
getNamedDispatcher
-
registerNamedDispatcher
public void registerNamedDispatcher(String name, jakarta.servlet.RequestDispatcher requestDispatcher) Register aRequestDispatcher(typically aMockRequestDispatcher) that acts as a wrapper for the named Servlet.- Parameters:
name- the name of the wrapped ServletrequestDispatcher- the dispatcher that wraps the named Servlet- See Also:
-
unregisterNamedDispatcher
Unregister theRequestDispatcherwith the given name.- Parameters:
name- the name of the dispatcher to unregister- See Also:
-
getDefaultServletName
Get the name of the defaultServlet.Defaults to 'default'.
- See Also:
-
setDefaultServletName
Set the name of the defaultServlet.Also
unregistersthe current defaultRequestDispatcherandreplacesit with aMockRequestDispatcherfor the provideddefaultServletName.- Parameters:
defaultServletName- the name of the defaultServlet; nevernullor empty- See Also:
-
log
- Specified by:
login interfacejakarta.servlet.ServletContext
-
log
-
getRealPath
-
getServerInfo
- Specified by:
getServerInfoin interfacejakarta.servlet.ServletContext
-
getInitParameter
-
getInitParameterNames
- Specified by:
getInitParameterNamesin interfacejakarta.servlet.ServletContext
-
setInitParameter
-
addInitParameter
-
getAttribute
-
getAttributeNames
- Specified by:
getAttributeNamesin interfacejakarta.servlet.ServletContext
-
setAttribute
-
removeAttribute
- Specified by:
removeAttributein interfacejakarta.servlet.ServletContext
-
setServletContextName
-
getServletContextName
- Specified by:
getServletContextNamein interfacejakarta.servlet.ServletContext
-
getClassLoader
- Specified by:
getClassLoaderin interfacejakarta.servlet.ServletContext
-
declareRoles
- Specified by:
declareRolesin interfacejakarta.servlet.ServletContext
-
getDeclaredRoles
-
setSessionTrackingModes
public void setSessionTrackingModes(Set<jakarta.servlet.SessionTrackingMode> sessionTrackingModes) throws IllegalStateException, IllegalArgumentException - Specified by:
setSessionTrackingModesin interfacejakarta.servlet.ServletContext- Throws:
IllegalStateExceptionIllegalArgumentException
-
getDefaultSessionTrackingModes
- Specified by:
getDefaultSessionTrackingModesin interfacejakarta.servlet.ServletContext
-
getEffectiveSessionTrackingModes
- Specified by:
getEffectiveSessionTrackingModesin interfacejakarta.servlet.ServletContext
-
getSessionCookieConfig
public jakarta.servlet.SessionCookieConfig getSessionCookieConfig()- Specified by:
getSessionCookieConfigin interfacejakarta.servlet.ServletContext
-
setSessionTimeout
public void setSessionTimeout(int sessionTimeout) - Specified by:
setSessionTimeoutin interfacejakarta.servlet.ServletContext
-
getSessionTimeout
public int getSessionTimeout()- Specified by:
getSessionTimeoutin interfacejakarta.servlet.ServletContext
-
setRequestCharacterEncoding
-
getRequestCharacterEncoding
-
setResponseCharacterEncoding
-
getResponseCharacterEncoding
-
addFilterRegistration
public void addFilterRegistration(jakarta.servlet.FilterRegistration registration) Add aFilterRegistration.- Since:
- 6.2
-
getFilterRegistration
-
getFilterRegistrations
-
getJspConfigDescriptor
public jakarta.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()- Specified by:
getJspConfigDescriptorin interfacejakarta.servlet.ServletContext
-
addJspFile
-
addServlet
-
addServlet
public jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, jakarta.servlet.Servlet servlet) - Specified by:
addServletin interfacejakarta.servlet.ServletContext
-
addServlet
-
createServlet
public <T extends jakarta.servlet.Servlet> T createServlet(Class<T> c) throws jakarta.servlet.ServletException - Specified by:
createServletin interfacejakarta.servlet.ServletContext- Throws:
jakarta.servlet.ServletException
-
getServletRegistration
-
getServletRegistrations
-
addFilter
-
addFilter
public jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, jakarta.servlet.Filter filter) - Specified by:
addFilterin interfacejakarta.servlet.ServletContext
-
addFilter
-
createFilter
public <T extends jakarta.servlet.Filter> T createFilter(Class<T> c) throws jakarta.servlet.ServletException - Specified by:
createFilterin interfacejakarta.servlet.ServletContext- Throws:
jakarta.servlet.ServletException
-
addListener
- Specified by:
addListenerin interfacejakarta.servlet.ServletContext
-
addListener
- Specified by:
addListenerin interfacejakarta.servlet.ServletContext
-
addListener
- Specified by:
addListenerin interfacejakarta.servlet.ServletContext
-
createListener
public <T extends EventListener> T createListener(Class<T> c) throws jakarta.servlet.ServletException - Specified by:
createListenerin interfacejakarta.servlet.ServletContext- Throws:
jakarta.servlet.ServletException
-
getVirtualServerName
- Specified by:
getVirtualServerNamein interfacejakarta.servlet.ServletContext
-