SpringBoot为整合过滤器、监听器、Servlet,定义了3个基本的组件,分别使用@WebServlet、@WebFilter、@WebListener进行标记
-
项目入口类添加@ServletComponentScan实现对Filter、Listener、Servlet的扫描
@SpringBootApplication @ServletComponentScan public class Demo01Application { public static void main(String[] args) { SpringApplication.run(Demo01Application.class, args); } }
-
编写过滤器、监听器、Servlet
-
过滤器
/** * @author wsyjlly * @create 2019.06.14 - 18:02 **/ @WebFilter("/upload") public class FileUploadFilter implements Filter { private Logger logger = LoggerFactory.getLogger(getClass()); @Override public void init(FilterConfig filterConfig) throws ServletException { logger.debug("FileUploadFilter...init..."); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }
-
监听器
/** * @author wsyjlly * @create 2019.06.14 - 18:27 **/ @WebListener public class MyServletRequestListener implements ServletRequestListener { private Logger logger = LoggerFactory.getLogger(getClass()); @Override public void requestInitialized(ServletRequestEvent sre) { logger.debug("MyServletRequestListener...init..."); } @Override public void requestDestroyed(ServletRequestEvent sre) { logger.debug("MyServletRequestListener...destroyed..."); } }
-
Servlet
/** * @author wsyjlly * @create 2019.06.14 - 18:32 **/ @WebServlet(urlPatterns = "/servlet") public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("servlet...in"); super.doGet(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
-