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();
//判断请求中是否包含login 如果包含就放行 return true 否则就return false 拦截
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;
}
}