• SpringBoot中注册Servlet三大组件


    SpringBoot中默认内置了Servlet容器,Tomcat。SpringBoot默认是以jar包的方式启动内置的Servlet容器,没有web.xml文件。所以只能通过自定义servlet配置。使用ServletRegistrationBean、FilterRegistrationBean、ServletListenerRegistrationBean来实现servle的三大组件。

    CustomServletConfig

    @Configuration
    public class CustomServletConfig {
        //注册servlet
        @Bean
        public ServletRegistrationBean myServlet()
        {
            ServletRegistrationBean<Myservlet> registrationBean = new ServletRegistrationBean<>();
            registrationBean.setServlet(new Myservlet());
            registrationBean.addUrlMappings("/myServlet");
            return  registrationBean;
    
        }
        //注册Filter
    
        @Bean
        public FilterRegistrationBean myFilter()
        {
            System.out.println("CustomServletConfig.myFilter");
            FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<>();
            registrationBean.setFilter(new MyFilter());
            registrationBean.addUrlPatterns("/showLogin","/test1");
            return registrationBean;
        }
    
        @Bean
        public ServletListenerRegistrationBean myListener()
        {
            ServletListenerRegistrationBean<MyListener> servletListenerRegistrationBean = new ServletListenerRegistrationBean<>();
    
            servletListenerRegistrationBean.setListener(new MyListener());
            return  servletListenerRegistrationBean;
        }
    }
    
    

    Myservlet

    public class Myservlet extends HttpServlet {
    
        @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            System.out.println("Myservlet.doGet");
    
            doPost(req,resp);
        }
    
        @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            System.out.println("Myservlet.doPost");
    
        }
    }
    
    

    MyListener

    public class MyListener  implements ServletContextListener {
        @Override
        public void contextInitialized(ServletContextEvent sce) {
    
            System.out.println("MyListener.contextInitialized");
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
    
            System.out.println("MyListener.contextDestroyed");
        }
    }
    
    

    MyFilter

    public class MyFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
                throws IOException, ServletException {
            System.out.println("MyFilter.doFilter");
            filterChain.doFilter(servletRequest,servletResponse);
    
        }
    
        @Override
        public void destroy() {
    
        }
    }
    
    

    MyListener

    public class MyListener  implements ServletContextListener {
        @Override
        public void contextInitialized(ServletContextEvent sce) {
    
            System.out.println("MyListener.contextInitialized");
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
    
            System.out.println("MyListener.contextDestroyed");
        }
    }
    
    
  • 相关阅读:
    D
    NOI 1.7编程基础之字符串(35题)
    HYSBZ 2145 悄悄话
    POJ 2406 Power Strings
    POJ 3461 Oulipo[附KMP算法详细流程讲解]
    POJ 3974 Palindrome
    POJ 1002 487-3279
    POJ 1182 食物链
    POJ 2524 Ubiquitous Religions
    HDU 1251 统计难题
  • 原文地址:https://www.cnblogs.com/lilihai/p/10177660.html
Copyright © 2020-2023  润新知