注册servlet 三大原生组件【Servlet Filter Listener】
一.注册servlet
1.编写一个Servlet类
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("MyServlet");
}
}
2.在配置类中注册 servlet
//1.注册原生servlet
@Bean
public ServletRegistrationBean myServlet(){
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
new MyServlet(), "/myServlet"); // 自己的servlet 访问路径
// 当值等于或大于0时,容器在启动时就加载并初始化这个 servlet
//servletRegistrationBean.setLoadOnStartup(1);
return servletRegistrationBean;
}
二.注册Filter
1.编写一个Filter类
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
System.out.println("MyFilter 执行了");
//放行
filterChain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
- 在配置类中注册Filter
//2.注册 原生 filter
@Bean
public FilterRegistrationBean myFilter(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
//注册 过滤器
filterRegistrationBean.setFilter(new MyFilter());
//设置拦截路径
filterRegistrationBean.setUrlPatterns(Arrays.asList("/hello","/myServlet"));
//filterRegistrationBean.addUrlPatterns();
return filterRegistrationBean;
}
三.注册Listener
1.编写一个Listener类
public class MyListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("contextInitialized servlet 容器启动---------");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("contextDestroyed 服务器关闭-----------");
}
}
2.在配置类中注册 Listener
//3.注册原生 listener
@Bean
public ServletListenerRegistrationBean myListener(){
ServletListenerRegistrationBean servletListenerRegistrationBean = new ServletListenerRegistrationBean(new MyListener());
return servletListenerRegistrationBean;
}
DispatcherServlet
springBoot 自动配置SpringMvc 时,自动注册了dispatcherServlet
springmvc 默认拦截路径为:/
/: 拦截所有请求,包括静态资源,不拦截jsp /*: 拦截所有,包括jsp