类 MockServletContext

java.lang.Object
cn.taketoday.mock.web.MockServletContext
所有已实现的接口:
jakarta.servlet.ServletContext
直接已知子类:
InfraMockServletContext

public class MockServletContext extends Object implements jakarta.servlet.ServletContext
Mock implementation of the ServletContext interface.

@since 4.0this set of mocks is designed on a Servlet 4.0 baseline.

Compatible with Servlet 3.1 but can be configured to expose a specific version through setMajorVersion(int)/setMinorVersion(int); default is 3.1. Note that Servlet 3.1 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.

从以下版本开始:
4.0
作者:
Rod Johnson, Juergen Hoeller, Sam Brannen
另请参阅:
  • 字段详细资料

    • COMMON_DEFAULT_SERVLET_NAME

      private static final String COMMON_DEFAULT_SERVLET_NAME
      Default Servlet name used by Tomcat, Jetty, JBoss, and GlassFish: "default".
      另请参阅:
    • TEMP_DIR_SYSTEM_PROPERTY

      private static final String TEMP_DIR_SYSTEM_PROPERTY
      另请参阅:
    • DEFAULT_SESSION_TRACKING_MODES

      private static final Set<jakarta.servlet.SessionTrackingMode> DEFAULT_SESSION_TRACKING_MODES
    • logger

      private final cn.taketoday.logging.Logger logger
    • resourceLoader

      private final cn.taketoday.core.io.ResourceLoader resourceLoader
    • resourceBasePath

      private final String resourceBasePath
    • contextPath

      private String contextPath
    • contexts

      private final Map<String,jakarta.servlet.ServletContext> contexts
    • majorVersion

      private int majorVersion
    • minorVersion

      private int minorVersion
    • effectiveMajorVersion

      private int effectiveMajorVersion
    • effectiveMinorVersion

      private int effectiveMinorVersion
    • namedRequestDispatchers

      private final Map<String,jakarta.servlet.RequestDispatcher> namedRequestDispatchers
    • defaultServletName

      private String defaultServletName
    • initParameters

      private final Map<String,String> initParameters
    • attributes

      private final Map<String,Object> attributes
    • servletContextName

      private String servletContextName
    • declaredRoles

      private final Set<String> declaredRoles
    • sessionTrackingModes

      @Nullable private Set<jakarta.servlet.SessionTrackingMode> sessionTrackingModes
    • sessionCookieConfig

      private final jakarta.servlet.SessionCookieConfig sessionCookieConfig
    • sessionTimeout

      private int sessionTimeout
    • requestCharacterEncoding

      @Nullable private String requestCharacterEncoding
    • responseCharacterEncoding

      @Nullable private String responseCharacterEncoding
    • mimeTypes

      private final Map<String,cn.taketoday.http.MediaType> mimeTypes
  • 构造器详细资料

    • MockServletContext

      public MockServletContext()
      Create a new MockServletContext, using no base path and a DefaultResourceLoader (i.e. the classpath root as WAR root).
    • MockServletContext

      public MockServletContext(String resourceBasePath)
      Create a new MockServletContext, using a DefaultResourceLoader.
      参数:
      resourceBasePath - the root directory of the WAR (should not end with a slash)
    • MockServletContext

      public MockServletContext(@Nullable cn.taketoday.core.io.ResourceLoader resourceLoader)
      Create a new MockServletContext, using the specified ResourceLoader and no base path.
      参数:
      resourceLoader - the ResourceLoader to use (or null for the default)
    • MockServletContext

      public MockServletContext(String resourceBasePath, @Nullable cn.taketoday.core.io.ResourceLoader resourceLoader)
      Create a new MockServletContext using the supplied resource base path and resource loader.

      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)
      另请参阅:
  • 方法详细资料

    • getResourceLocation

      protected String getResourceLocation(String path)
      Build a full resource location for the given path, prepending the resource base path of this MockServletContext.
      参数:
      path - the path as specified
      返回:
      the full resource path
    • setContextPath

      public void setContextPath(String contextPath)
    • getContextPath

      public String getContextPath()
      指定者:
      getContextPath 在接口中 jakarta.servlet.ServletContext
    • registerContext

      public void registerContext(String contextPath, jakarta.servlet.ServletContext context)
    • getContext

      public jakarta.servlet.ServletContext getContext(String contextPath)
      指定者:
      getContext 在接口中 jakarta.servlet.ServletContext
    • setMajorVersion

      public void setMajorVersion(int majorVersion)
    • getMajorVersion

      public int getMajorVersion()
      指定者:
      getMajorVersion 在接口中 jakarta.servlet.ServletContext
    • setMinorVersion

      public void setMinorVersion(int minorVersion)
    • getMinorVersion

      public int getMinorVersion()
      指定者:
      getMinorVersion 在接口中 jakarta.servlet.ServletContext
    • setEffectiveMajorVersion

      public void setEffectiveMajorVersion(int effectiveMajorVersion)
    • getEffectiveMajorVersion

      public int getEffectiveMajorVersion()
      指定者:
      getEffectiveMajorVersion 在接口中 jakarta.servlet.ServletContext
    • setEffectiveMinorVersion

      public void setEffectiveMinorVersion(int effectiveMinorVersion)
    • getEffectiveMinorVersion

      public int getEffectiveMinorVersion()
      指定者:
      getEffectiveMinorVersion 在接口中 jakarta.servlet.ServletContext
    • getMimeType

      @Nullable public String getMimeType(String filePath)
      指定者:
      getMimeType 在接口中 jakarta.servlet.ServletContext
    • addMimeType

      public void addMimeType(String fileExtension, cn.taketoday.http.MediaType mimeType)
      Adds a mime type mapping for use by getMimeType(String).
      参数:
      fileExtension - a file extension, such as txt, gif
      mimeType - the mime type
    • getResourcePaths

      @Nullable public Set<String> getResourcePaths(String path)
      指定者:
      getResourcePaths 在接口中 jakarta.servlet.ServletContext
    • getResource

      @Nullable public URL getResource(String path) throws MalformedURLException
      指定者:
      getResource 在接口中 jakarta.servlet.ServletContext
      抛出:
      MalformedURLException
    • getResourceAsStream

      @Nullable public InputStream getResourceAsStream(String path)
      指定者:
      getResourceAsStream 在接口中 jakarta.servlet.ServletContext
    • getRequestDispatcher

      public jakarta.servlet.RequestDispatcher getRequestDispatcher(String path)
      指定者:
      getRequestDispatcher 在接口中 jakarta.servlet.ServletContext
    • getNamedDispatcher

      public jakarta.servlet.RequestDispatcher getNamedDispatcher(String path)
      指定者:
      getNamedDispatcher 在接口中 jakarta.servlet.ServletContext
    • registerNamedDispatcher

      public void registerNamedDispatcher(String name, jakarta.servlet.RequestDispatcher requestDispatcher)
      Register a RequestDispatcher (typically a MockRequestDispatcher) that acts as a wrapper for the named Servlet.
      参数:
      name - the name of the wrapped Servlet
      requestDispatcher - the dispatcher that wraps the named Servlet
      另请参阅:
    • unregisterNamedDispatcher

      public void unregisterNamedDispatcher(String name)
      Unregister the RequestDispatcher with the given name.
      参数:
      name - the name of the dispatcher to unregister
      另请参阅:
    • getDefaultServletName

      public String getDefaultServletName()
      Get the name of the default Servlet.

      Defaults to 'default'.

      另请参阅:
    • setDefaultServletName

      public void setDefaultServletName(String defaultServletName)
      Set the name of the default 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 empty
      另请参阅:
    • log

      public void log(String message)
      指定者:
      log 在接口中 jakarta.servlet.ServletContext
    • log

      public void log(String message, Throwable ex)
      指定者:
      log 在接口中 jakarta.servlet.ServletContext
    • getRealPath

      @Nullable public String getRealPath(String path)
      指定者:
      getRealPath 在接口中 jakarta.servlet.ServletContext
    • getServerInfo

      public String getServerInfo()
      指定者:
      getServerInfo 在接口中 jakarta.servlet.ServletContext
    • getInitParameter

      public String getInitParameter(String name)
      指定者:
      getInitParameter 在接口中 jakarta.servlet.ServletContext
    • getInitParameterNames

      public Enumeration<String> getInitParameterNames()
      指定者:
      getInitParameterNames 在接口中 jakarta.servlet.ServletContext
    • setInitParameter

      public boolean setInitParameter(String name, String value)
      指定者:
      setInitParameter 在接口中 jakarta.servlet.ServletContext
    • addInitParameter

      public void addInitParameter(String name, String value)
    • getAttribute

      @Nullable public Object getAttribute(String name)
      指定者:
      getAttribute 在接口中 jakarta.servlet.ServletContext
    • getAttributeNames

      public Enumeration<String> getAttributeNames()
      指定者:
      getAttributeNames 在接口中 jakarta.servlet.ServletContext
    • setAttribute

      public void setAttribute(String name, @Nullable Object value)
      指定者:
      setAttribute 在接口中 jakarta.servlet.ServletContext
    • removeAttribute

      public void removeAttribute(String name)
      指定者:
      removeAttribute 在接口中 jakarta.servlet.ServletContext
    • setServletContextName

      public void setServletContextName(String servletContextName)
    • getServletContextName

      public String getServletContextName()
      指定者:
      getServletContextName 在接口中 jakarta.servlet.ServletContext
    • getClassLoader

      @Nullable public ClassLoader getClassLoader()
      指定者:
      getClassLoader 在接口中 jakarta.servlet.ServletContext
    • declareRoles

      public void declareRoles(String... roleNames)
      指定者:
      declareRoles 在接口中 jakarta.servlet.ServletContext
    • getDeclaredRoles

      public Set<String> getDeclaredRoles()
    • setSessionTrackingModes

      public void setSessionTrackingModes(Set<jakarta.servlet.SessionTrackingMode> sessionTrackingModes) throws IllegalStateException, IllegalArgumentException
      指定者:
      setSessionTrackingModes 在接口中 jakarta.servlet.ServletContext
      抛出:
      IllegalStateException
      IllegalArgumentException
    • getDefaultSessionTrackingModes

      public Set<jakarta.servlet.SessionTrackingMode> getDefaultSessionTrackingModes()
      指定者:
      getDefaultSessionTrackingModes 在接口中 jakarta.servlet.ServletContext
    • getEffectiveSessionTrackingModes

      public Set<jakarta.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes()
      指定者:
      getEffectiveSessionTrackingModes 在接口中 jakarta.servlet.ServletContext
    • getSessionCookieConfig

      public jakarta.servlet.SessionCookieConfig getSessionCookieConfig()
      指定者:
      getSessionCookieConfig 在接口中 jakarta.servlet.ServletContext
    • setSessionTimeout

      public void setSessionTimeout(int sessionTimeout)
      指定者:
      setSessionTimeout 在接口中 jakarta.servlet.ServletContext
    • getSessionTimeout

      public int getSessionTimeout()
      指定者:
      getSessionTimeout 在接口中 jakarta.servlet.ServletContext
    • setRequestCharacterEncoding

      public void setRequestCharacterEncoding(@Nullable String requestCharacterEncoding)
      指定者:
      setRequestCharacterEncoding 在接口中 jakarta.servlet.ServletContext
    • getRequestCharacterEncoding

      @Nullable public String getRequestCharacterEncoding()
      指定者:
      getRequestCharacterEncoding 在接口中 jakarta.servlet.ServletContext
    • setResponseCharacterEncoding

      public void setResponseCharacterEncoding(@Nullable String responseCharacterEncoding)
      指定者:
      setResponseCharacterEncoding 在接口中 jakarta.servlet.ServletContext
    • getResponseCharacterEncoding

      @Nullable public String getResponseCharacterEncoding()
      指定者:
      getResponseCharacterEncoding 在接口中 jakarta.servlet.ServletContext
    • getJspConfigDescriptor

      public jakarta.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()
      指定者:
      getJspConfigDescriptor 在接口中 jakarta.servlet.ServletContext
    • addJspFile

      public jakarta.servlet.ServletRegistration.Dynamic addJspFile(String servletName, String jspFile)
      指定者:
      addJspFile 在接口中 jakarta.servlet.ServletContext
    • addServlet

      public jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className)
      指定者:
      addServlet 在接口中 jakarta.servlet.ServletContext
    • addServlet

      public jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, jakarta.servlet.Servlet servlet)
      指定者:
      addServlet 在接口中 jakarta.servlet.ServletContext
    • addServlet

      public jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class<? extends jakarta.servlet.Servlet> servletClass)
      指定者:
      addServlet 在接口中 jakarta.servlet.ServletContext
    • createServlet

      public <T extends jakarta.servlet.Servlet> T createServlet(Class<T> c) throws jakarta.servlet.ServletException
      指定者:
      createServlet 在接口中 jakarta.servlet.ServletContext
      抛出:
      jakarta.servlet.ServletException
    • getServletRegistration

      @Nullable public jakarta.servlet.ServletRegistration getServletRegistration(String servletName)
      This method always returns null.
      指定者:
      getServletRegistration 在接口中 jakarta.servlet.ServletContext
      另请参阅:
      • ServletContext.getServletRegistration(java.lang.String)
    • getServletRegistrations

      public Map<String,? extends jakarta.servlet.ServletRegistration> getServletRegistrations()
      This method always returns an empty map.
      指定者:
      getServletRegistrations 在接口中 jakarta.servlet.ServletContext
      另请参阅:
      • ServletContext.getServletRegistrations()
    • addFilter

      public jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className)
      指定者:
      addFilter 在接口中 jakarta.servlet.ServletContext
    • addFilter

      public jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, jakarta.servlet.Filter filter)
      指定者:
      addFilter 在接口中 jakarta.servlet.ServletContext
    • addFilter

      public jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends jakarta.servlet.Filter> filterClass)
      指定者:
      addFilter 在接口中 jakarta.servlet.ServletContext
    • createFilter

      public <T extends jakarta.servlet.Filter> T createFilter(Class<T> c) throws jakarta.servlet.ServletException
      指定者:
      createFilter 在接口中 jakarta.servlet.ServletContext
      抛出:
      jakarta.servlet.ServletException
    • getFilterRegistration

      @Nullable public jakarta.servlet.FilterRegistration getFilterRegistration(String filterName)
      This method always returns null.
      指定者:
      getFilterRegistration 在接口中 jakarta.servlet.ServletContext
      另请参阅:
      • ServletContext.getFilterRegistration(java.lang.String)
    • getFilterRegistrations

      public Map<String,? extends jakarta.servlet.FilterRegistration> getFilterRegistrations()
      This method always returns an empty map.
      指定者:
      getFilterRegistrations 在接口中 jakarta.servlet.ServletContext
      另请参阅:
      • ServletContext.getFilterRegistrations()
    • addListener

      public void addListener(Class<? extends EventListener> listenerClass)
      指定者:
      addListener 在接口中 jakarta.servlet.ServletContext
    • addListener

      public void addListener(String className)
      指定者:
      addListener 在接口中 jakarta.servlet.ServletContext
    • addListener

      public <T extends EventListener> void addListener(T t)
      指定者:
      addListener 在接口中 jakarta.servlet.ServletContext
    • createListener

      public <T extends EventListener> T createListener(Class<T> c) throws jakarta.servlet.ServletException
      指定者:
      createListener 在接口中 jakarta.servlet.ServletContext
      抛出:
      jakarta.servlet.ServletException
    • getVirtualServerName

      public String getVirtualServerName()
      指定者:
      getVirtualServerName 在接口中 jakarta.servlet.ServletContext