SpringMVC攔截器(過濾器):HandlerInterceptor接口,或者繼承handlerinterceptoradapter
我這裏使用的自定義攔截器,實現HandlerInterceptor
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
String logname = (String) request.getSession().getAttribute("loginname");
if (logname != null) {
System.out.println("放行!");
return true;
} else {
System.out.println("攔截,跳轉!");
response.sendRedirect("http://localhost:8080/cjw_salary_sheet/userInfo/error.do");
return false;
}
}
補全下面的 postHandle,afterCompletion
通過判斷用戶名是否存在來確定是否攔截
配置spring-mvc.xml`
<mvc:interceptors>
<mvc:interceptor>
<!-- 攔截所以請求-->
<mvc:mapping path="/**" />
<!-- 放行 .do /jsp / ?wsdl-->
<mvc:exclude-mapping path="/**/*?wsdl"/>
<mvc:exclude-mapping path="/userInfo/error.do" />
<mvc:exclude-mapping path="/userInfo/login.do"/>
<bean class="cn.apcinfo.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
<!--mvc:exclude-mapping 百度看一下放行規範, 可以放行當方法,靜態資源(css.js...),以什麼格式的(.jsp .html ....)-->