社区
Web 开发
帖子详情
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请求,比如某些路径下的资源文件访问权限控制等等。
...全文
638
9
打赏
收藏
struts2过滤url问题
struts2配置文件中有一个“struts.action.extension”属性可以过滤url请求,但这个只能过滤文件扩展名。 有没有控制整个url地址的方法,比如某个请求“http://....../image01/a001.jpg”,过滤包含“/image01/”的地址. 注意:前提是不使用自定义的过滤器,即不在web.xml单配filter(这个我会),我就是想完全使用struts2的过滤器来预处理url请求,比如某些路径下的资源文件访问权限控制等等。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
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>
websocket与
struts2
冲突
需要在一个老项目中使用websocket。 做了一个websocket的小例子,没有
问题
。 当把这个例子整合到
struts2
项目里面的时候,就访问不到这个websocket了。是因为
struts2
的
过滤
器把所有的请求都拦截了,导致WebSock无法处理来至/websocket的请求。解决办法:在struts的配置文件中使用excludePattern属性
过滤
掉不处理的
url
。 websock
Struts2
与Websocket配置
Url
Pattern冲突
问题
在用
struts2
进行文件上传想通过websocket对文件上传进度进行监控,结果遇到客户端无法连接websocket
问题
。
Struts2
无法访问直接通过
URL
访问jsp文件
Struts2
无法访问直接通过
URL
访问jsp文件
struts2
和servlet的共存交互
问题
一般在项目中,如果使用到了
struts2
框架,可能就会很少再去单独使用Servlet了,但是不排除有些时候需要单独的Servlet与
struts2
同时使用,这时候有些人就会遇到Servlet与
Struts2
共存交互的
问题
了。 其实
问题
出在这里:
struts2
org.apache.
struts2
.dispatcher.ng.filter.StrutsPrepareAndExecut
struts2
为什么filter不能
过滤
.action的请求
最近做项目,碰到一个
问题
,需要弄个
过滤
器或者是拦截器之类的功能。以我暂时的能力只能把拦截器配置在struts.xml中,为了不改变当前Struts.xml的内容, 就打算用
过滤
器filter,其实很简单,不过也是巧。先在web.xml中配置了
过滤
器 pppfilter com/fs.filter.LFilter pppfilter *.actio
Web 开发
81,108
社区成员
341,721
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章