SpringMVC如何自定义拦截器 权限控制,事务控制

2025-11-05 09:29:26

1、新建一个实现了HandlerInterceptor接口的java类FirstInterceptor:

SpringMVC如何自定义拦截器 权限控制,事务控制

2、FirstInterceptor接口的实现我们打印每个方法的名字:

package com.gwolf.springmvc.interceptors;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

public class FirstInterceptor implements HandlerInterceptor {

@Override

public boolean preHandle(HttpServletRequest request,

HttpServletResponse response, Object handler) throws Exception {

System.out.println("preHandle--------");

return true;

}

@Override

public void postHandle(HttpServletRequest request,

HttpServletResponse response, Object handler,

ModelAndView modelAndView) throws Exception {

System.out.println("postHandle--------");

}

@Override

public void afterCompletion(HttpServletRequest request,

HttpServletResponse response, Object handler, Exception ex)

throws Exception {

System.out.println("afterCompletion--------");

}

}

SpringMVC如何自定义拦截器 权限控制,事务控制

3、在springmvc的配置文件中声明我们的拦截器:

<mvc:interceptors>

        <bean class="com.gwolf.springmvc.interceptors.FirstInterceptor"></bean>

</mvc:interceptors>

SpringMVC如何自定义拦截器 权限控制,事务控制

4、执行项目中的任意jsp页面,我们会发现我们自定义拦截器的三个方法都执行了。

SpringMVC如何自定义拦截器 权限控制,事务控制

5、preHandle方法是在目标方法执行之前执行的,如果这个方法返回false,后面的拦截器也不会被执行,并且目标方法也不会被执行。只有返回值为true,则继续调用后续的拦截器和目标方法。

SpringMVC如何自定义拦截器 权限控制,事务控制

6、postHandle方法是在目标方法执行之后,渲染页面之前执行调用。

SpringMVC如何自定义拦截器 权限控制,事务控制

7、afterCompletion方法是在渲染视图之后调用的。

SpringMVC如何自定义拦截器 权限控制,事务控制

8、在preHandle方法中可以考虑做权限,日志,事务。

postHandle方法可以对请求域的属性或视图做出修改。

afterCompletion用于释放资源。

SpringMVC如何自定义拦截器 权限控制,事务控制

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢