返回顶部
首页 > 资讯 > 后端开发 > Python >零基础入门SpringMVC拦截器的配置与使用
  • 399
分享到

零基础入门SpringMVC拦截器的配置与使用

2024-04-02 19:04:59 399人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

 在springMVC中 我们说到了拦截器 , 它会在映射处理器(HandleMapping)执行时检查我们访问的地址是否配置拦截器 , 在拦截器中实现一些功能 &nbs

 在springMVC中 我们说到了拦截器 , 它会在映射处理器(HandleMapping)执行时检查我们
访问的地址是否配置拦截器 , 在拦截器中实现一些功能

       springmvc 定义了拦截器接口 HandlerInterceptor该接口中定义了三个方法,这三个方法的调用时在 SpringMVC 框架内部完成的, 调用这个三个方法的时候,其参数的值也是从框架内部传递进来的。

首先我们来看第一个方法 : boolean preHandle()

      预处理方法,实现处理器(Controller层, 控制器)方法的预处理,就是在处理器方法执行之前这个方法会被行,相当于拦截了处理器方法,框架会传递请求和响应对象给该方法,第三个参数为被拦截的处理器方法。如果 preHandle 方法返回 true 表示继续流程(如调用下一个拦截器或处理器方法),返回 false 表示流程中断,不会继续调用其他的拦截器或处理器方法,此时我们需要通过 response 来产生响应;

         意思就是说呢 , 当请求到达我们控制层方法时, 会先进入这个方法中, 根据preHandle() 方法的

返回结果(true 和 false) 来决定下一步如何执行

      后两个方法 : void postHandle()     afterCompletion()

      首先第一个方法是控制层方法执行后会执行, 第二个方法时整个请求结束后执行, 因为版本原因, 这两个方法的使用频率较低, 所以这里我们做一个了解即可

      接着我们去搭建一个拦截器看看到底是怎么一回事

//自己编写一个类PreInterceptor 实现 HandlerInterceptor接口 , 重写preHandle方法
public class PreInterceptor implements HandlerInterceptor {
    //此方法返回true ,请求才能顺利到达相应的处理方法中,否则会被拦截
    @Override
    public boolean preHandle(httpservletRequest request, 
            HttpServletResponse response, Object handler) throws Exception {
        //第三个参数为目标控制器对象
        HttpSession session= request.getSession();
        //判断信息是否有效
        Admin admin = (Admin) session.getAttribute("admin");
        if (admin==null){
            response.getWriter().print(202);
            return false;
        }else {
            return true;
        }
    }
}

      接着需要去配置文件中配置拦截器

<!--配置拦截器-->
<mvc:interceptors>
    <mvc:interceptor>
        <!--所有请求都进入拦截器-->
        <mvc:mapping path="/**"/>
        <!--指定哪些请求不进入拦截器-->
        <mvc:exclude-mapping path="/login/login"/>
        <mvc:exclude-mapping path="/CSS/**"/>
        <mvc:exclude-mapping path="/images/**"/>
        <mvc:exclude-mapping path="/js/**"/>
        <mvc:exclude-mapping path="/**.html"/>
        <!--拦截器实现类-->
        <bean id="login" class="com.ff.SSM.util.PreInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>

这里我们以后端登录 的控制器为例

@RestController
@RequestMapping(value = "/login")
public class LoginController {
    @Autowired
    LoginService loginService;
    @PostMapping(value = "/login")
    public CommonResult adminLogin(Admin admin, HttpSession session){
        CommonResult commonResult;
        try {
            Admin admin1 = loginService.login(admin);
            if(admin1==null){
                commonResult=new CommonResult(201,"账号或密码错误",admin1);
            }else  {
                session.setAttribute("admin",admin1);
                commonResult=new CommonResult(200,"登录成功",admin1);
            }
        }catch (Exception e){
            commonResult=new CommonResult(500,"登录失败","");
        }
        return commonResult;
    }
}

         如上, 前端发起了登录请求 , 我们配置了拦截器, 会先进入拦截器 , 根据 preHandle() 方法决定

是否可以进入到我们具体的登录方法中 

      上述控制器例子是将用户的信息存入了session中 , 我们每次接受前端的请求时, 在拦截器中判断用户的信息是否还是有效的 , 有效则放行, 无效则拦截 , 所以前提是我们的登录请求肯定是不能被拦截的, 因为这时候没有登录, 用户信息为 null ,所以上面我们配置了不拦截登录请求, 也不去拦截那些请求页面

      以上就是SpringMVC中拦截器的具体功能和实现 , 感谢阅读

到此这篇关于零基础入门SpringMVC拦截器的配置与使用的文章就介绍到这了,更多相关SpringMVC拦截器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 零基础入门SpringMVC拦截器的配置与使用

本文链接: https://lsjlt.com/news/147493.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 零基础入门SpringMVC拦截器的配置与使用
     在SpringMVC中 我们说到了拦截器 , 它会在映射处理器(HandleMapping)执行时检查我们访问的地址是否配置拦截器 , 在拦截器中实现一些功能 &nbs...
    99+
    2024-04-02
  • SpringMVC拦截器零基础掌握
    目录项目准备单个拦截器的执行流程多个拦截器的执行流程权限拦截器(案例分享) SpringMVC 的拦截器 Interceptor 的主要用来拦截指定的用户请求,并进行相应的预处理或后...
    99+
    2023-03-12
    SpringMVC拦截器实现 SpringMVC拦截器原理
  • 详解SpringMVC的拦截器参数及拦截器链配置
    目录一、拦截器参数二、拦截器链配置一、拦截器参数 前置处理 public boolean preHandle(HttpServletRequest request, HttpServ...
    99+
    2024-04-02
  • 详解SpringMVC拦截器配置及使用方法
    本文介绍了SpringMVC拦截器配置及使用方法,分享给大家,具体如下:常见应用场景日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。 权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接...
    99+
    2023-05-31
    spring mvc 拦截器
  • VUE零基础入门axios的使用
    目录一.axios是什么二.axios的特点三.axios怎么安装四.在VUE全局挂载导入挂载使用五.axios便捷方法六.axios基础方法七.axios执行结果八.config ...
    99+
    2024-04-02
  • 详解SpringMVC的拦截器链实现及拦截器链配置
    目录1、拦截器链实现2、拦截器链的执行顺序1、拦截器链实现 只需定义多个拦截器的 bean,然后在拦截器的配置类中将其逐一添加即可 第一个拦截器的定义: @Component pub...
    99+
    2024-04-02
  • SpringMVC 拦截器的使用示例
    目录简介 拦截器初体验 拦截器再体验-登录验证 简介 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己...
    99+
    2024-04-02
  • 一文带你入门SpringMVC的配置与使用
    目录1.概述2.中心控制器3.搭建SpringMVC更新pom依赖配置web.xml配置springmvc-servlet.xml创建Controller创建视图层1.概述 Spri...
    99+
    2022-11-16
    SpringMVC配置 SpringMVC使用 SpringMVC入门
  • 详解SpringMVC HandlerInterceptor拦截器的使用与参数
    目录拦截器概念:拦截器VS过滤器自定义拦截器开发过程:拦截器配置项:多拦截器配置:拦截器概念: 拦截器( Interceptor)是一种动态拦截方法调用的机制,请求处理过程解析核心原...
    99+
    2024-04-02
  • 详解SpringMVC中拦截器的概念及入门案例
    目录一、拦截器概念二、拦截器入门案例一、拦截器概念 拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行 作用: 在指定的方法...
    99+
    2024-04-02
  • SpringMVC HandlerInterceptor拦截器的使用与参数是什么
    这篇文章的内容主要围绕SpringMVC HandlerInterceptor拦截器的使用与参数是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章...
    99+
    2023-06-26
  • SpringBoot拦截器的配置使用介绍
    目录1. 配置拦截器2. 一个小 Demo1. 自定义拦截器类—LoginInterceptor2. 将拦截器注册到容器中3. 原理分析1. 配置拦截器 具体步骤: 编写...
    99+
    2022-11-13
    SpringBoot拦截器 SpringBoot拦截器的使用
  • 简单总结SpringMVC拦截器的使用方法
    SpringMVC拦截器 拦截器类似于Filter过滤器,它是springMVC特有的,它可以预处理和后处理,我们可以定义一些拦截器来实现特定的业务。 过滤器与拦截器本质区别: (1...
    99+
    2024-04-02
  • Django零基础入门之常用过滤器详解
    引言: 前面讲过了Django中使用模板变量。使用很简单,那么有没有什么关于模板变量的骚操作呢? 答案是肯定有的,这就是本文要讲的——过滤器! 1.过滤器 (1)纯干货讲解: 作用:...
    99+
    2024-04-02
  • Javaweb基础入门requse原理与使用
    request对象是什么? Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。request对象是从客户端向服务器发出...
    99+
    2024-04-02
  • Django零基础入门之静态文件的引用
    目录效果展示:1.静态文件引用:(1)创建静态文件目录:(2)静态文件路径的配置:(3)创建三大静态文件:(4)静态文件的引用:引言: 在我们Django中如何引用三大静态文件(Ja...
    99+
    2024-04-02
  • vue基础入门之vuex安装与使用
    目录1.什么是vuex2.安装和引入3.vuex的使用4.流程介绍5.mutation6.getters过滤7.Action--异步处理8.Module总结本教程为入门教程,如有错误...
    99+
    2024-04-02
  • MyBatis拦截器的原理与使用
    目录一、拦截对象和接口实现示例二、拦截器注册的三种方式        1.XML注册  &n...
    99+
    2024-04-02
  • python 内置库wsgiref的使用(WSGI基础入门)
    目录WSGI基本原理1. WSGI处理过程2. WSGI示例3. WSGI web服务器和应用程序WSGI基本原理 1. WSGI处理过程 浏览器到WSGI Server:浏览器发送的请求会先到WSG...
    99+
    2022-06-02
    python wsgiref python WSGI
  • 【JAVA零基础入门系列】Day13 Java类的继承与多态
    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽)  开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟方法,被继承的类被称为父类或者基类,继...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作