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>
分享到:
相关推荐
Spring Mvc AOP通过注解方式拦截controller等实现日志管理
springaop拦截controller日志
做一个简单的spring请求过滤,session存在显示,不存在自动跳转指定页面.
Spring MVC AOP通过自定义注解方式拦截Controller等实现日志管理, springMVC里做添加AOP拦截,用于捕获异常。
spring拦截器,高级参数绑定,controller返回值
有人问 Sping AOP用AspectJ注解的方式拦截不到SpringMVC的controller方法? 我这里提供了一种解决方法,仅供参考
spring mvc利用aop日志实现对controller层的拦截
Spring MVC AOP通过注解方式拦截Controller等实现日志管理demo版本2
主要介绍了详解利用SpringMVC拦截器控制Controller返回值,通过定义一个StringResult注解,在访问方法的时候返回StringResult中的内容,有兴趣的可以了解一下。
12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. ...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...
背景做项目时碰到 Controller 不能使用 AOP 进行拦截,从网上搜索得知:使用 Spring MVC 启动了两个 context:Applicatio
Spring mvc都做了些什么 Controller为中心完成对系统流程的控制管理 从请求中搜集数据 对传入的参数进行验证 将结果返回给视图 针对不同的视图提供不同的解决方案 针对jsp视图技术提供标签库 拦截器 上传文件
今天小编再次搭建Spring Boot项目的时候遇到访问Controller报404错误,之前都很顺利。到底怎么回事呢?下面小编给大家带来了解决Spring Boot 正常启动后访问Controller提示404问题,感兴趣的朋友一起看看吧
Spring MVC下彻底解决@ResponseBody转义html特殊字符问题,解决包括尖角号(),单引号('),双引号("),按位与(&),反斜杠(\)。
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、 DispatcherServlet调用HandlerAdapter处理器适配器。 5、 ...
在火狐中显示可能会有问题,大家都是程序员,改个参数就好啦 注解包含: 拦截器 , 过滤器 , 序列化 , @After , @AfterReturning , @AfterThrowing , @annotation , @Around , @Aspect , @Autowired , @Bean , @Before ,...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能...附录B 在Spring中开发Web Service
代码生成:根据表名生成bean、controller、dao、Mapper.xml、列表页、搜索、分页、新增页、修改页 job集群:创建job、取消job、查询job、下拉搜索spring bean 数据源监控:druid 接口swagger文档 日志查询 邮件...