SpringMVC-拦截器

标签: SpringMVC

简介

在这里插入图片描述

执行流程在这里插入图片描述

案例

  1. 控制器代码
package edu.yjsj.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(path = "/user")
public class UserController {
    @RequestMapping(path = "/testInterceptor")
    public String testInterceptor(){
        System.out.println("执行拦截器");
        return "success";
    }
}

  1. 拦截器代码—实现-HandlerInterceptor接口
package edu.yjsj.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyInterceptor implements HandlerInterceptor {
    @Override
    /**
     * 预处理:controller方法执行前
     * return true 放行,执行下一个拦截器,如果没有则执行controller中的方法
     * return false 不放行,可以选择跳转到其他的页面
     */
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("拦截器预处理");
        //httpServletRequest.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(httpServletRequest,httpServletResponse);
        return true;
    }

    /**
     * 后处理方法:controller方法执行后,success.jsp执行后
     * @param httpServletRequest
     * @param httpServletResponse
     * @param o
     * @param modelAndView
     * @throws Exception
     */
    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
        System.out.println("后处理方法执行。。");
    }

    /**
     * success.jsp页面执行后再执行
     * @param httpServletRequest
     * @param httpServletResponse
     * @param o
     * @param e
     * @throws Exception
     */
    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        System.out.println("jsp页面响应后");
    }
}

  1. 配置springmvc.xml文件
   <!-- 配置拦截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <!-- 拦截的具体方法 -->
            <mvc:mapping path="/user/*"/>
            <!-- 不要拦截的方法
            <mvc:exclude-mapping path=""/>
            -->
            <!-- 配置拦截器对象 -->
            <bean class="edu.yjsj.interceptor.MyInterceptor"/>
        </mvc:interceptor>

        <mvc:interceptor>
            <!-- 拦截的具体方法 -->
            <mvc:mapping path="/user/*"/>
            <!-- 不要拦截的方法
            <mvc:exclude-mapping path=""/>
            -->
            <!-- 配置拦截器对象 -->
            <bean class="edu.yjsj.interceptor.MyInterceptor2"/>
        </mvc:interceptor>
    </mvc:interceptors>

拦截器实体类方法执行分析

在这里插入图片描述
preHandle方法
预处理:controller方法执行前
return true 放行,执行下一个拦截器,如果没有则执行controller中的方法
return false 不放行,可以选择跳转到其他的页面

版权声明:本文为weixin_44172800原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44172800/article/details/104267403

智能推荐

拦截器(SpringMVC)

拦截器定义: Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。 要使用Spring MVC中的拦截器,就需要对拦截器类进行定义和配置。通常拦截器类可以通过两种方式来定义。 1.通过实现HandlerInterceptor接口,或继承H...

SpringMVC——拦截器

文章目录 拦截器与过滤器的区别 自定义实现拦截器 1. 新建一个Module: springmvc-07-Interceptor,添加web支持 2. 配置web.xml 3. 在resources文件夹下新建文件 springmvc-servlet.xml并在文件中添加以下信息: 4. 编写一个测试拦截器:MyInterceptor 5.在springmvc-servlet.xml中配置拦截器 ...

SpringMVC拦截器

SpringMVC中的拦截器和Servlet中的过滤器效果类似,都是在Controller前面后者后面做一些事情,但是两者也有一些区别: 过滤器可以应用于所有的web技术, 包括SpringMVC,但是拦截器是SpringMVC中的东西,只能用于该框架 过滤器可以拦截所有请求,包括静态资源如:html,css等。拦截器不可以 拦截器的原理很简单,通过一张图来描述:   当请求到...

SpringMVC拦截器

SpringMVC拦截器 一、配置拦截器 详细说明: mapping:表示拦截器的拦截路径范围 /** 表示拦截任何路径 /* 表示拦截任意的一级路径 /工程名 /** 任意路径 不会超过SpringMVC DispathServlet的最大路径 ** bean:让Spring 去创建相应的拦截对象给我们使用 补充: 1、jsp 都不会过滤 处于放行状态 2、/** 不是表示的全网站任意路径 最大...

SpringMVC拦截器

一、作用 SpringMVC拦截器可以拦截客户端发送的请求,并在调用处理方法前后做出一定处理 二、实现 1、自定义拦截器Interceptor类 创建一个名为MyInterceptor的java类,并实现HandlerInterceptor接口,如下: 2、配置拦截器 ①拦截所有请求 在Spring配置文件application.xml中添加 ②拦截指定请求 三、分析源代码 1、preHandle...

猜你喜欢

SpringMVC拦截器

SpringMVC拦截器 项目结构 配置文件 pom.xml web.xml**(重点:中文乱码的配置)** spring.xml**(重点:配置拦截器)** 控制器 UserController 拦截器 MyInterceptor1(第一个拦截器) MyInterceptor2(第二个拦截器) 前台页面 index.jsp success.jsp error.jsp...

SpringMVC——拦截器

拦截器 Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器可以实现HandlerInterceptor接口,也可以继承HandlerInterceptorAdapter 适配器类 拦截器中有三个方法 ①preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求 request 进行处理。如果程序员决定该拦截器对请求...

SpringMVC 拦截器

一、springmvc 拦截器的实现 • 创建拦截器并实现HandleInterceptor接口,也可以实现WebRequestInterceptor接口,但是WebRequestInterceptor接口中preHandle方法没有返回值,所以不能通过此方法终止请求 • 在Spring MVC配置文件中以bean的形式注册拦截器,可以将bean配置在interceptors标...

Docker-Compose部署nginx 和lnmp

Docker-Compose tomcat lnmp tomcat 使用Docker-Compose部署Nginx代理Tomcat集群,实现负载均衡 在这个目录下创建多个目录 切换到nginx目录修改nginx的主配置文件: [root@host1 compose]# cd nginx/ [root@host1 nginx]# vim default.conf 在末尾添加: 修改: 切换到tmca...

19-20年月度行业分析

Table of Contents 1  对各一级行业分析 2  对女装行业进行分析 对各一级行业分析 platform cid industry category themonth 销售额 访客 客群指数 行业简称 月 年 年月 0 天猫 50010368 ZIPPO/瑞士军刀/眼镜 太阳眼镜 2020-01-01 62484514.13 6663217 ...