SpringMVC 学习笔记(拦截器的配置))

本文详细介绍了如何在SpringMVC中配置和使用拦截器,包括实现HandlerInterceptor接口的方法及应用场景,并提供了具体的代码实例。

  在设置SpringMVC的拦截器时,需要在SpringMVC中配置 拦截器对象,拦截器的的对象要 实现 HandlerInterceptor 接口

  拦截器类的设置:

public class interceptor implements HandlerInterceptor {
    // 处理器(Handler)执行完请求 后 ,执行该拦截方法
    // 应用场景:统一异常处理,统一日志处理
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception arg3)
            throws Exception {
        
        
    }

    // 请求进入 Handler 之后,Handler 返回ModelAndView 之前 执行此拦截方法
    // 应用场景:从ModelAndView出发:将公用的模型数据(比如菜单导航栏)在这里传到视图,也可以在这里统一指定视图
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
            throws Exception {
        // TODO Auto-generated method stub
        
    }

    //进入 Handler方法之前执行
    //应用场景:用于身份认证(登录认证)、身份授权(权限校验)
    //此方法返回false表示拦截,不向下执行,返回true表示放行
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        if("admin".equals(name) && "admin".equals(pwd)){
            return true;
        }
        return false;
    }

}

拦截器对象的配置:

<!--配置拦截器的相关设置  -->
        <mvc:interceptors>
            <!-- 配置一个拦截器 -->
            <mvc:interceptor>
                <!--配置拦截器需要拦截的请求  -->
                <mvc:mapping path="/login.action"/>
                <!-- 执行拦截操作的对象 -->
                <bean class="controller.interceptor.interceptor1"></bean>
            </mvc:interceptor>
            <!--如配置多个拦截器  按顺序执行 即请求从上一个拦截器执行完毕后(同一方法;如:preHandler),再进入下个拦截器  -->
            <mvc:interceptor>
                
                <mvc:mapping path="/login.action"/>
                
                <bean class="controller.interceptor.interceptor2"></bean>
            </mvc:interceptor>
        </mvc:interceptors>

 

转载于:https://www.cnblogs.com/lhblogs/p/7489139.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值