1.实现拦截器
package com.xgc.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class MyInterceptor implements HandlerInterceptor{
//在请求处理的方法之前执行
//如果返回true,执行下一个拦截器,否则不执行。
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("处理前");
return true;
}
//在请求处理的方法之后执行
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println("处理后");
}
//在DispatcherServlet处理后执行---清理工作
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub
}
}
复制代码
2.配置拦截器
<!-- 拦截器的配置 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- /** 包括路径及其子路径 -->
<mvc:mapping path="/**"/>
<bean class="com.xgc.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
复制代码
3.controller
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello() {
System.out.println("working");
return "index.jsp";
}
}
复制代码
4.扩展:如果被拦截了,能否到达指定的页面?
使用HttpServletResponse
和HttpServletRequest
可以实现转发和重定向
response.sendRedirect(request.getContextPath()+"/index.jsp");复制代码