1.spring中注册登录拦截器
<!--配置登录验证拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<!--/** 包括子路径-->
<!--/* 不包括子路径-->
<mvc:mapping path="/user/*"/>
<!--注册拦截器的bean-->
<bean id="loginInterceptor" class="fun.yqfk.util.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
2.LoginInterceptor拦截器类
package fun.yqfk.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;
//注意: 拦截器只对controller的路径映射有效
@SuppressWarnings("unused")
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession userSession=request.getSession();
//为/login请求放行
if ((request.getRequestURL()).toString().contains("login"))
return true;
//如果请求用户的属性,则跳转到登录界面,并阻止通过
if(userSession.getAttribute("user")==null) {
request.getRequestDispatcher("/jsp/login.jsp").forward(request, response);
return false;
}
return true;
}
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
// TODO Auto-generated method stub
}
}