Spring Boot Web应用开发 Servlets、Filters、listeners
2017-01-25 21:13
399 查看
Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet、 Filter、Listener等等 二.在spring boot中的三种实现方式 方法一:通过注册ServletRegistrationBean、 FilterRegistrationBean 和 ServletListenerRegistrationBean 获得控制 /** * 自定义servlet * * @author wujing */public class CustomServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("servlet get method"); doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("servlet post method"); response.getWriter().write("hello world"); } } /** * 自定义filter * * @author wujing */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"); } } /** * 自定义listener * * @author wujing */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 CustomServlet(), "/roncoo"); } @Bean public FilterRegistrationBean filterRegistrationBean() { return new FilterRegistrationBean(new CustomFilter(), servletRegistrationBean()); } @Bean public ServletListenerRegistrationBean<CustomListener> servletListenerRegistrationBean() { return new ServletListenerRegistrationBean<CustomListener>(new CustomListener()); } 方法二:通过实现 ServletContextInitializer 接口直接注册 implements ServletContextInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { servletContext.addServlet("customServlet", newCustomServlet()).addMapping("/roncoo"); servletContext.addFilter("customFilter", new CustomFilter()) .addMappingForServletNames(EnumSet.of(DispatcherType.REQUEST), true,"customServlet"); servletContext.addListener(new CustomListener()); } 方法三:在 SpringBootApplication 上使用@ServletComponentScan 注解后,直接通过@WebServlet、@WebFilter、@WebListener 注解自动注册
转自:http://www.roncoo.com/article/detail/125499
转自:http://www.roncoo.com/article/detail/125499
相关文章推荐
- springBoot(8):web开发-Servlets, Filters, listeners
- 【Spring Boot】web应用开发-Servlets, Filters, listeners
- Spring Boot基础教程10-web应用开发-Servlets, Filters, listeners
- (十)SpringBoot之web 应用开发-Servlets, Filters, listeners
- Spring Boot Web应用开发 Servlets、Filters、listeners
- (十)SpringBoot之web 应用开发-Servlets, Filters, listeners
- Spring Boot之Servlets, Filters, listeners (五)
- spring boot之Servlets, Filters,listeners
- Servlets/JSP开发技术问答
- Servlets/JSP开发技术问答
- Servlets提供了一个CGI开发的简单替换方法
- Android开发之旅: Intents和Intent Filters(实例部分)
- Android开发 之 Intents and Intent Filters(二)
- Quartz.net官方开发指南 第七课 : TriggerListeners和JobListeners
- Android开发之旅: Intents和Intent Filters(实例部分) 推荐
- Quartz.net官方开发指南 第七课 : TriggerListeners和JobListeners
- Android 开发文档 程序基础——Intent filters
- Android开发之旅: Intents和Intent Filters(理论部分) 推荐
- Servlets/JSP开发技术问答,实用技术
- Quartz.net官方开发指南 第八课:SchedulerListeners