1、编写一个配置类
@Configuration(proxyBeanMethods = true)public class MyRegistConfig {@Beanpublic ServletRegistrationBean myServlet() {MyServlet myServlet = new MyServlet();return new ServletRegistrationBean(myServlet, "/my", "/my2");}@Beanpublic FilterRegistrationBean myFilter() {MyFilter myFilter = new MyFilter();// return new FilterRegistrationBean(myFilter, myServlet());FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myFilter);filterRegistrationBean.setUrlPatterns(Arrays.asList("/my", "/css/*"));return filterRegistrationBean;}@Beanpublic ServletListenerRegistrationBean myListener() {MyServletContextListener myServletContextListener = new MyServletContextListener();return new ServletListenerRegistrationBean(myServletContextListener);}}
2、Servlet
不需要加额外注解了,直接编写类本身即可。
public class MyServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().write("6666");}}
3、Filter
除了 lombok 的 slf4j 用来打印日志以外,不需要加额外注解了,直接编写类本身即可。
@Slf4jpublic class MyFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {log.info("MyFilter工作");chain.doFilter(request, response);}@Overridepublic void init(FilterConfig filterConfig) throws ServletException {log.info("MyFilter初始化完成");}@Overridepublic void destroy() {log.info("MyFilter销毁");}}
4、Listener
除了 lombok 的 slf4j 用来打印日志以外,不需要加额外注解了,直接编写类本身即可。
@Slf4jpublic class MyServletContextListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {log.info("MyServletContextListener 监听到项目初始化完成");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {log.info("MyServletContextListener 监听到项目销毁");}}
测试效果
访问:
http://127.0.0.1/css/bootstrap.min.css

可以看到,有在正常工作。
http://127.0.0.1/my
可以看到有在正常工作。

Listener 也有正常工作。
