当前位置: 首页 > news >正文

wordpress 企业沟通插件郑州seo排名公司

wordpress 企业沟通插件,郑州seo排名公司,长沙建个网站要多少钱,阿里巴巴网页版入口目录 lerInterceptor 拦截器 1、拦截器的作用 2、拦截器的创建 3、拦截器的三个抽象方法 4、拦截器的配置 5、多个拦截器的执行顺序 SpringMVC的异常处理器 1、异常处理器概述 2、基于配置文件的异常处理 3、基于注解的异常处理 lerInterceptor 拦截器 1、拦截器的作…目录 lerInterceptor 拦截器 1、拦截器的作用 2、拦截器的创建 3、拦截器的三个抽象方法 4、拦截器的配置 5、多个拦截器的执行顺序 SpringMVC的异常处理器 1、异常处理器概述 2、基于配置文件的异常处理 3、基于注解的异常处理 lerInterceptor 拦截器 1、拦截器的作用 拦截器的作用时机 SpringMVC的拦截器作用于 控制器方法执行的前后。 有不同的拦截方法作用于控制器方法执行之前、之后、以及视图渲染之后三个阶段 拦截器与过滤器的区别 过滤器是原生Serlvet的组件作用于Servlet执行之前 拦截器是SpringMVC的模块作用于控制器方法执行前、后、渲染视图后。 2、拦截器的创建 SpringMVC中的拦截器需要实现HandlerInterceptor接口 示例 public class FirstInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(控制器方法准备执行...);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(控制器方法执行完毕...);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(视图渲染完毕...);} } 3、拦截器的三个抽象方法 HandlerInterceptor接口有三个抽象方法 preHandle控制器方法执行之前执行preHandle()其boolean类型的返回值表示是否拦截或放行 返回true为放行即调用控制器方法返回false表示拦截即不调用控制器方法postHandle控制器方法执行之后执行postHandle()afterComplation处理完视图和模型数据渲染视图完毕之后执行afterComplation() 源码分析为什么preHandle能实现拦截控制器方法 //DispatherServlet if (!mappedHandler.applyPreHandle(processedRequest, response)) {//如果applyPreHandle方法返回的是false就直接return不再执行下面的内容return; }//执行控制器方法 mv ha.handle(processedRequest, response, mappedHandler.getHandler()); //渲染视图 ...//applyPreHandle方法 boolean applyPreHandle(HttpServletRequest request, HttpServletResponse response) throws Exception {for (int i 0; i this.interceptorList.size(); i) {HandlerInterceptor interceptor this.interceptorList.get(i);if (!interceptor.preHandle(request, response, this.handler)) {triggerAfterCompletion(request, response, null);//如果当前拦截器的preHandle方法返回falseapplyPreHandle方法也返回falsereturn false;}this.interceptorIndex i;}return true; } 注意 SpringMVC配置文件中的view-controller视图控制器标签也会被拦截器拦截。 4、拦截器的配置 SpringMVC的拦截器必须在SpringMVC的配置文件中进行配置。 拦截器有三种配置方式一般使用第三种可以配置拦截范围。 方式一 在interceptors中配置自定义拦截器的bean标签 !--配置拦截器-- mvc:interceptorsbean classcom.csai.interceptors.FirstInterceptor/ /mvc:interceptors 这种方式无法指定拦截范围是对DispatcherServlet所处理的所有的请求进行拦截 方式二 在interceptors中引用自定义拦截器的bean id bean idfirstInterceptor classcom.csai.interceptors.FirstInterceptor/!--配置拦截器-- mvc:interceptorsref beanfirstInterceptor/ /mvc:interceptors 和上面一样这种方式无法指定拦截范围是对DispatcherServlet所处理的所有的请求进行拦截 配置自定义拦截器的bean时可以使用配置文件也可以使用Component注解组件扫描的方式 方式三 使用mvc:interceptor标签进行配置 bean idfirstInterceptor classcom.csai.interceptors.FirstInterceptor/!--配置拦截器-- mvc:interceptorsmvc:interceptormvc:mapping path/**/mvc:exclude-mapping path/testInterceptor/ref beanfirstInterceptor//mvc:interceptor /mvc:interceptors 可以配置三个属性 mapping拦截请求的请求地址可以使用Ant风格的路径exclude-mapping不会被拦截的请求地址即拦截白名单bean/ref指定拦截器的bean 例如这里是拦截所有请求不拦截testInterceptor页面对应的拦截器是firstInterceptor 5、多个拦截器的执行顺序 如果匹配到的多个拦截器的preHandle()方法都返回true 此时多个拦截器的执行顺序和拦截器在SpringMVC的配置文件的配置顺序有关 preHandle()会按照配置的顺序执行即先配置的先执行 postHandle()和afterComplation()会按照配置的反序执行即先配置的后执行因为是嵌套的关系。 示例请求访问匹配到一个控制器方法两个拦截器 配置顺序 !--配置拦截器-- mvc:interceptorsref beanInterceptor A/ref beanInterceptor B/ /mvc:interceptors 执行顺序 preHandle A -- true preHandle B -- true --- 控制器方法执行 --- --- 控制器方法执行完毕 --- postHandle B postHandle A --- 视图渲染完毕 --- afterComplation B afterComplation A 如果匹配到多个拦截器有的拦截器的preHandle()方法返回了false 先看结果对于同一个控制器方法只要存在拦截器的preHandle()方法返回了false控制器方法就不会执行。 在它之前配置的拦截器和它自己的preHandle()都会执行所有的postHandle()都不执行因为控制器方法没有执行在它之前配置的拦截器afterComplation()会执行在它之后配置的拦截器所有方法都不会执行。 示例 请求访问匹配到一个控制器方法两个拦截器其中一个返回false 配置顺序 !--配置拦截器-- mvc:interceptorsref beanInterceptor A/ref beanInterceptor B/ /mvc:interceptors Interceptor B 的preHandle()返回false 执行顺序 preHandle A -- true preHandle B -- false --- 控制器方法不执行 --- afterComplation A SpringMVC的异常处理器 1、异常处理器概述 异常处理器的作用 用于处理SpringMVC 控制器方法执行过程中 产生的异常。 SpringMVC提供了一个处理 控制器方法执行过程中所出现的异常的接口HandlerExceptionResolver HandlerExceptionResolver接口的实现类 DefaultHandlerExceptionResolver是SpringMVC默认使用的异常处理器SimpleMappingExceptionResolver用于自定义 异常处理器 自定义异常处理器的使用场景 大致有两个作用 对系统异常提供自定义处理。比如出现某个异常时跳转到服务器繁忙的页面用户就不会看到500这类的页面了提供对自定义异常的处理方案 2、基于配置文件的异常处理 SpringMVC提供了自定义的异常处理器SimpleMappingExceptionResolver 示例 实现错误页面跳转 !--配置异常处理器-- bean classorg.springframework.web.servlet.handler.SimpleMappingExceptionResolverproperty nameexceptionMappingsprops!--如果出现ArithmeticException数学异常就跳转到error视图--prop keyjava.lang.ArithmeticExceptionerror/prop/props/property /bean properties的键表示处理器方法执行过程中出现的异常 properties的值表示若出现指定异常时设置一个新的视图名称跳转到指定页面 测试 error页面 h3服务器繁忙/h3 控制器方法 RequestMapping(/testInterceptor) public String testInterceptor(){//创造一个数学异常Integer i 3/0;return success; } 发生异常后就会被自定义的异常处理器捕获跳转到错误页面 示例 实现异常信息的捕获 配置文件 !--配置异常处理器-- bean classorg.springframework.web.servlet.handler.SimpleMappingExceptionResolverproperty nameexceptionMappingsprops!--如果出现ArithmeticException数学异常就跳转到error视图--prop keyjava.lang.ArithmeticExceptionerror/prop/props/propertyproperty nameexceptionAttribute valueexception/ /bean 配置exceptionAttribute属性设置一个value 异常信息就会存入request域中键名为设置的value值为异常信息。 前端页面展示错误信息 h3服务器繁忙/h3 p th:text${exception}/p 3、基于注解的异常处理 使用注解实现获取异常信息和跳转错误页面 ControllerAdvice public class ExceptionController {ExceptionHandler(value {ArithmeticException.class})public String testException(Exception exception, Model model){model.addAttribute(exception, exception);return error;}} 原理如果遇到了ExceptionHandler 注解 标识的这些异常就调用 此 ExceptionHandler 注解对应的控制器方法。 使用注解在配置文件中就不需要配置任何关于异常处理器的内容。
http://www.w-s-a.com/news/312728/

相关文章:

  • 网站方案组成要素饰品公司网站建设方案
  • 网站改版被降权赣州景文网络科技有限公司
  • 吉林省网站建设推广图片模版
  • 如何做网站热力图佛山 网站关键词优化
  • 个人网站建设论文中期报告申报网站建设理由 模板
  • 岫岩做网站软件开发和app开发的区别
  • 邯郸质量一站式服务平台上线如何做国外销售网站
  • 内蒙古工程建设协会网站sem优化策略
  • Linux网站建设总结建设电子商务平台
  • 公司网站背景图片课程网站如何建设
  • 用js做简单的网站页面互联网技术对人力资源管理的影响有哪些
  • 银川做网站贵德县wap网站建设公司
  • 深圳网站建设zvge山西省煤炭基本建设局网站
  • 佛山网页网站设计线上怎么做推广和宣传
  • 多个域名绑定同一个网站案例
  • 建设网站都需要准备什么代理加盟微信网站建设
  • 网站备案没有了wordpress 添加按钮
  • 湖南建设银行宣传部网站福田蒙派克空调滤芯安装位置图
  • wap网站搜索wordpress工作室模板
  • 青岛金融网站建设如何提交网站地图
  • 制作简单门户网站步骤网站建设论文的摘要
  • 可以直接进入网站的正能量照片学做静态网站
  • 织梦做社交网站合适吗网站的市场如何制作
  • 阳曲网站建设价格多少四川佳和建设工程网站
  • 免费注册店铺位置sem seo什么意思
  • 建筑网站搜图电子商务网站建设渠道
  • 学校网站内容四川手机网站开发
  • 网站制作公司违法商业网站运营成本
  • 显示佣金的网站是怎么做的广告设计主要做哪些
  • 做阿里网站的分录济南seo网站排名关键词优化