spring拦截器「建议收藏」

spring拦截器「建议收藏」spring拦截器实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter类都可以实现,主要有三个方法,preHandle在调用具体的controller之前执行,postHandle在调用controller之后,但是页面渲染之前执行,afterCompletion在页面渲染之后执行,拦截器的功能类似与filter的功能,个人认为spring为什么搞…

大家好,又见面了,我是你们的朋友全栈君。

spring拦截器实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter类都可以实现,主要有三个方法,preHandle在调用具体的controller之前执行,postHandle在调用controller之后,但是页面渲染之前执行,afterCompletion在页面渲染之后执行,拦截器的功能类似与filter的功能,个人认为spring为什么搞一个拦截器,主要是因为拦截器属于spring管理的范畴类,方便资源的分配,也便于与其他的整合,不会像filter这样突兀,和filter类型,同事命中多个拦截器时,按顺序一个一个往后执行。拦截器中可以做一些权限校验,数据校验转换等事情。

编写拦截器

public class UserContextInterceptor extends HandlerInterceptorAdapter {
    //拦截器可以使用spring的依赖注入
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //可以在这里处理用户认证
        if (true) {
            response.setContentType("application/json");
            response.setCharacterEncoding("UTF-8");
            try (PrintWriter writer = response.getWriter()) {
                writer.write("{'message':'认证不通过'}");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return super.preHandle(request, response, handler);
    }
}

配置拦截器

    <mvc:interceptors>
        <!-- 权限校验拦截器 -->
        <mvc:interceptor>
            <!--匹配的路径-->
            <mvc:mapping path="/**/*.do"/>
            <!--不包含的路径-->
            <mvc:exclude-mapping path="/riskControl/**/*.do"/>
            <bean class="com.zhan.design.interceptor.UserContextInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>

如何配置,比如访问/hello/word.do,就会返回认证不通过

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149327.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • idea2021.7 30天激活码【中文破解版】

    (idea2021.7 30天激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlb…

    2022年3月21日
  • 微软正版 Office2007 专业版+企业版光盘ISO镜像

    微软正版 Office2007 专业版+企业版光盘ISO镜像微软正版Office2007专业版+企业版光盘ISO镜像;微软office2007为微软最新的office系列软件,不仅在功能上进行了优化,而且安全性稳定性更得到了巩固.现在终于有了简体中文版的office2007软件来供下载了.PR专业版MSDN版Office2007光盘ISO镜像下载,2006年11月13日放出,市面上唯一的、真正的、纯正的、MSDN原版Offi…

    2022年7月19日
  • JavaScript如何截取指定位置的字符串

    JavaScript如何截取指定位置的字符串我们在日常开发中,经常需要对字符串进行删除截取增加的操作,我们这次说一下使用JavaScript截取指定位置的字符串。**一、使用slice()截取**slice()方法可以通过指定的开始和结束位置,提取字符串的某个部分,并以新的字符串返回被提取的部分。它的参数有两个,start和end。start是必须填写的参数,规定从何处开始选取,如果是负数,就是从尾部倒着开始算。end是可选填写的参数,规定从何处结束选择,如果没有指定end的值的话,只有start,那么就是默认从start一直截取到结束的

    2022年5月20日
  • 禁爬虫robots.txt文件[通俗易懂]

    禁爬虫robots.txt文件[通俗易懂]禁止所有爬虫修改根目录robots.txt文件删除所有添加:User-agent:*Disallow:/检测地址:https://tools.aizhan.com/robots/www.lilysilk.org/

    2022年5月18日
  • centos7配置本地yum源_centos 本地yum源配置

    centos7配置本地yum源_centos 本地yum源配置centos7配置本地yum源环境限制外网怎么办?离线环境怎么解决依赖?yum源配起来,可以解决大部分包的安装^_^准备工作虚拟机版本——VMwareWorkstationPro12.x系统版本——CentOS-7-x86_64-DVD-1511.iso系统安装完毕,正常登录一、挂载镜像1.虚拟机方式1)操作之

    2022年8月12日
  • Mac WebServer、MySql安装、PHPAdmin安装

    Mac WebServer、MySql安装、PHPAdmin安装

    2021年9月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号