对spring中的Controller做拦截

spring中对自己的Controller有专门的拦截器,如果你用spring的AOP进行拦截的话,是不能拦截的。下面是利用spring的HandlerInterceptorAdapter类来做的拦截。
1.拦截器的代码:
public class BlockControllAdvice extends HandlerInterceptorAdapter  {
private static final Logger log = Logger.getLogger(BlockControllAdvice.class);

/** 权限验证方法,
*
* @param request,response,handler
* @return boolen
* @auther kaungyujian
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

log.debug("into controller advice........");

MultiActionController maControl = (MultiActionController) handler;
ParameterMethodNameResolver pmrResolver = (ParameterMethodNameResolver) maControl.getMethodNameResolver();
String methodName = pmrResolver.getHandlerMethodName(request);
String className = handler.getClass().getName();
String path = request.getRequestURI(); //获得请求的路径 }
}

2.配置拦截器:
 <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="beforeBlock"/>
</list>
</property>
<property name="mappings">
<props>
<prop key="/test.do">testController</prop>
</props>
</property>
</bean>

<bean id="beforeBlock" class="com.juraglobal.softguard.common.web.action.BlockControllAdvice"/>

3.拦截器如果要中断运行,这里的方法只能抛出异常:
 <bean id="exception" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="com.juraglobal.softguard.common.web.action.RightPassException">noRight</prop>
</props>
</property>
</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值