Springmvc 拦截器设置

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属性中的值是否存在,如果不存在,就被拦截,存在就能调用。

猜你喜欢

转载自blog.csdn.net/kevin_cat/article/details/81407670