一:在spring-mvc.xnl中修改
<!--放开静态资源-->
<mvc:resources location="/adduction/" mapping="/adduction/**"/>
<mvc:interceptors>
<mvc:interceptor>
<!--拦截所有路径-->
<mvc:mapping path="/**" />
<!--放开指定路径-->
<mvc:exclude-mapping path="/user/signIn.do"/>
<!--class里是我的拦截器-->
<bean class="com.lnfs.controller.SecurityInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
二:新建SecurityInterceptor类,存放拦截器
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {
System.out.println("this is afterCompletion of LoginInterceptor");
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)throws Exception {
System.out.println("this is postHandle of LoginInterceptor");
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
System.out.println("this is preHandle of LoginInterceptor");
System.err.println(request.getRequestURI());
HttpSession session=request.getSession();
User user=(User)session.getAttribute("user");
if(user==null){
System.out.println("no user in LoginInterceptor!!!");
// request.getRequestDispatcher("/WEB-INF/view/user/userlogin.jsp").forward(request, response);
response.sendRedirect(request.getContextPath() + "/");
return false;
}
//返回true代表继续往下执行
return true;
}
完成!!但是只是拦截了controller,并不能拦截jsp
三:将JSP存放到WEB-INF下
修改web.xml
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
ok