Struts2 拦截器对例外Action的配置问题
1、一个应用管理系统中,对于Session过期的验证是否应该用拦截器实现?为什么不用过滤器?2、本人添加了一个拦截器,Struts.xml配置文件的内容如下:<inter...
1、一个应用管理系统中,对于Session过期的验证是否应该用拦截器实现?为什么不用过滤器?
2、本人添加了一个拦截器,Struts.xml配置文件的内容如下:
<interceptors>
<!-- Session过期验证拦截器 -->
<interceptor name="logininterceptor"
class="com.yzxt.login.action.LoginInterceptor">
</interceptor>
<!-- 配置拦截器栈 -->
<interceptor-stack name="myStack">
<interceptor-ref name="logininterceptor">
<param name="excludeMethods">execute</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 重新设置默认拦截器 -->
<default-interceptor-ref name="myStack"></default-interceptor-ref>
其中,<param name="excludeMethods">execute</param>是为了防止Action名称为login下的execute方法进入过滤器设置的,因为该方法的作用是登录时实现验证码,所以在登录前不能进行Session过期过滤;但是结果是:验证码可以正常显示,登陆到系统中后直接报错,未找到Login这个Action对应的类,求教是什么原因?请问过滤器对个别Action设置例外的配置应该怎么写?本人新手,虚心求教、、、、谢谢! 展开
2、本人添加了一个拦截器,Struts.xml配置文件的内容如下:
<interceptors>
<!-- Session过期验证拦截器 -->
<interceptor name="logininterceptor"
class="com.yzxt.login.action.LoginInterceptor">
</interceptor>
<!-- 配置拦截器栈 -->
<interceptor-stack name="myStack">
<interceptor-ref name="logininterceptor">
<param name="excludeMethods">execute</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 重新设置默认拦截器 -->
<default-interceptor-ref name="myStack"></default-interceptor-ref>
其中,<param name="excludeMethods">execute</param>是为了防止Action名称为login下的execute方法进入过滤器设置的,因为该方法的作用是登录时实现验证码,所以在登录前不能进行Session过期过滤;但是结果是:验证码可以正常显示,登陆到系统中后直接报错,未找到Login这个Action对应的类,求教是什么原因?请问过滤器对个别Action设置例外的配置应该怎么写?本人新手,虚心求教、、、、谢谢! 展开
2013-10-30
展开全部
你写的的拦截器应该没有写错,那你对不是execute的方法做了怎样的处理?这应该是你登入不进去的原因才对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
展开全部
首先第一个问题:判断session过期不用用拦截器,可以用监听器,我记得有一个是HttpSessionBindingListener,实现这个接口,重写里面的方法就行,类似的接口还有很多,你可以研究下监听器,
第二个问题:你声明了拦截器栈,应该把不需要这个拦截器的action排除在外,方法是在这个action中在声明一下默认的拦截器就是struts-default,这样这个action就不会被你声明的拦截器栈拦截,只继承默认拦截器
第二个问题:你声明了拦截器栈,应该把不需要这个拦截器的action排除在外,方法是在这个action中在声明一下默认的拦截器就是struts-default,这样这个action就不会被你声明的拦截器栈拦截,只继承默认拦截器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询