diff --git a/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/Application.java b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/Application.java index cff38a3f..846016d9 100644 --- a/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/Application.java +++ b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/Application.java @@ -2,8 +2,10 @@ package cn.iocoder.springboot.lab23.springmvc; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication +@ServletComponentScan public class Application { public static void main(String[] args) { diff --git a/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/config/SpringMVCConfiguration.java b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/config/SpringMVCConfiguration.java index 288a5ac0..078e3c5e 100644 --- a/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/config/SpringMVCConfiguration.java +++ b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/config/SpringMVCConfiguration.java @@ -3,14 +3,28 @@ package cn.iocoder.springboot.lab23.springmvc.config; import cn.iocoder.springboot.lab23.springmvc.core.interceptor.FirstInterceptor; import cn.iocoder.springboot.lab23.springmvc.core.interceptor.SecondInterceptor; import cn.iocoder.springboot.lab23.springmvc.core.interceptor.ThirdInterceptor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; +import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import javax.servlet.*; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Collections; + @Configuration public class SpringMVCConfiguration implements WebMvcConfigurer { + private Logger logger = LoggerFactory.getLogger(getClass()); + @Bean public FirstInterceptor firstInterceptor() { return new FirstInterceptor(); @@ -36,4 +50,50 @@ public class SpringMVCConfiguration implements WebMvcConfigurer { registry.addInterceptor(this.thirdInterceptor()).addPathPatterns("/**"); } + @Bean + public ServletRegistrationBean testServlet01() { + ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean<>(new HttpServlet() { + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + logger.info("[doGet][uri: {}]", req.getRequestURI()); + } + + }); + servletRegistrationBean.setUrlMappings(Collections.singleton("/test/01")); + return servletRegistrationBean; + } + + @Bean + public FilterRegistrationBean testFilter01() { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean<>(new Filter() { + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + logger.info("[doFilter]"); + filterChain.doFilter(servletRequest, servletResponse); + } + + }); + filterRegistrationBean.setUrlPatterns(Collections.singleton("/test/*")); + return filterRegistrationBean; + } + + @Bean + public ServletListenerRegistrationBean testListener01() { + return new ServletListenerRegistrationBean<>(new ServletContextListener() { + + @Override + public void contextInitialized(ServletContextEvent sce) { + logger.info("[contextInitialized]"); + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + + } + + }); + } + } diff --git a/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/core/servlet/TestFilter02.java b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/core/servlet/TestFilter02.java new file mode 100644 index 00000000..c91efdc4 --- /dev/null +++ b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/core/servlet/TestFilter02.java @@ -0,0 +1,21 @@ +package cn.iocoder.springboot.lab23.springmvc.core.servlet; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import java.io.IOException; + +@WebFilter("/test/*") +public class TestFilter02 implements Filter { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + logger.info("[doFilter]"); + filterChain.doFilter(servletRequest, servletResponse); + } + +} diff --git a/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/core/servlet/TestServlet02.java b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/core/servlet/TestServlet02.java new file mode 100644 index 00000000..a9712bd8 --- /dev/null +++ b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/core/servlet/TestServlet02.java @@ -0,0 +1,23 @@ +package cn.iocoder.springboot.lab23.springmvc.core.servlet; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet(urlPatterns = "/test/02") +public class TestServlet02 extends HttpServlet { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + logger.info("[doGet][uri: {}]", req.getRequestURI()); + } + +} diff --git a/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/core/servlet/TestServletContextListener02.java b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/core/servlet/TestServletContextListener02.java new file mode 100644 index 00000000..b4471c6d --- /dev/null +++ b/lab-23/lab-springmvc-23-02/src/main/java/cn/iocoder/springboot/lab23/springmvc/core/servlet/TestServletContextListener02.java @@ -0,0 +1,24 @@ +package cn.iocoder.springboot.lab23.springmvc.core.servlet; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; +import javax.servlet.annotation.WebListener; + +@WebListener +public class TestServletContextListener02 implements ServletContextListener { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Override + public void contextInitialized(ServletContextEvent sce) { + logger.info("[contextInitialized]"); + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + + } +}