首页 > 其他分享 >Spring拦截器

Spring拦截器

时间:2022-11-28 18:56:49浏览次数:42  
标签:拦截器 Spring request System ModelAndView modelAndView public

自定义拦截器步骤

  1  创建拦截器类实现HandlerInterceptor

    

@Controller
public class TargetController {

    @RequestMapping("/target")
    public ModelAndView show() {
        System.out.println("目标资源执行");
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("name","zl");
        modelAndView.setViewName("index");
        return modelAndView;
    }
}
public class MyInterceptor1 implements HandlerInterceptor{

    //在目标方法执行之前执行
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        System.out.println("preHandle");
        String param = request.getParameter("param");
        if("yes".equals(param)) {
            return true;
        }
        else {
            request.getRequestDispatcher("/error.jsp").forward(request, response);;
            return false;//返回true代表放行
        }
    }

    //在目标方法执行之后,视图对象返回之前执行
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        // TODO Auto-generated method stub
        modelAndView.addObject("name", "zhangsan");
        System.out.println("postHandle");
    }

    //在流程都执行完毕后执行
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        // TODO Auto-generated method stub
        System.out.println("afterCompletion");
    }
    
}

 

  2  配置拦截器

<!-- 配置拦截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <!-- 对哪些资源执行拦截操作 -->
            <mvc:mapping path="/**"/>
            <bean class="com.zl.interceptor.MyInterceptor1"></bean>
        </mvc:interceptor>
        
        <mvc:interceptor>
            <!-- 对哪些资源执行拦截操作 -->
            <mvc:mapping path="/**"/>
            <bean class="com.zl.interceptor.MyInterceptor2"></bean>
        </mvc:interceptor>
    </mvc:interceptors>

 

  3  测试拦截器的拦截效果

 

标签:拦截器,Spring,request,System,ModelAndView,modelAndView,public
From: https://www.cnblogs.com/zlyyds/p/16933040.html

相关文章

  • Spring框架自学之路——AOP
    目录​​目录​​​AOP​​​介绍​​​​AOP底层原理​​​​核心概念​​​基于AspectJ的SpringAOP操作​​​AOP操作准备​​​​XML方式​​​​定义切点​​​​案例......
  • 介绍Spring名称生成策略接口BeanNameGenerator
    众所周知,Spring容器可以简单粗暴的把它理解为一个大大的Map,存储着容器所管理的所有的单实例对象。我们从使用getBean(StringbeanName)方法,根据bean名称就能获得容器内唯一......
  • SpringBoot 自动装配源码解析
    SpringBoot自动装配源码解析step1:SpringApplication.run(ZylSpringBootApplication.class,args);step2:this.refreshContext(context);-->org.springframework.bo......
  • Struts 2 拦截器中得到bean以及读取WEB-INF下的spring的xml文件
    Struts2拦截器中得到bean以及读取WEB-INF下的spring的xml文件1.直接得到beanpublicclassOperaLogInterceptorextendsAbstractInterceptor{privatestaticfinallo......
  • spring mvc环境过滤器请求响应编码和maven编译等设置(二)
    springmvc环境通过过滤器设置请求响应字符编码1.web.xml配置过滤器进行字符编码设置<filter><filter-name>characterEncodingFilter</filter-name><filt......
  • springboot+mysql+mybatis逆向工程
     最近一直再做hibernate相关的工作,想捡起遗忘了一年的mybatis,就在自己的demo项目中引入了一下,记录下过程,这里只生成mapper和model和mapper.xml一、引入依赖  ......
  • Spring中使用redis
    1.pom.xml<!--redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>......
  • SpringSecurity多表验证
    在开始之前我想感叹一句,技术久了不回头看看真的会忘记的,这次公司让我重新开发一个程序,项目架构为单体多模块开发,其中有个需求就是需要不同用户表进行登录,且不同表的用户名......
  • Spring2.0中文参考手册(中文版) [转自CSDN论坛]
    Spring中文参考手册得到SpringFramework开发团队的直接授权和大力的支持,其目的是在中文世界推广优秀的开源技术。本次翻译活动由满江红开放技术研究组织(​​http://www.re......
  • 记录一个springboot 设置跨域 失效的问题
    问题前端请求springboot的接口报跨域,后端有接收到请求也能成功处理并返回结果,但前端无法接收结果。后端通过继承WebMvcConfigurer有以下代码设置跨域:@Override......