一.定义拦截器类
package com.miqian.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class LoginInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
Object obj = request.getSession().getAttribute("account");
if (obj == null) {// 没有登录
if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {
// 如果是Ajax请求,往回写点东西
response.getWriter().write("unlogin");
} else {
// 如果是正常请求,如:表单提交,a连接,可以直接重定向
response.sendRedirect(request.getContextPath() + "/account/tologin");
}
return false;
}
return true;
}
}
二.在SpringMVC中设置拦截器
<!-- 定义拦截器Bean -->
<bean id="loginInterceptor" class="com.miqian.interceptor.LoginInterceptor"></bean>
<!-- 设置拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 被拦截的路径,支持通配符 -->
<mvc:mapping path="/account/toaccount" />
<mvc:mapping path="/jiekuan/tojiekuanList"/>
<mvc:mapping path="/touzi/totouziList"/>
<!-- 使用哪个拦截器类 -->
<ref bean="loginInterceptor" />
</mvc:interceptor>
</mvc:interceptors>