自定义拦截器
import java.lang.reflect.Method;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**
* 拦截器
* @author Administrator
*
*/
public class AuthInterceptor implements HandlerInterceptor {
private static Logger logger = LoggerFactory.getLogger(AuthInterceptor.class);
private static final String CN_LOGIN_FAIL_PAGE = "/list/getjsp";
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) throws Exception {
if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod) handler;
Method method = handlerMethod.getMethod();
String methodName = method.getName();
Object bean = handlerMethod.getBean();
logger.debug("调用" + bean.getClass().getName() + "方法:" + methodName);
}
String contextPath = httpServletRequest.getContextPath();
HttpSession session=httpServletRequest.getSession();
Object obj=session.getAttribute("SESSION");//获取验证数据session或者cookie
if(obj == null){
httpServletResponse.sendRedirect(contextPath + CN_LOGIN_FAIL_PAGE);//验证失败跳转页面
}
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
spring-mvc.xml配置拦截器
<!-- 自定义拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/form/**"/>//拦截路径
<mvc:exclude-mapping path="/wap/login_page.do"/>//不拦截路径
<bean class="com.blackwind.test.two.AuthInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>