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");
}
}