中国建设银行官网站电话,抽奖网站做的下去吗,站长工具 站长之家,网页制作类软件有哪些SpringMVC的拦截器
SpringMVC拦截器-拦截器的作用
Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter#xff0c;用于对处理器进行预处理和后处理。
将拦截器按一定的顺序联结成一条链#xff0c;这条链称为拦截器链#xff08;InterceptorChain#xff09;。在…SpringMVC的拦截器
SpringMVC拦截器-拦截器的作用
Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter用于对处理器进行预处理和后处理。
将拦截器按一定的顺序联结成一条链这条链称为拦截器链InterceptorChain。在访问被拦截的方法或字段时拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。
自定义拦截器很简单只有如下三步 ①创建拦截器类实现HandlerInterceptor接口
public class MyInterceptor1 implements HandlerInterceptor {public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle);return true;}public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle);}public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println( afterCompletion);}
}
public class MyInterceptor2 implements HandlerInterceptor {public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle2);return true;}public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle2);}public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println( afterCompletion2);}
}
②配置拦截器 mvc:interceptorsmvc:interceptormvc:mapping path/**/bean classcom.controller.MyInterceptor1//mvc:interceptormvc:interceptormvc:mapping path/**/bean classcom.controller.MyInterceptor2//mvc:interceptor/mvc:interceptors③测试拦截器的拦截效果 RequestMapping(value {/qq2})public ModelAndView method2(ModelAndView modelAndView){modelAndView.addObject(name,ccc);modelAndView.setViewName(success);return modelAndView;}结论
当拦截器的preHandle方法返回true则会执行目标资源如果返回false则不执行目标资源
多个拦截器情况下配置在前的先执行配置在后的后执行
拦截器中的方法执行顺序是preHandler-------目标资源----postHandle---- afterCompletion
SpringMVC异常处理机制
异常处理的思路
系统中异常包括两类预期异常和运行时异常RuntimeException前者通过捕获异常从而获取异常信息后者主要通过规范代码开发、测试等手段减少运行时异常的发生。
系统的Dao、Service、Controller出现都通过throws Exception向上抛出最后由SpringMVC前端控制器交由异常处理器进行异常处理
异常处理两种方式
① 使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver bean classorg.springframework.web.servlet.handler.SimpleMappingExceptionResolverproperty namedefaultErrorView valueerror/property nameexceptionMappingsmapentry keyjava.lang.NumberFormatException valueerror//map/property/beanRequestMapping(value {/qq2})public ModelAndView method2(ModelAndView modelAndView) throws Exception{String sabc;System.out.println(Integer.parseInt(s));modelAndView.addObject(name,ccc);modelAndView.setViewName(success);return modelAndView;}② 实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器
自定义异常处理步骤
①创建异常处理器类实现HandlerExceptionResolver
public class MyExceptionResolver implements HandlerExceptionResolver {public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {ModelAndView modelAndView new ModelAndView();modelAndView.setViewName(error);return modelAndView;}
}②配置异常处理器 bean classcom.controller.MyExceptionResolver/③编写异常页面
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/title
/head
body
h1error/h1
/body
/html
④测试异常跳转