导航:首页 > 净水问答 > 过滤器不过滤静态资源

过滤器不过滤静态资源

发布时间:2025-08-18 11:29:08

『壹』 springMvc+shiro做权限管理,页面上的静态资源,样式图片等没有出现,用几种方式过滤试过,还是不行

正常情况是不会出现这样的,shiro对于静态资源的处理,不用特殊配置。

只需要在shiroFilter过滤器filterChainDefinitions项中增加一个静态资源处理规则就可以,例如允许/css/开头的资源匿名访问,只需要这样一句配置就足矣。

/css/** = anon

配置完成后,未登录就可以在浏览器中直接访问css下的资源,新项目用的shiro,简单而又实用的权限框架。

『贰』 spring过滤器和拦截器的区别

(1)过滤器:

依赖于servlet容器,是JavaEE标准,是在请求进入容器之后,还未进入Servlet之前进行预处理,并且在请求结束返回给前端这之间进行后期处理。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码;在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等

关于过滤器的一些用法可以参考我写过的这些文章:

『叁』 struts2 Filterdispatch作用原理

struts2 Filterdispatch是Struts2的主要的Filter,负责四个方面的功能:
(1)执行Actions
(2)清除ActionContext
(3)维护静态内容
(4)清除request生命周期内的XWork的interceptors
另注:该过滤器应该过滤所有的请求URL。一般被设置为/*.
具体:
(1)执行Actions
过滤器通过ActionMapper对象,来判断是否应该被映射到Action.如果mapper对象指示他应该被映射,过滤链将会被终止,
然后Action被调用。这一点非常重要,如果同时使用SiteMesh filter,则SiteMesh filter应该放到该过滤器前,否则
Action的输出将不会被装饰。
(2)清除ActionContext
过滤器为了确保内存溢出,会自动的清除ActionContext。这可能会存在一些问题,在和其它的框架集成时,例如SiteMesh。
ActionContextCleanUp提供了怎么处理这些问题的一些信息。
(3)维护静态内容
过滤器也会维护在Struts2中使用的一些公共的静态的内容,例如Javascript文件,CSS文件等。搜索/struts/*范围内的
请求,然后将/struts/后面的值映射到一些struts的公共包中,也可以在你的类路径中搜索。默认情况下会去查找以下
包:
org.apache.struts2.static
template
这样你只用请求/struts/xhtml/styles.css,XHTML UI主题默认的样式表将会被返回。同样,AJAX UI组件需要的
Javascript文件,也可以在org.apache.struts2.static包中被找到。如果你想加入其它被搜索的包,在web.xml中
设置filter时,通过给"actionPackages"初始参数一个逗号隔开的包列表值来设定。
需注意的是:他会暴露一些比较敏感的信息例如,properites文件中的数据库连接信息。
注:过滤器支持以下初始参数:
config - 被调入的逗号隔开的XML文件列表。
actionPackages - 被actions扫描的逗号隔开的packages列表。
configProviders - 逗号分隔的实现了ConfigurationProvider接口(建造Configuration时被使用)的实现类。
* - 任意的struts常量。
通过重载createDispatcher()方法,可以自定义dispather。

属性列表:
(1)actionMapper:通过注入,提供一个ActionMapper实例。
(2)dispatcher:暴露给子类一个Dispatcher实例。
(3)encoding:存储StrutsConstants.STRUTS_I18N_ENCODING的设置。
(4)filterConfig:通过初始参数,提供一个FilterConfig实例。
(5)lastModifiedCal:在缓存静态content,提供一个格化的日期用于设定头信息。
(6)log:提供一个logging实例。
(7)patchPrefixs:存储静态资源的路径前缀信息。
(8)serveStatic:存储StrutsConstants.STRUTS_SERVE_STATIC_CONTENT的设置。
(9)serveStaticBrowserCache:存储StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE的设置。
方法列表:
(1)(InputStream input, OutputStream output):从input复制数据到output。
(2)createDispatcher(FilterConfig filterConfig):创建默认的dispatcher对象,如果需要的话,子类可以重载此方法,
自定义一个dispatcher对象。
(3)destory():调用dispatcher.cleanup(),依次释放本地线程,销毁dispatcher对象。
(4)doFilter(ServletRequest request, ServeltResponse response, FilterChain chain):处理一个action或处理一个请求
的静态内容。
(5)findInputStream(String name, String packagePrefix):搜索类路径下的静态资源。
(6)findStaticResoruce(String name, HttpServletRequest request, HttpServletResponse response):搜索静态的资源,
直接复制到相应response的头信息中。
(7)getContentType(String name):获取指定资源的contentType。
(8)getFilterConfig():获取FilterConfig实例。
(9)getServletContext():给WebLogic的一些版本提供一个工作区。
(9)init(FilterConfig filterCongfig):创建默认的dispatcher对象和设置静态资源的默认包信息来初始化filter。
(10)parse(String packages):返回一个数组通过解析一个指定逗号分隔的packages列表。
(11)(HttpServletRequest request, HttpServletResponse response):对给定的request
对象进行封装返回一个封装HttpServletRequest对象。例如显示的处理multipart数据。
(12)setMapper(ActionMapper actionMapper)
(13)setEncoding(String val)
(14)setServeStaticContent(String val)
(15)setServeStaticBrowserCache(String val)

『肆』 拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别

一、引言


探讨拦截器(Interceptor)与过滤器(Filter)的执行顺序及区别,以解决用户登陆与权限管理、菜单管理问题。本文将先关注过滤器的使用,而后深入拦截器的特性,并简述各自应用场景。


二、区别


过滤器(Filter)


过滤器通常用于web.xml配置中,主要目的为解决字符编码问题,防止乱码。它在所有请求前执行,用于过滤、处理数据,如字符编码修改、参数过滤等。


拦截器(Interceptor)


拦截器依赖SpringMVC框架,基于Java反射机制实现面向切面编程(AOP)。它对控制器请求进行拦截,可执行前置、后置操作,甚至异常处理,但仅限于控制器请求,不包括静态资源访问。


三、代码示例


展示项目中同时配置过滤器与拦截器的执行流程,包括过滤器与拦截器的具体配置与测试。


四、总结


总结过滤器与拦截器的区别与特性,强调它们在web开发中的不同用途与执行顺序。

阅读全文

与过滤器不过滤静态资源相关的资料

热点内容
反渗透膜用久了 浏览:719
扬子ro60净水机怎么换滤芯 浏览:782
耐300度聚酯树脂 浏览:789
市场最好的纯净水哪个品牌 浏览:699
废水什么意思网络用语 浏览:76
饮水机的温控什么原理 浏览:289
柴油车手油泵上的是什么滤芯 浏览:545
反渗透投加保护剂作用 浏览:381
薯片加工废水如何处理 浏览:273
灭菌锅如何排废水 浏览:840
要获得纯净水常用什么方法 浏览:771
净水器活性炭好还是超滤膜好 浏览:632
饮水机冷热40度水温怎么调 浏览:938
小区污水冷却塔哪里有卖 浏览:566
饮水机下置为什么这么贵 浏览:984
饮水机下面第二格滴水怎么办 浏览:758
污水处理碳源比 浏览:146
污水井的尺寸在图纸哪里有 浏览:703
哪种树脂胶补鞋最好 浏览:262
科雷嘉拆空调滤芯怎么拆 浏览:415