Springmvc 拦截器设置

本文介绍了一种基于Spring MVC的登录拦截器实现方法。通过自定义拦截器,在用户访问受保护资源前进行身份验证检查,若未登录则返回提示信息。文章详细展示了拦截器的代码实现,并提供了配置文件示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1登录的时候咋session中设置一个值,这个值自定义

2写一个拦截器

package com.tarena.Interceptor;

import java.io.Writer;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.tarena.entity.User;

/**
 * 登录拦截器
 * @author 公共
 *
 */
public class LoginInterceptor  implements HandlerInterceptor{

    @Override
    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
            throws Exception {
        // TODO Auto-generated method stub
        
    }

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
     System.out.println("-----------------------进入拦截器------------------------------");
        User user=(User) request.getSession().getAttribute("user");
        System.out.println(request.getSession());
        if(user == null){
            response.setCharacterEncoding("utf-8");
            response.setContentType("application/json");
            Writer witer = response.getWriter();
            witer.write("{\"status\":1,\"message\":\"请先登录.\"}");
            witer.close();
            return false;
        }else{
            return true;
        }
        
        
    }

}

3配置文件

  <mvc:interceptors>
   <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <mvc:exclude-mapping path="/user/*"/>
            <!-- <mvc:exclude-mapping path="/menu/*"/> -->
            <bean class="com.tarena.Interceptor.LoginInterceptor"/>
        </mvc:interceptor>
  </mvc:interceptors> 

 

原理:这样就可以这只拦截的路径,一般登录是bula不拦截的,其他的全部拦截,登录的时候给session赋值,然后其他的路劲在访问前,先执行拦截器zhon中的方法,ranh然后判断登录设置在session属性中的值是否存在,如果不存在,就被拦截,存在就能调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值