Servlet 3.0 程序配置
Servlet 3.0 规范中引入了配置方法 addListener、addFilter 和 addServlet。
Servlet 3.0 的方法是 ServletContext 接口的一部分。 您可以从 ServletContainerInitializer 或 ServletContextListener 调用这些方法。
addListener
这addGlobalListener方法已弃用WebSphere® Application Server版本8.5 。 此方法会替换为 addListener 方法。
- 使用以下方法以将具有给定类名的侦听器添加到此 servlet 上下文:
void addListener(java.lang.String className) - 使用以下方法以将给定侦听器添加到此 servlet 上下文:
<T extends java.util.EventListener> void addListener(T t) - 使用以下方法以将具有给定类类型的侦听器添加到此 servlet 上下文:
void addListener(java.lang.Class<? extends java.util.EventListener> listenerClass)
给定侦听器类必须实现以下一个或多个接口:
- ServletContextAttributeListener
- ServletRequestListener
- ServletRequestAttributeListener
- HttpSessionListener
- HttpSessionAttributeListener
addFilter
这addMappingFilter方法已弃用WebSphere Application Server版本8.5 。 此方法会替换为 addFilter 方法。 此方法会将具有给定名称、描述和类名的过滤器添加到 Web 应用程序上下文。 可以使用返回的 FilterRegistration 对象对注册过滤器进行进一步配置。
- 使用以下方法以将具有给定名称和类类型的过滤器添加到此 servlet 上下文:
addFilter(java.lang.String filterName, java.lang.Class<? extends Filter> filterClass) - 使用以下方法以向此 servlet 上下文注册给定过滤器实例,并使用给定 filterName:
addFilter(java.lang.String filterName, Filter filter) - 使用以下方法以将具有给定名称和类名的过滤器添加到此 servlet 上下文:
addFilter(java.lang.String filterName, java.lang.String className)
addServlet
addServlet 方法会将 servlet 动态添加到 servletContext。 这些方法会将具有给定参数的 servlet 添加到 Web 应用程序上下文。 可以使用返回的 ServletRegistration 对象对注册的 servlet 进行进一步配置。
- 使用以下方法以将具有给定名称和类类型的过滤器添加到此 servlet 上下文:
addFilter(java.lang.String filterName, java.lang.Class<? extends Filter> filterClass) - 使用以下方法以向此 servlet 上下文注册给定过滤器实例,并使用给定 filterName:
addFilter(java.lang.String filterName, Filter filter) - 使用以下方法以将具有给定名称和类名的过滤器添加到此 servlet 上下文:
addFilter(java.lang.String filterName, java.lang.String className)
ServletContainerInitializer
为共享库配置 JAR 文件且在 JAR 中发现 ServletContainerInitializer 时,会为与共享库关联的每个应用程序调用 ServletContainerInitializer。
Servlet 3.0 中不推荐的类
com.ibm.websphere.servlet.context.IBMServletContext 中不推荐以下类:
- public void addDynamicServlet(String servletName, String servletClass, String mappingURI, Properties initParameters) throws ServletException, java.lang.SecurityException;
- public void removeDynamicServlet(String servletName) throws java.lang.SecurityException