0
点赞
收藏
分享

微信扫一扫

Day25SSM之SpringMVC拦截器案例***


案例分析

京东的某些功能,必须登录才能访问

没有登录,必须登录 订单 ,地址

Day25SSM之SpringMVC拦截器案例***_web

案例实现

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​


举报

相关推荐

0 条评论