package com.servlets;
import java.util.EnumSet;
import javax.servlet.DispatcherType;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRegistration.Dynamic;
import javax.servlet.annotation.WebListener;
@WebListener
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
/*-------------------------------动态注册servlet----------------------------------*/
//获取servlet上下文
ServletContext sc = sce.getServletContext();
//定义变量servletName
String servletName = "someServlet";
//定义变量className
String className = "com.servlets.SomeServlet";
//动态注册servlet
Dynamic srd = sc.addServlet(servletName, className);
//为servlet指定url-pattern
srd.addMapping("/some");
//为servlet设置初始化参数
srd.setInitParameter("school", "fdsaf");
srd.setInitParameter("name", "afa");
/*-------------------------------动态注册filter----------------------------------*/
String filterName = "someFilter";
String filterClass = "com.filters.SomeFilter";
javax.servlet.FilterRegistration.Dynamic fld = sc.addFilter(filterName, filterClass);
fld.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
/*-------------------------------动态注册listener----------------------------------*/
sc.addListener("com.listeners.MyRequestListener");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}