zoukankan      html  css  js  c++  java
  • 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");
        }
    }
    
    
  • 相关阅读:
    Solr4.8.0源码分析(27)之ImplicitDocRouter和CompositeIdRouter
    Solr4.8.0源码分析(26)之Recovery失败造成的宕机原因分析
    Solr4.8.0源码分析(25)之SolrCloud的Split流程
    Solr4.8.0源码分析(24)之SolrCloud的Recovery策略(五)
    搞Solr这一年(本人QQ 282335345 群412268049 欢迎大家一起学习Solr 非诚勿扰)
    Solr4.8.0源码分析(23)之SolrCloud的Recovery策略(四)
    Solr4.8.0源码分析(22)之SolrCloud的Recovery策略(三)
    Solr4.8.0源码分析(21)之SolrCloud的Recovery策略(二)
    Solr4.8.0源码分析(20)之SolrCloud的Recovery策略(一)
    比较值的周期变化
  • 原文地址:https://www.cnblogs.com/lilihai/p/10177660.html
Copyright © 2011-2022 走看看