在过滤器doFilter方法里,怎么取得Spring的bean

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在过滤器doFilter方法里,怎么取得Spring的bean相关的知识,希望对你有一定的参考价值。

参考技术A Filter的init方法中暴露了FilterConfig接口,通过该接口可以获取ServletContext
FilterConfig.getServletContext().
Spring web容器加载完成后,将在ServletContext中存放ApplicationContext,以WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE为储存的Key值,所以,ServletContext.getAttribut(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE)可以获取ApplicationContext本回答被提问者采纳

java 过滤器(自己的理解)

filter继承javax.servlet.*

必须实现doFilter方法   

chain.doFilter(request, response);这句话必须写在doFilter方法内部(以便调用其他的过滤器)

在web.xml配置filter(filter要放在上面)

这里的<url-pattern>  /*  是过滤所有的链接

 

则加载工程运行结果如下:

在加载的时候过滤器就已经给初始化了

此时,我访问工程链接

则显示的结果如下:

过滤器依赖于servlet容器,所以只有在servlet容器销毁时,过滤器的destory销毁方法才被调用

过滤器过滤的是链接地址 url(也可以理解为只有在特定链接的情况下过滤器才会被调用,至于链接就看web.xml里的filter下的url-pattern是什么东西了)

 

以上是关于在过滤器doFilter方法里,怎么取得Spring的bean的主要内容,如果未能解决你的问题,请参考以下文章

不明白Filter过滤器怎么用,大家帮帮我

从 doFilter 方法设置 cookie

servlet里的过滤器filter

Servlet 的 doFilter 方法中的 StringBuffer 或 StringBuilder? [复制]

jsp过滤器

过滤器Filter