struts2过滤url问题

netsgo 2010-10-21 05:34:22
struts2配置文件中有一个“struts.action.extension”属性可以过滤url请求,但这个只能过滤文件扩展名。
有没有控制整个url地址的方法,比如某个请求“http://....../image01/a001.jpg”,过滤包含“/image01/”的地址.
注意:前提是不使用自定义的过滤器,即不在web.xml单配filter(这个我会),我就是想完全使用struts2的过滤器来预处理url请求,比如某些路径下的资源文件访问权限控制等等。
...全文
541 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
netsgo 2010-10-28
换句话说,如果某个url申请的是静态资源,比如一幅图片。
我在拦截器里拦截住后,有些我想自己处理,动态生成图片(比如从数据库中取出图片)。
有些仍回给struts2处理,让struts2或tomcat去处理静态图片。但这时候我怎么仍回给struts2?
因为拦截器必须要走到action。
回复
netsgo 2010-10-22
有人知道怎么做吗?
回复
netsgo 2010-10-21
楼上的,已经说了,不使用自定义的filter,仅使用struts2的拦截器。
回复
qqzhuyuehe 2010-10-21
这个在web.xml文件中一定要把自定义filter的配置放到struts2的那个配置的前面
一定注意了……
一定注意了……
一定注意了……
一定注意了……
回复
yiweifff 2010-10-21
我也遇到过这个问题
回复
bjyuling 2010-10-21
顶。。。关注
回复
netsgo 2010-10-21
再次声明:所有处理必须都是先经过“org.apache.struts2.dispatcher.FilterDispatcher”。不能使用自定义filter。
回复
netsgo 2010-10-21
楼上朋友,我的意思是先用struts2的默认拦截器获取所有请求(就是你写的配置方法,这个我懂),然后在自定义的拦截器中预处理所有的请求,包括html、jpg、avi等等文件。如果不修改“struts.action.extension”,struts2默认只会拦截action结尾的请求,现在我想在拦截器里捕获所有的请求进行预处理。但是“struts.action.extension”只能配置结尾的请求,不能匹配中间的请求,或者说自定义匹配方式的请求。
其实我的目的就是想在自定义拦截器(注意不是自定义的filter,必须要先经过org.apache.struts2.dispatcher.FilterDispatcher处理)中拦截所有请求,需要自己处理的自己处理,不需要的再扔给“org.apache.struts2.dispatcher.FilterDispatcher”处理。
比如:我的网站有些图片是动态生成的,有些是静态的,根据请求地址判断如果是静态的则直接扔给struts2处理。动态的图片需要通过自定的程序去处理,所以我必须要拦截这些图片的请求地址。
回复
wgzhong 2010-10-21
struts.action.extension的意思是访问action的方式,而不是原来访问"*.do"的方式,这个配置跟过滤的url没关系,
web.xml里面配置Struts的时候需要制定过滤的url,如
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-21 05:34
社区公告
暂无公告