Day25SSM之SpringMVC拦截器案例***

案例分析

京东的某些功能,必须登录才能访问
没有登录,必须登录 订单 ,地址
在这里插入图片描述

案例实现

LoginInterceptor

//1:判断一下路径,如果访问的是order address..判断是否登录 未登录强制到登入页面
public class LoginInterceptor implements HandlerInterceptor {
    
    
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
    
        System.out.println("LoginInterceptor preHandle------------------------");
        User user = (User) request.getSession().getAttribute("user");
        if(user == null){
    
    
            String address = request.getRequestURI();
            System.out.println("address = "+address);
            if(address.contains("order")||address.contains("address")){
    
    
                String contextPath=request.getContextPath();
                response.sendRedirect(contextPath+"/login.jsp");
                //强制到登录页面
                return false;
            }
        }
        return true;
    }

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    
    
        System.out.println("LoginInterceptor postHandle------------------------");
    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    
    
        System.out.println("LoginInterceptor afterCompletion------------------------");
    }
}

springmvc.xml


    <!--拦截器使用第二步:配置拦截器-->
    <mvc:interceptors>
        <!--用于测试的拦截器-->
        <mvc:interceptor>
            <!--拦截路径的配置-->
            <mvc:mapping path="/**"/>
            <bean id="interceptor1" class="com.wzx.interceptor.LoginInterceptor"/>
        </mvc:interceptor>

    </mvc:interceptors>

测试OrderController

@Controller
@RequestMapping("/order")
public class OrderController {
    
    
    @RequestMapping(path = "/query.action",method = {
    
    RequestMethod.GET,RequestMethod.POST})
    public String query(Integer id){
    
    
        System.out.println("你访问了我的订单功能 ");
        return "order";
    }
}

地址

http://localhost:8080/web03/order/query.action?id=1

猜你喜欢

转载自blog.csdn.net/u013621398/article/details/109076641