zoukankan      html  css  js  c++  java
  • 基于注解的SpringMVC添加其他的Servlet、Filter以及Listener

    我们可以在AbstractAnnotationConfigDispatcherServletInitializer的实现类中重写onStartup(ServletContext servletContext)方法添加其他的Servlet、Filter以及Listener

     1 public class SpringWebAppInit extends AbstractAnnotationConfigDispatcherServletInitializer {
     2     //Spring容器
     3     @Override
     4     protected Class<?>[] getRootConfigClasses() {
     5         return new Class[]{RootConfig.class};
     6     }
     7 
     8     //SpringMVC容器
     9     @Override
    10     protected Class<?>[] getServletConfigClasses() {
    11         return new Class[]{WebConfig.class};
    12     }
    13 
    14     //DispatcherServlet映射关系
    15     @Override
    16     protected String[] getServletMappings() {
    17         return new String[]{"/"};
    18     }
    19     
    20     @Override
    21     public void onStartup(ServletContext servletContext) throws ServletException {
    22         super.onStartup(servletContext);
    23         ServletRegistration.Dynamic userServlet = servletContext.addServlet("UserServlet", UserServlet.class);
    24         userServlet.addMapping("/user");
    25     }
    26 }

    也可以写一个WebApplicationInitializer接口的实现类,通过重写onStartup(ServletContext servletContext)方法添加其他的Servlet、Filter以及Listener

     1 /**
     2  * 实现WebApplicationInitializer接口注册Servlet,也可以用来注册DispatcherServlet
     3  */
     4 public class MyServletInit implements WebApplicationInitializer {
     5     @Override
     6     public void onStartup(ServletContext servletContext) throws ServletException {
     7         ServletRegistration.Dynamic userServlet = servletContext.addServlet("UserServlet", UserServlet.class);
     8         userServlet.addMapping("/user");
     9         userServlet.setLoadOnStartup(0);
    10     }
    11 }

    如果你只是注册Filter,并且该Filter只会映射到DispatcherServlet上的话,那么只需要重写AbstractAnnotationConfigDispatcherServletInitializer的getServletFilters()方法。在这个方法中没有必要声明它的映射路径,因为getServletFilters()方法返回的所有Filter都会映射到DispatcherServlet上

    1     @Override
    2     protected Filter[] getServletFilters() {
    3         return new Filter[]{new MyFilter()};
    4     }
  • 相关阅读:
    Tcp连接和断开
    centos7服务器监控之nmon
    Jmeter之命令行生成HTML报告
    Centos7安装配置----1配置网络
    Wireshark抓包笔录--之指定IP地址筛选捕获结果
    关于如何刷新清除某个特定网站的缓存---基于Chrome浏览器
    关于如何清除某个特定网站的缓存---基于Chrome浏览器
    Linux 查看端口机服务
    XSS学习笔记
    安全测试学习笔记
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10260648.html
Copyright © 2011-2022 走看看