spring mvc通过拦截器实现登录验证

一、关于拦截器的定义

springmvc拦截器是用来拦截用户的请求进行相应的处理。

二、拦截器的主要用途
  1. 日志记录
  2. 权限检查
  3. 性能监控(可以记录一个接口从访问开始到结束的时间)
  4. 通用行为(加载cookie等)
三、自定义拦截器实现方式

1.实现接口 实现HandlerInterceptor
2.继承类 继承实现了HandlerInterceptor接口的类HandlerInterceptorAdapter

四、拦截器内容
public class InterceptorLogin implements HandlerInterceptor {

/**
 * 请求处理完成之后执行
 */
public void afterCompletion(HttpServletRequest request,
        HttpServletResponse response, Object arg2, Exception arg3)
        throws Exception {
    System.out.println("afterCompletion请求处理完成之后执行");

}
/**
 * 请求处理之后执行
 */
public void postHandle(HttpServletRequest request, HttpServletResponse response,
        Object arg2, ModelAndView arg3) throws Exception {
    System.out.println("postHandle请求处理之后执行");

}

/**
 * 请求处理之前执行
 * 如果返回FALSE,后面就不会执行
 */
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
        Object arg2) throws Exception {
    System.out.println("preHandle请求处理之前执行");
    if(request.getSession().getAttribute("user")==null){
        System.out.println("用户没有登录,需要跳转");
        response.sendRedirect(request.getContextPath() + "/system/index");
        return false;
    }
    return true;
}

}

如上,自定义拦截器有三个方法:
1.preHandle
请求处理之前执行,返回值为布尔,如果返回的false,则后面的请求以及拦截器都不会执行
2.postHandle
请求处理之后执行
3.afterCompletion
请求处理完成之后执行
上面的代码是通过判断session中是用户是否为空来判断用户是否登录,那么需要在登录的时候将用户信息放入session
图片

五、配置拦截器生效
<mvc:interceptors>
    <!-- <bean class="com.springmvc.interceptor.InterceptorAll"></bean> -->
    <mvc:interceptor>
        <!-- 配置需要拦截的url -->
        <mvc:mapping path="/zhh/**"/>
        <!-- 拦截器类定义 -->
        <bean class="com.springmvc.interceptor.InterceptorLogin"></bean>
    </mvc:interceptor>
</mvc:interceptors>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值