一个spring拦截action方法的问题,大虾,HELP

hwh_chizai 2008-08-21 04:35:18
我想做一个SESSION验证,本来是想做个过滤,但是只是部分ACTION才用验证SESSION,所以所有SPRING的拦截。居然拦截不到
我晕,帮忙分析下好不

<!--session验证拦截-->

<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>/searchverify</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>advisor</value>
</list>
</property>
</bean>


<bean id="advisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">

<property name="advice">

<ref bean="sessionInterceptor"/>

</property>

<property name="patterns">

<list>
<value>.*list</value>
</list>
</property>
</bean>

<bean id="sessionInterceptor" class="greate.ma3go.Interceptor.SessionInterceptor"/>

<bean name="/searchverify" class="greate.ma3go.core.web.action.searchverifyAction" />

就是拦截searchverifyAction里面的list方法

下面是那个拦截器

package greate.ma3go.Interceptor;

import greate.ma3go.core.utils.Constants;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.*;

public class SessionInterceptor implements MethodInterceptor {

protected transient Log logger = LogFactory.getLog(getClass());

public Object invoke(MethodInvocation invocation) throws Throwable

{
logger.info("=======开始拦截=========");
HttpServletRequest request = null;
ActionMapping mapping = null;
Object[] args = invocation.getArguments();
for (int i = 0 ; i < args.length ; i++ )
{
if (args[i] instanceof HttpServletRequest) request = (HttpServletRequest)args[i];
if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];
}
if ( request.getSession().getAttribute(Constants.CURRENT_Personal) != null)
{
return invocation.proceed();
}
else
{
return mapping.findForward("sessionError");
}
}


}

访问/searchverify.do?method=list居然拦截器没起左右哦,
大家研究研究一下




...全文
231 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwh_chizai 2008-08-27
  • 打赏
  • 举报
回复
我知道可以用struts的拦截器但是只是部分ACTION才用验证SESSION,当然实现的方法很多,我也知道怎么搞,就想知道为什么spring拦截DISPATCH的ACTION不行
cjs_jackson 2008-08-22
  • 打赏
  • 举报
回复
spring拦截action??干嘛不用struts的拦截器啊?
dragon2k 2008-08-22
  • 打赏
  • 举报
回复
Advised ad=(Advised)context.get("/searchverify");
Advisor[] advisors = ad.getAdvisors();
list 一下,看看有没有weave进去
dragon2k 2008-08-22
  • 打赏
  • 举报
回复
spring 2.5 ?

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧