Servlet3.0 三大组件的动态注册

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) {
	
}

}

发布了47 篇原创文章 · 获赞 1 · 访问量 384

猜你喜欢

转载自blog.csdn.net/weixin_43925059/article/details/104756105