sturts2 关于filter 比如我有100个action,但我唯独不拦截登录的action.求在url-pattern里该怎么配?之拦截剩下的action先别提其他方式,就这个方式能不能实现?求解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 url-pattern特别傻,只支持后缀/*和前缀*.action两种功能。想实现复杂匹配的,都要先用filter拦截所有请求,然后在代码里自己匹配。 s2的拦截器struts2拦截器只对action拦截,而不拦截jsp.仅对某个方法做拦截不拦截Urlfilter是针对url的拦截 1. <action name="manage" class="com.ManageAction"> 2. <interceptor-ref name="log"> 3. <param name="name">日志拦截</param> 4. <!-- 设置需要拦截的方法,指定多个方法以逗号隔开 --> 5. 6. <param name="includeMethods">execute,add</param> 7. <!-- 设置不需要拦截的方法,execute在includeMethods中同时存在,execute会被拦截 --> 8. <param name="excludeMethods">search,execute</param> 9. </interceptor-ref> 10. <result name="succee">/welcome.jsp</result> 11. </action> 我表达问题,是配置在web.xml里面那个filter. 意思说就是光用url-pattern不能完成了. 你的登录别用struts做不就行了吗,自己定义个servlet做,... public class AuthorityInterceptor extends AbstractInterceptor { ActionContext ac = invocation.getInvocationContext(); String name = ac.getActionInvocation().getProxy().getActionName(); if(name.equals("login")){ return invocation.invoke(); } Sysout.out.print("没有权限"); return null; } s2的拦截器struts2拦截器只对action拦截,而不拦截jsp.仅对某个方法做拦截不拦截Urlfilter是针对url的拦截看不懂吗?还是我没说清除 我自己也有几个另外的方法,但是我只想讨论这个方案,因为项目接手时已经做了大半了,改不了结构.所以才问问这个情况的解决方案我就是要拦截url,防止别人直接输入地址来绕过登录.看看来没什么好办法 因为所有跳转都是内部跳转,我能确保一般用户无法获得jsp的url所以我才直接说成action的(url).ok 有两种方案解决1、单独弄一个Action类放置login2、可以对action进行过滤的 3、Interceptor里可以按照8#同志的做法做的不过要通过代码的方式而已直接改配置不是更好的么还有啊你为什么只用一个Action呢这样不方便对不同的权限进行拦截啊比如管理员和普通员工肯定不是同一种权限的吧所以你最好分开写多个拦截器总比你这样写100个action要好 Struts2和Hibernate整合,错误提示java.lang.NoSuchMethodError 关于spring的配置文件及事物回滚问题求教 如何在规定时间执行任务....急 有像svcutil.exe的根据svcJava生成代码的吗? url访问jsf bean java web项目导入问题 大神,求助!很奇怪的数组越界,Debug也没找出越界的原因 如何使用JAVA来调用C#写的dll文件 模糊中 客户端调用cmp的entitybean时出错! txt 导出时数据时,数据不一致 请问高手什么问题(急) hibernate annotation onetoone问题
仅对某个方法做拦截不拦截Urlfilter是针对url的拦截
2. <interceptor-ref name="log">
3. <param name="name">日志拦截</param>
4. <!-- 设置需要拦截的方法,指定多个方法以逗号隔开 -->
5.
6. <param name="includeMethods">execute,add</param>
7. <!-- 设置不需要拦截的方法,execute在includeMethods中同时存在,execute会被拦截 -->
8. <param name="excludeMethods">search,execute</param>
9. </interceptor-ref>
10. <result name="succee">/welcome.jsp</result>
11. </action>
public class AuthorityInterceptor extends AbstractInterceptor {
ActionContext ac = invocation.getInvocationContext();
String name = ac.getActionInvocation().getProxy().getActionName();
if(name.equals("login")){
return invocation.invoke();
}
Sysout.out.print("没有权限");
return null;
}
s2的拦截器struts2拦截器只对action拦截,而不拦截jsp.
仅对某个方法做拦截不拦截Urlfilter是针对url的拦截
看不懂吗?还是我没说清除
但是我只想讨论这个方案,因为项目接手时已经做了大半了,改不了结构.所以才问问这个情况的解决方案我就是要拦截url,防止别人直接输入地址来绕过登录.看看来没什么好办法
1、单独弄一个Action类放置login
2、可以对action进行过滤的
不过要通过代码的方式而已直接改配置不是更好的么还有啊
你为什么只用一个Action呢
这样不方便对不同的权限进行拦截啊
比如管理员和普通员工肯定不是同一种权限的吧
所以你最好分开
写多个拦截器
总比你这样写100个action要好