Spring Boot - Web 应用开发 - Servlet, Filter, Listener
2018-03-17 00:07
916 查看
Web 开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet, Filter, Listener 等
(1) 方法一:通过注册
注册 Bean
(2) 方法二:通过实现
(3) 方法三:在
1. 在 Spring Boot 中的三种实现方式
(1) 方法一:通过注册ServletRegistrationBean
、FilterRegistrationBean
和ServletListenerRegistrationBean
获得控制
public class CustomerServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("Servlet get method"); doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("Servlet post method"); resp.getWriter().write("hello world"); } }
public class CustomFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("init filter"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("do filter"); chain.doFilter(request, response); } @Override public void destroy() { System.out.println("destroy filter"); } }
public class CustomListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("contextInitialized"); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("contextDestroyed"); } }
注册 Bean
@Bean public ServletRegistrationBean servletRegistrationBean() { return new ServletRegistrationBean(new CustomerServlet(), "/oktfolio"); } @Bean public FilterRegistrationBean filterRegistrationBean() { return new FilterRegistrationBean(new CustomFilter()/*, servletRegistrationBean()*/); } @Bean public ServletListenerRegistrationBean<CustomListener> servletListenerRegistrationBean() { return new ServletListenerRegistrationBean<CustomListener>(new CustomListener()); }
(2) 方法二:通过实现ServletContextInitializer
接口直接注册
@Override public void onStartup(ServletContext servletContext) throws ServletException { servletContext.addServlet("customServlet", new CustomerServlet()).addMapping("/oktfolio"); servletContext.addFilter("customFilter", new CustomFilter()).addMappingForServletNames(EnumSet.of (DispatcherType.REQUEST), true, "customServlet"); servletContext.addListener(new CustomListener()); }
(3) 方法三:在SpringBootApplication
上使用@ServletComponentScan
注解后,直接通过WebServlet``@WebFilter``@WebListener
注解自动注册
相关文章推荐
- SpringBoot中Servlet&Listener&Filter的应用
- SpringBoot | 第十七章:web应用开发之文件上传
- spring boot(18)-servlet、filter、listener
- Spring Boot: 开发web 应用 - 03 Spring Framework 回顾
- spring boot(18)-servlet、filter、listener
- springboot 2.0.0.M7 之 Servlet Listener Filter
- Spring Boot - Web 应用开发 - CORS
- Spring Boot基础教程8-web应用开发-模板引擎jsp
- React.js 集成 Kotlin Spring Boot 开发 Web 应用实例详解
- SpringBoot初始教程之Servlet、Filter、Listener配置(七)
- Spring Boot中Servlet&Filter&Listener&Interceptor的使用
- SpringBoot初始教程之Servlet、Filter、Listener配置(七)
- Spring Boot - Web 应用开发 - 文件上传
- springboot系列教程(九)——Servlet、Filter、Listener
- SpringBoot学习教程 - 03 - 配置Servlet、Filter、Listener
- springboot 使用Servlet,Filter,Listener的方法
- spring-boot如何定义一个servlet,filter,listener
- springboot注册servlet,Filter,Listener
- 18.玩转Spring Boot 注册Servlet、Filter、Listener
- SpringBoot | 第十八章:web应用开发之WebJars使用