springmvc之拦截器
1、首先编写拦截器类
package com.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{ //在DispatcherServlet处理后执行---清理工作 @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 { System.out.println("-------处理后-----------"); // TODO Auto-generated method stub } //在请求处理的方法之前执行 //如果返回true 那么执行下一个拦截器 如果返回false 那么不执行下一个拦截器 @Override public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { // TODO Auto-generated method stub System.out.println("-------处理前-----------"); return true; } }
2、在mvc.xml中配置拦截器
<!-- 配置拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- /** 包括路径及其子路径 如果是/admin/* 拦截的是/admin/add,/admin/user/add 不会被拦截 如果是/admin/** 上面所有的都会被拦截 --> <mvc:mapping path="/admin/**"/> <bean class="com.interceptor.MyInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
3、编写controller
package com.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/admin") public class HelloController { @RequestMapping("/inter") public String inter() { System.out.println("hello controller!") ; return "index"; } }
4、访问
此外,配置xml提示。
然后在eclipse中打开Window->PreFerences 。 搜索XML Catalog
编辑完成后,保存即可。