SSM中的登录拦截器

目的:为了保证系统的安全。只有登录界面和注册界面是所有人都可以访问的,其他url都需要拦截器进行拦截验证

说明:java里的拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。

写法:

/**

  • 登录拦截器
    */
    public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request,
    HttpServletResponse response, Object handler)
    throws Exception {
    // 获取请求的URL
    String url = request.getRequestURI();
    //URL:除了登录请求外,其他的URL都进行拦截控制
    //toRegister.action和url.indexOf("/login.action")都是重定向跳转到登录界面和注册界面
    if (url.indexOf("/toRegister.action")>= 0 || url.indexOf("/login.action")>= 0 ) {
    //toRegister.action的.action与web.xml中的 url-pattern中的 *.action一致
    return true;
    }
    // 获取Session
    HttpSession session = request.getSession();
    User user = (User) session.getAttribute(“USER_SESSION”);
    // 判断Session中是否有用户数据,如果有,则返回true,继续向下执行
    if (user != null) {
    return true;
    }
    //不符合上述条件的全部跳回登录界面
    request.getRequestDispatcher("/web/jsp/new.jsp").forward(request,response);
    return false;
    }
    @Override
    public void postHandle(HttpServletRequest request,
    HttpServletResponse response, Object handler,
    ModelAndView modelAndView) throws Exception {
    }
    @Override
    public void afterCompletion(HttpServletRequest request,
    HttpServletResponse response, Object handler, Exception ex)
    throws Exception {
    }
    }

在springmvc-config.xml文件中配置登录拦截器信息
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值