spring MVC拦截器01

spring MVC拦截器01

大家好,又见面了,我是全栈君。

spring MVC拦截
作用:身份校验,权限检查,防止非法訪问.
场景:一个bbs系统,用户没有登录就无法发帖或者删除评论;
一个博客系统,没有登录就无法发表博文,无法添加分类,无法删除博文.

spring MVC 拦截实现分为2步
(1)编写拦截器类,必须继承org.springframework.web.servlet.HandlerInterceptor
核心方法:

public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object arg2) throws Exception {

在该方法中进行权限校验,说白了,就是检查是否已成功登录,核心代码:

@Override
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object arg2) throws Exception {
        response.setCharacterEncoding("UTF-8");
        HttpSession session = request.getSession(true);

        String loginFlag = (String) session
                .getAttribute(Constant2.SESSION_KEY_LOGINED_FLAG);
        if (loginFlag == null
                ||( !loginFlag.equalsIgnoreCase(Constant2.FLAG_LOGIN_SUCCESS))) {
            String path=request.getRequestURI();//"/demo_channel_terminal/news/list"
            System.out.println("您无权訪问:"+path);
            String contextPath=request.getContextPath();

            request.setCharacterEncoding("UTF-8");
            response.setStatus(401);
            response.sendRedirect(contextPath);
            return false;
        }
        return true;
    }

(2)配置spring MVC配置文件
我的spring MVC配置文件名叫spring2-servlet.xml
拦截器相关配置:

<mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/bbs/json_add_bbs"></mvc:mapping>
            <mvc:mapping path="/news/json_add_tips"></mvc:mapping>
            <bean class="com.web.controller.intercept.MemberInterceptor">
            </bean>
        </mvc:interceptor>
    </mvc:interceptors>

拦截器配置
解释:当訪问/bbs/json_add_bbs和/news/json_add_tips 时就会应用拦截器类com.web.controller.intercept.MemberInterceptor(自己定义的)
訪问其它路径时不会应用该拦截器!!!

(3)项目结构
项目採用maven 构建
项目结构

注意:
preHandle方法中返回false,就会终止request过程,即不会运行action;

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

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

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


相关推荐

  • 舵机抖动的解决方法

    舵机抖动的解决方法现象与原因原文链接:https://blog.csdn.net/zenghuanyu_big/article/details/78515309最近用arduino单片机,机械臂一直在不停的抖动。首先,需要知道舵机的使用方法,简单来说,就是给一定时间的高电平,舵机能转动在一定的角度。其实,你只需给舵机一次能转动在一定角度的高低电平,之后只需保持上电状态,理论上舵机能保持不动。但这样极易出现波动…

    2022年4月30日
    132
  • Linux 网卡特性配置 ethtool 详解 网卡Offload

    Linux 网卡特性配置 ethtool 详解 网卡Offload网络中校验和比较 2015 年 10 月 14 日本文说明了网卡 IP 层 TCP 层 UDP 层的校验和功能 以及异同点 网卡校验和高级的网卡 e1000e 等千 M 网卡 的接收 发送的校验和的计算方法是 CRC32 Refs http www wireshark org docs wsug html chunked ChAdvChecksu htmlhttp www in

    2025年8月15日
    3
  • 跟踪算法(一)光流法跟踪

    跟踪算法(一)光流法跟踪COPYFROM:http://blog.csdn.net/crzy_sparrow/article/details/7407604BTW:原文作者是我学习的榜样!本文目录:     一.基于特征点的目标跟踪的一般方法     二.光流法     三.opencv中的光流法函数    四.用类封装基于光流法的目标跟踪方法     

    2022年7月23日
    16
  • 用计算机套路别人,套路计算器隐藏版[通俗易懂]

    用计算机套路别人,套路计算器隐藏版[通俗易懂]套路计算器隐藏版是款非常适合撩妹的神器,各种整蛊玩法,套路你的女朋友,操作简单,不需要root免费使用,轻松的哄女朋友开心。套路计算器隐藏版特色1.在这里都可以跟你的好友们设定任何的计算套路。2.在使用的时候看起来就跟普通的计算器应用差不多。3.他的套路秘诀就在输入计算结果之后,会显示提前设定的文字。4.各种的文章内容都可以设定到计算里面。套路计算器隐藏版怎么用进入的先设置好内容,进入后打开的都是…

    2022年6月9日
    139
  • cmd imp导入dmp文件_oracle导入dmp文件的2种方法

    cmd imp导入dmp文件_oracle导入dmp文件的2种方法使用 imp impdp 方式导入数据 1 使用 imp 导入数据打开 cmd 窗口 然后直接敲入一下命令即可 需要注意的是 要事先把 dmp 文件放到正确的路径中去 impyx base yx 192 file E yxb yx base dmplog E yxb yx base logfull y2 使用 impdp 导入数据 1 进入数据库服务器或本机打开 cmd 或 shell 命令界面 执行如

    2025年8月30日
    3
  • Unity 3D游戏开发学习教程

    Unity 3D游戏开发学习教程用C#用Unity3D制作游戏你会学到:您将学习3D游戏开发基础知识,以使用Unity3D引擎推进事物。到本课程结束时,他们将可以轻松制作任何类型的游戏,无论是3D还是2DMP4|视频:h264,1280×720|音频:AAC,44.1KHz,2Ch语言:英语+中英文字幕(根据原英文字幕机译更准确)|时长:87节课(11h32m)|大小解压后:5.86GB描述用Unity3D开发3D游戏《2021年》是一门结构完善的高级UnityC#课程,专为完全…

    2022年9月15日
    2

发表回复

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

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