Servlet3.0 use

Abstract class HttpServlet focus Http request received
HttpServletRequest interface extends the interface processing Http request ServletRequest

@WebServlet("/webServlet")  //请求路径
public class WebServlet3 extends HttpServlet {
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		resp.getWriter().write("@WebServlet HttpServlet");
	}
}

ServletContainerInitializer Web provides the container start to a third party component initialization work, such as adding Filter filters, the premise must create a file named javax.servlet.ServletContainerInitializer file in META-INF / services directory corresponding jar package, the file @HandlesTypes declaration specifies the implementation class specified path based on the subclass ServletContainerInitializer interface, rewriting onStartup method to obtain a class of interest as a parameter passed in @HandlesTypes

@HandlesTypes(value={AService.class})
public class SpringServletContainerInitlializer implements ServletContainerInitializer {

	@Override
	public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("onStartup..");
		for (Class<?> clazz : c) {
			System.out.println(clazz); //实现或继承AService感兴趣类
		}
	}
	//添加自定义servlet组件
		Dynamic servlet = ctx.addServlet("myServlet", MyServlet.class);
		//添加listener监听器
		ctx.addListener(MyListenner.class);
		//添加过滤器
		javax.servlet.FilterRegistration.Dynamic filter = ctx.addFilter("myFilter", MyFilter.class);
		//设置过滤规则
		filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");

}

Filter Filter interface
public class MyFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {
	// TODO Auto-generated method stub

}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
		throws IOException, ServletException {
	// TODO Auto-generated method stub
	System.out.println("拦截过滤请求");
	//过滤请求放行
	chain.doFilter(request, response);
}

@Override
public void destroy() {
	// TODO Auto-generated method stub
	
}

Interface ServletContextListener container listener
listens starts a servlet or add custom components

public class MyListenner implements ServletContextListener {

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		// TODO Auto-generated method stub
		ServletContext context = sce.getServletContext(); //servlet上下文 全局共享
		System.out.println("ServletContextListecontextInitializedner  contextInitialized");
	}

	@Override
	p8ublic void contextDestroyed(ServletContextEvent sce) {
		// TODO Auto-generated method stub
		System.out.println("ServletContextListecontextInitializedner  contextDestroyed");
	}
}

Published 19 original articles · won praise 8 · views 789

Guess you like

Origin blog.csdn.net/ysl_20190905/article/details/104245576