基于SpringBoot,SSM的Filter,Servlet,Listener,Interceptor的实现

匿名 (未验证) 提交于 2019-12-03 00:19:01

关于Servlet Listener 和Filter 有两种注册方式:



PS:本人的Spring版本是5.x 非4.x

注意要在启动类上加上@ServletComponentScan注解 不然Servlet,Listener,Filter都不会启作用


  1. @WebServlet(name="servletTest1",urlPatterns="/servlet/test"
  2. publicclassextends
  3. privatestaticfinallong
  4. @Override
  5. protectedvoidthrows
  6. @Override
  7. protectedvoidthrows


  1. @WebListener
  2. publicclassimplements
  3. @Override
  4. publicvoid
  5. "dddddd"
  6. @Override
  7. publicvoid

Filter:

  1. @WebFilter(urlPatterns="/annotation/test1"
  2. publicclassimplements
  3. @Override
  4. publicvoidthrows
  5. @Override
  6. publicvoid
  7. throws
  8. @Override
  9. publicvoid

Interceptor:



  1. publicclassimplements
  2. @Override
  3. publicbooleanthrows
  4. "在controller之前执行,只有这个返回true,postHandler才会执行"
  5. returnsuper
  6. @Override
  7. publicvoid
  8. throws
  9. "controller之后,在渲染页面之前执行"
  10. @Override
  11. publicvoid
  12. throws
  13. "渲染页面之后执行"
  14. @Configuration
  15. publicclassimplements
  16. @Override
  17. publicvoid
  18. new"/interceptor/*"

我的版本是Spring5.x WebMvcConfigurer 提供了默认的接口的实现方式,所以只需要implements即可,5.x以下的版本需要extends WebMvcConfigurerAdapter 即可

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------第二种形式:基于Java Config

Servlet: Servlet类的写法:只需要继承HttpServlet即可


  1. @Bean
  2. public
  3. new
  4. new
  5. "/servlet/test2"
  6. return
  7. @Bean
  8. public
  9. new
  10. new
  11. "/servlet/test3"
  12. return

Filter:实现了Filter接口即可,Filter之间的执行顺序通过order来实现,order的值越低越先执行

  1. @Bean
  2. public
  3. new
  4. new
  5. "/filter/test/*"
  6. 1
  7. return
  8. @Bean
  9. public
  10. new
  11. new
  12. "/filter/test/*"
  13. 2
  14. return

Listener: 根据需求实现不同的listener接口即可

  1. @Bean
  2. public
  3. new
  4. new
  5. return

Interceptor:与上面写的那种Interceptor相同

-------------------------------------

PS:因为本人搭建SSM项目更喜欢于采用JavaConfig的形式,怕麻烦,哈哈(不不不,该说SSM项目搭建有点烦),所以此处直接随意新建了个web.xml来代替

Servlet:

  1. class>com.test.servlet.ServletJavaConfigTest3</servlet-class

Listener:


  1. class>com.test.listener.ListenerTest1</listener-class

Filter:

  1. class>com.test.filter.AnnotationFilterTest1</filter-class

Interceptor是特殊的存在,他是基于SpringMVC的,所以要在Spring的配置文件中配置,但是本人更喜欢JavaConfig的形式,所以更喜欢:

  1. @Configuration
  2. publicclassimplements
  3. @Override
  4. publicvoid
  5. new"/interceptor/*"
  6. new"/interceptor/33"

而非: (随个人喜好!!!!!!!!!!!!!!!!!!!!!!!!!)

  1. "/admin"
  2. class="com.test.blog.Interceptor.SecurityInterceptor"
  3. "/admin/**"
  4. class="com.test.blog.Interceptor.SecurityInterceptor"
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!