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>
分享到:
相关推荐
本教程将详细介绍如何利用注解来配置和使用AOP来拦截Controller层的方法,以便记录执行过程中的相关信息,实现日志管理。 一、Spring AOP基础 AOP是Spring框架的核心组件之一,它允许程序员定义“切面”,这些切面...
"springaop拦截controller日志"这个主题旨在讲解如何使用Spring AOP来拦截Controller层的方法调用,并在方法执行前后记录相关日志。 首先,了解Spring AOP的基本概念。AOP是一种编程范式,它允许程序员定义“切面”...
### Spring Controller拦截器配置 #### 一、概述 在Spring框架中,拦截器(Interceptor)是一种重要的机制,用于对Controller的请求进行预处理和后处理。它可以用来实现一系列的功能,如权限验证、日志记录、统一...
本文将详细介绍如何使用AspectJ注解在Spring MVC中实现AOP拦截Controller方法,并提供一个具体的例子。 首先,我们需要了解Spring AOP的基础概念。AOP允许我们定义“切面”,这些切面包含了业务逻辑中横切关注点的...
在本次的“spring MVC(新增拦截器demo)”项目中,我们将重点探讨如何在Spring MVC中添加拦截器来实现对请求的预处理和后处理。 拦截器在Spring MVC中扮演着关键的角色,它们可以用来执行一些全局性的任务,如日志...
本文将深入探讨"类似Spring Controller注解Demo"这一主题,结合提供的标签"源码"和"工具",我们将分析Spring MVC中的Controller注解以及如何通过源码理解和应用它们。 Spring MVC是Spring框架的一部分,它提供了...
Spring MVC中的拦截器是基于AOP(面向切面编程)原理实现的,可以理解为对Controller方法调用的预处理和后处理。下面将详细探讨Spring拦截器的使用以及高级参数绑定和Controller返回值的相关知识。 首先,我们创建...
通过这种方式,我们可以在Spring MVC中利用AOP实现对Controller方法的透明日志管理,不仅记录正常流程,也能捕获和记录异常,提升系统的可维护性和问题排查效率。 在实际项目中,我们可以根据需求进一步定制日志...
在 Spring MVC 中,Controller 是处理用户请求的核心组件,负责接收请求、处理业务逻辑并返回响应。本文将详细介绍 Spring MVC 中 Controller 的配置方式。 一、注解式配置 1.1 @Controller 注解 @Controller 是 ...
为了解决这一问题,可以利用Spring框架中的AOP(Aspect Oriented Programming,面向切面编程)技术来实现。 #### 二、Spring AOP 概述 Spring AOP 是Spring框架提供的一种实现AOP的方法。通过AOP,开发者可以在不...
标题中的“spring配置JSON拦截器VIEW”指的是在Spring框架中设置JSON数据的处理方式,特别是通过拦截器(Interceptor)来优化视图层(View)的响应。在Web开发中,拦截器是一种常用的机制,用于在请求被实际处理之前...
在"Controller项目"中,我们可以通过编写基准测试(如使用JMeter或 Gatling)来具体比较原生Servlet和Spring Controller在处理相同请求时的性能。这有助于了解在特定场景下哪种方式更适合。 总的来说,原生Servlet...
在Spring Boot应用中,Spring AOP(面向切面编程)是一种强大的工具,它允许我们创建横切关注点,如日志记录、权限检查等,这些关注点可以被编织到应用程序的多个点上,而无需侵入核心业务逻辑。在本案例中,我们将...
接下来,描述中提到了"MethodInterceptor",这是Spring AOP中的一种拦截器,用于拦截并修改代理对象的方法调用。不同于HandlerInterceptor,MethodInterceptor是基于代理的AOP,适用于拦截任何由Spring管理的对象,...
Spring MVC的拦截器与Servlet的Filter有所不同,Filter是对所有请求进行拦截,而拦截器则可以更加精确地控制对哪些Controller或特定的处理方法进行拦截。HandlerInterceptorAdapter是Spring MVC提供的一般拦截器...
3. **@Controller**:在Spring MVC中,我们通过在类上添加@Controller注解来标识该类为一个控制器,处理来自客户端的请求。 4. **@RequestMapping**:这个注解用于映射URL到特定的方法,可以指定请求的HTTP方法...
如果你希望在拦截器中处理404错误,你可以在`preHandle`或`postHandle`方法中检查请求路径,如果找不到对应的Controller方法,可以手动设置响应状态码为404并返回自定义的错误信息。 对于500错误,SpringBoot同样...
在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现日志拦截,特别是对于controller层的操作。AOP允许我们定义横切关注点,这些关注点可以是如日志记录、事务管理、权限检查等通用功能,它们在程序...
在Java Web开发中,Servlet和Spring MVC(主要通过Controller)是两种常见的请求处理机制。本文将深入探讨原生Servlet与Spring Controller在性能方面的差异,并基于一个名为"AbTest"的Servlet项目源码进行分析。 ...