拦截器的使用(详细步骤及代码)

1.先在springmvc_servlet.xml中配置拦截器

<mvc:interceptors>
<!-- 按照配置的顺序执行 -->

<mvc:interceptor>

//**是拦截所有请求  注意:拦截器只会拦截你的action请求。如果也想拦截jsp请求就用过滤器

<mvc:mapping path="/**"/>
<bean class="你的拦截器的class类"></bean>
</mvc:interceptor>

</mvc:interceptors>

2.在类中编写如下代码 我这个是登录案例


package com.demand.util;


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


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


public class LoginInterceptor implements HandlerInterceptor{


public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
}


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


public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {

//return true;

        //获取登录请求的路径

String uri = request.getRequestURL().toString();

扫描二维码关注公众号,回复: 4153500 查看本文章

        //判断请求中是否包含login 如果包含就放行 return true 否则就return false 拦截

    if(uri.contains("login")||uri.contains("inputInfo")) {
  return true;
}
// a)拦截用户请求,判断用户是否登录
HttpSession session = request.getSession();
Object username = session.getAttribute("user");
if (username != null) {
// b)如果用户已经登录。放行
return true;
}
response.sendRedirect(request.getContextPath() + "/login/index.action");
return false;
}
}

猜你喜欢

转载自blog.csdn.net/weixin_39592397/article/details/80914103
今日推荐