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

网站设计的优点摄影网站建设目的

网站设计的优点,摄影网站建设目的,odoo网站建设,seo的中文意思是什么说在前面前期回顾sharding-jdbc源码解析 更新完毕spring源码解析 更新完毕spring-mvc源码解析 更新完毕spring-tx源码解析 更新完毕spring-boot源码解析 更新完毕rocketmq源码解析 更新完毕dubbbo源码解析 更新完毕netty源码解析 更新完毕spring源码架构更新完毕springmvc源码架… 说在前面前期回顾sharding-jdbc源码解析 更新完毕spring源码解析 更新完毕spring-mvc源码解析 更新完毕spring-tx源码解析 更新完毕spring-boot源码解析 更新完毕rocketmq源码解析 更新完毕dubbbo源码解析 更新完毕netty源码解析 更新完毕spring源码架构更新完毕springmvc源码架构更新中springboot源码架构计划中github https://github.com/tianheframesharding-jdbc源码解析 更新完毕rocketmq源码解析 更新完毕seata 源码解析 更新完毕dubbo 源码解析 更新完毕netty 源码解析 更新完毕源码解析org.springframework.web.servlet.HandlerInterceptor 公共接口HandlerInterceptor,工作流接口允许定制处理程序执行链。应用程序可以为特定的处理程序组注册任意数量的现有或自定义拦截器以添加公共预处理行为而不需要修改每个处理程序实现。在适当的HandlerAdapter触发处理程序本身的执行之前将调用HandlerInterceptor。此机制可用于大量的预处理方面例如用于授权检查或用于语言环境或主题更改等公共处理程序行为。它的主要目的是允许分解出重复的处理程序代码。在异步处理场景中当主线程退出而不呈现或调用postHandle和afterCompletion回调时处理程序可能在单独的线程中执行。当并发处理程序执行完成时请求被发送回去以便继续呈现模型并再次调用此契约的所有方法。通常拦截器链是为每个HandlerMapping bean定义的共享其粒度。为了能够将某个拦截器链应用于一组处理程序需要通过一个HandlerMapping bean映射所需的处理程序。拦截器本身在应用程序上下文中定义为bean由映射bean定义通过其“拦截器”属性引用(在XML中:的)。HandlerInterceptor基本上类似于Servlet过滤器但与后者相比它只允许自定义预处理(带有禁止处理程序本身执行的选项)和自定义后处理。过滤器更强大例如它们允许交换传递到链中的请求和响应对象。请注意过滤器是在web中配置的。应用程序上下文中的HandlerInterceptor。作为基本的指导原则细粒度处理程序相关的预处理任务是HandlerInterceptor实现的候选任务特别是分解出来的公共处理程序代码和授权检查。另一方面筛选器非常适合于请求内容和视图内容处理比如多部分表单和GZIP压缩。这通常显示当需要将筛选器映射到特定的内容类型(例如图像)或所有请求时。boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;拦截处理程序的执行。在HandlerMapping确定适当的处理程序对象之后调用但在HandlerAdapter调用处理程序之前调用。DispatcherServlet在执行链中处理一个处理程序该处理程序由任意数量的拦截器组成处理程序本身位于执行链的末端。使用此方法每个拦截器可以决定中止执行链通常是发送HTTP错误或编写自定义响应。void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception;拦截处理程序的执行。在HandlerAdapter实际调用处理程序之后调用但在DispatcherServlet呈现视图之前调用。可以通过给定的ModelAndView向视图公开其他模型对象。DispatcherServlet在执行链中处理一个处理程序该处理程序由任意数量的拦截器组成处理程序本身位于执行链的末端。通过这种方法每个拦截器可以对一个执行进行后处理以执行链的相反顺序应用。void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception;请求处理完成后的回调即呈现视图后的回调。将在处理程序执行的任何结果上调用从而允许适当的资源清理。注意:只有当这个拦截器的preHandle方法成功完成并返回true时才会被调用!与postHandle方法一样该方法将在链中的每个拦截器上以相反的顺序调用因此第一个拦截器将是最后一个被调用的拦截器。org.springframework.web.servlet.AsyncHandlerInterceptor 使用在异步请求处理启动后调用的回调方法扩展HandlerInterceptor。当一个处理程序启动一个异步请求时DispatcherServlet在没有调用postHandle和afterCompletion的情况下退出就像它通常对同步请求所做的那样因为请求处理的结果(例如ModelAndView)可能还没有准备好并且将从另一个线程并发生成。在这样的场景中会调用afterConcurrentHandlingStarted从而允许实现在将线程释放到Servlet容器之前执行清理线程绑定属性等任务。当异步处理完成时请求被分派到容器进行进一步处理。在这个阶段DispatcherServlet调用预句柄、postHandle和afterCompletion。为了区分初始请求和异步处理完成后的后续分派拦截器可以检查javax.servlet。DispatcherType javax.servlet。ServletRequest是“REQUEST”或“ASYNC”。注意当异步请求超时或出现网络错误时HandlerInterceptor实现可能需要执行工作。对于这种情况Servlet容器不会分派因此不会调用postHandle和afterCompletion方法。相反拦截器可以注册以通过WebAsyncManager上的registerCallbackInterceptor和registerDeferredResultInterceptor方法跟踪异步请求。无论异步请求处理是否启动都可以对来自preHandle的每个请求主动执行此操作。void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;调用而不是postHandle和afterCompletion此时a处理程序正在并发执行。实现可以使用提供的请求和响应但是应该避免以与处理程序的并发执行冲突的方式修改它们。这种方法的典型用法是清除线程局部变量。org.springframework.web.servlet.handler.HandlerInterceptorAdapter AsyncHandlerInterceptor接口的抽象适配器类用于简化仅前/仅后拦截器的实现。Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true; }Override public void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { }Override public void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { }Override public void afterConcurrentHandlingStarted( HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { }org.springframework.web.servlet.handler.ConversionServiceExposingInterceptor 拦截器它将配置的ConversionService放在请求范围中以便在请求处理期间可用。请求属性名为“org.springframe .core.convert”。 ConversionService.class. getname()的值。private final ConversionService conversionService;conversionServiceOverride public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, IOException { request.setAttribute(ConversionService.class.getName(), this.conversionService); return true; }org.springframework.web.servlet.resource.ResourceUrlProviderExposingInterceptor 将ResourceUrlProvider实例公开为请求属性的拦截器。Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { request.setAttribute(RESOURCE_URL_PROVIDER_ATTR, this.resourceUrlProvider); return true; }org.springframework.web.servlet.handler.WebRequestHandlerInterceptorAdapter 实现Servlet HandlerInterceptor接口并包装底层WebRequestInterceptor的适配器。private final WebRequestInterceptor requestInterceptor;requestInterceptorOverride public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { this.requestInterceptor.preHandle(new DispatcherServletWebRequest(request, response)); return true; }Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { this.requestInterceptor.postHandle(new DispatcherServletWebRequest(request, response), (modelAndView ! null !modelAndView.wasCleared() ? modelAndView.getModelMap() : null)); } Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { this.requestInterceptor.afterCompletion(new DispatcherServletWebRequest(request, response), ex); }Override public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) { if (this.requestInterceptor instanceof AsyncWebRequestInterceptor) { AsyncWebRequestInterceptor asyncInterceptor (AsyncWebRequestInterceptor) this.requestInterceptor; DispatcherServletWebRequest webRequest new DispatcherServletWebRequest(request, response); asyncInterceptor.afterConcurrentHandlingStarted(webRequest); } }org.springframework.web.servlet.handler.MappedInterceptor 包含和委托对HandlerInterceptor的调用以及拦截器应该应用的include(和可选排除)路径模式。还提供匹配逻辑来测试拦截器是否应用于给定的请求路径。MappedInterceptor可以直接注册到任何AbstractHandlerMethodMapping中。此外通过AbstractHandlerMethodMapping(包括祖先ApplicationContext的)自动检测MappedInterceptor类型的bean这实际上意味着拦截器在所有处理程序映射中都是“全局”注册的。private final String[] includePatterns;includePatternsprivate final String[] excludePatterns;excludePatternsprivate final HandlerInterceptor interceptor;interceptor这里是适配器模式实现Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return this.interceptor.preHandle(request, response, handler); }Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { this.interceptor.postHandle(request, response, handler, modelAndView); }Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { this.interceptor.afterCompletion(request, response, handler, ex); }org.springframework.web.servlet.mvc.WebContentInterceptor 检查请求并准备响应的处理程序拦截器。检查支持的方法和所需的会话并应用指定的CacheControl构建器。拦截器支持的所有设置也可以在AbstractController上设置。这个拦截器主要用于对HandlerMapping映射的一组控制器应用检查和准备。 Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException {// 校验方法是否合法 checkRequest(request); String lookupPath this.urlPathHelper.getLookupPathForRequest(request); if (logger.isDebugEnabled()) { logger.debug(Looking up cache seconds for [ lookupPath ]); } CacheControl cacheControl lookupCacheControl(lookupPath); Integer cacheSeconds lookupCacheSeconds(lookupPath); if (cacheControl ! null) { if (logger.isDebugEnabled()) { logger.debug(Applying CacheControl to [ lookupPath ]); } applyCacheControl(response, cacheControl); } else if (cacheSeconds ! null) { if (logger.isDebugEnabled()) { logger.debug(Applying CacheControl to [ lookupPath ]); } applyCacheSeconds(response, cacheSeconds); } else { if (logger.isDebugEnabled()) { logger.debug(Applying default cache seconds to [ lookupPath ]); } prepareResponse(response); } return true; }检查请求方法是否合法进行缓存处理Override public void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { }Override public void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { }说在最后本次解析仅代表个人观点仅供参考。扫码进入技术微信群钉钉技术群qq技术群
http://www.zqtcl.cn/news/559972/

相关文章:

  • 如何在网站上做社交的链接毕设给学校做网站
  • 网页设计与网站建设指标点您身边的网站建设顾问
  • 个人网站的制作广州网站优化招聘
  • 做网站产生的流量费怎么算软件开发前景和收入
  • 网站空间 .de单页型网站
  • 网站建设com品牌建设的作用
  • 优质作文网站柳州做网站去哪家公司好
  • 呼和浩特网站建设价格网站建设服务器
  • 做的比较好的电商网站西安有那些做网站的公司好
  • 哪个网站可以做英语语法题智慧云建筑信息平台
  • 网站怎么做百度才会收录金乡县网站开发
  • 深圳移动网站建站网站如何做播放线路
  • 深圳网站建设q.479185700惠哪个网站可以免费设计房子
  • 迁西网站开发网站建设技术网站建
  • 网站建设与管理课程报告能够做外贸的网站有哪些
  • 浅析社区网站的建设如何建立企业网站
  • 网站建设尺寸像素是多少广州商城型网站建设
  • 重庆自助建站模板简述网络营销的特点
  • 企业网站托管一个月多少钱网页设计规范2018
  • 网站建设费用摊销会计分录合肥网站建设哪里好
  • 郑州市建设工程造价信息网站关于工程项目建设的网站
  • 网站做淘宝客收入咋样景区门户网站建设方案
  • 遵义做网站推广西安都有哪些公司
  • 万网建网站流程产品展示网站模板php
  • 新津县建设局网站网站做301
  • 网站域名续费如何建设一个简易网站
  • 网站整体迁移该怎么做wordpress 图片调用api接口
  • 网站获得流量最好的方法是什么 ( )汕头建设学校的网站
  • 网上下载的网站后台安全吗仿系统之家网站源码
  • 网站实名审核高等教材电工学久久建筑网