自己的拦截器需要继承org.springframework.web.servlet.handler.HandlerInterceptorAdapter, 根据自己的业务需求复写其的几个方法
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
/**
* 用户登录会话校验
*
*/
public class LoginInterceptor extends HandlerInterceptorAdapter {
private String mappingURL;
public void setMappingURL(String mappingURL) {
this.mappingURL = mappingURL;
}
/**
* 在DispatcherServlet完全处理完请求后被调用
*/
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
System.out.println("--afterCompletion");
// TODO Auto-generated method stub
}
/**
* 在业务处理器处理请求执行完成后,生成视图之前执行的动作
*/
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
System.out.println("--postHandle");
// TODO Auto-generated method stub
}
/**
* 在业务处理之前调用
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object arg2) throws Exception {
System.out.println("--preHandle");
String url=request.getRequestURL().toString();
// // UserInfo userInfo = (UserInfo) request.getSession().getAttribute( "userInfo");
// if (mappingURL == null || !url.matches(mappingURL)) {
// response.sendRedirect("/login.htm");
// return false;
// }
return true;
}
}
applicationContext.xml内添加:
<!-- 拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/student/*"/>
<bean class="com.sunivo.framwork.demo.LoginInterceptor" />
</mvc:interceptor>
</mvc:interceptors>