springMVC
文章平均质量分 63
_lrs
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
springmvc源码学习(三十三)请求出错时浏览器误报跨域问题
目录前言一、现象二、跨域过滤器三、分析四、解决方式前言项目中定义了跨域过滤器,有些接口请求时出现错误,浏览器上却显示了跨域错误。一、现象Access to XMLHttpRequest at 'http://192.168.100.73:7901/demo/ftpFile/upload?project=1`1&projectVersion=11&relatedSoftware=CppUnit%E8%A2%AB%E6%B5%8B%E4%BB%B6&unit=11&..原创 2022-01-02 22:57:15 · 1265 阅读 · 0 评论 -
springmvc源码学习(三十二)ErrorPage全局异常处理
目录前言一、ErrorPage初始化二、ErrorPage处理流程三、自定义ErrorPage前言@ControllerAdvice 全局异常处理 和 自定义HandlerExceptionResolver 解析异常,这两种方式只能处理在处理请求请求到达了 DispatcherServlet ,并且出现了异常后进入processDispatchResult( ) 方法。这两种方式不适用的场景:1、请求没有到达 DispatcherServlet 的核心流程,如在 filter 中抛出异常;..原创 2022-01-02 22:09:33 · 2477 阅读 · 0 评论 -
springmvc源码学习(三十一)自定义HandlerExceptionResolver
目录前言一、HandlerExceptionResolver二、自定义 HandlerExceptionResolver三、注册前言Springmvc 中 异常解析器的默认实现有 ExceptionHandlerExceptionResolver、ResponseStatusExceptionResolver和DefaultHandlerExceptionResolver 等,都实现同一的接口 HandlerExceptionResolver。一、HandlerExceptionResolv..原创 2022-01-02 13:50:31 · 449 阅读 · 0 评论 -
springmvc源码学习(三十)@ControllerAdvice 全局异常处理
目录前言一、示例二、原理前言在请求到达了 DispatcherServlet 的处理流程,进入 doDispatch( ) 以及后续流程处理业务的过程中出现异常,会进入到 processDispatchResult( ) 处理异常,此时,如果定义了@ControllerAdvice、@RestControllerAdvice 对应的方法能够处理该异常,则进入对应的方法进行异常处理。一、示例1、返回值结构:@Data@ToString(callSuper = true)@Acces..原创 2022-01-02 12:11:25 · 587 阅读 · 0 评论 -
springmvc源码学习(二十九)异常解析器HandlerExceptionResolver
目录前言一、HandlerExceptionResolver的初始化二、异常的处理流程前言HandlerExceptionResolver用于处理在请求处理过程中抛出的异常。一、HandlerExceptionResolver的初始化1、在WebMvcConfigurationSupport中定义了@Bean HandlerExceptionResolver @Bean public HandlerExceptionResolver handlerExceptionResolv..原创 2022-01-01 23:36:52 · 1112 阅读 · 0 评论 -
springmvc源码学习(二十八)解决跨域的几种方式
目录前言一、跨域二、解决1、CorsFilter2、实现 WebMvcConfigurer3、实现 HandlerInterceptor前言。一、跨域是由于浏览器的同源策略限制,同源策略是一个重要的安全策略,会阻止一个域的javascript脚本和另外一个域的内容进行交互。一个请求url的协议(protocol)、域名(host)、端口(port)都要相同,其中有一个不同都会产生跨域问题。二、解决1、CorsFilter(1)自定义 CustomCorsFilterpublic ..原创 2022-01-01 20:18:44 · 1260 阅读 · 0 评论 -
springmvc源码学习(二十七)异步任务超时异常的执行流程
目录前言一、示例二、源码分析总结前言本文分析异步任务出现超时及异常的情况时的处理流程。一、示例设置超时时间为2s,但任务需要执行10s @ApiOperation(value = "test", notes = "test") @GetMapping(value = "/test", produces = {MediaType.APPLICATION_JSON_VALUE}) public DeferredResult test() throws ValidData..原创 2021-10-23 14:40:46 · 1186 阅读 · 0 评论 -
springmvc源码学习(二十六)异步请求管理器WebAsyncManager异步任务执行流程
目录前言一、回顾二、异步任务分发异步任务执行2.读入数据总结前言接着上一篇进行分析,在异步任务创建完,那接下来springmvc会去处理该异步任务。一、回顾(1)上一篇中,在请求完接口,生成了一个调度任务dispatchTask,存储在HttpServerExchange中dispatchTask: new Runnable() { @Override public void run() { exchan..原创 2021-10-21 20:56:02 · 856 阅读 · 0 评论 -
springmvc源码学习(二十五)异步请求管理器WebAsyncManager异步任务初始化
目录前言一、示例二、原理1.引入库2.读入数据总结前言以接口的返回值为DeferredResult为例来分析一下WebAsyncManager的执行流程。一、示例 @ApiOperation(value = "test", notes = "test") @GetMapping(value = "/test", produces = {MediaType.APPLICATION_JSON_VALUE}) public DeferredResult test() thr..原创 2021-10-12 23:03:56 · 585 阅读 · 0 评论 -
springmvc源码学习(二十四)异步请求管理器WebAsyncManager初始化
目录前言一、初始化二、使用步骤1.引入库2.读入数据总结前言。一、初始化(1)在请求到来时,会调用DispatcherServlet的doService方法,在调用该方法之前会进入FrameworkServlet的processRequest方法protected final void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, I..原创 2021-10-10 22:17:40 · 1230 阅读 · 1 评论 -
springmvc源码学习(二十三)处理异步任务的HandlerMethodReturnValueHandler
目录前言一、AsyncTaskMethodReturnValueHandler二、CallableMethodReturnValueHandler三、StreamingResponseBodyReturnValueHandler四、DeferredResultMethodReturnValueHandler前言springmvc支持异步的方式返回数据,处理异步任务的HandlerMethodReturnValueHandler有AsyncTaskMethodReturnValueHandler、C..原创 2021-09-20 22:51:44 · 386 阅读 · 0 评论 -
springmvc源码学习(二十二)StreamingResponseBody
目录前言一、StreamingResponseBody二、示例三、原理前言用于处理异步请求时,将返回值直接写入响应流中,而不用一直持有Servlet容器线程。一、StreamingResponseBody@FunctionalInterfacepublic interface StreamingResponseBody { /** * A callback for writing to the response body. * @param outputStream the ..原创 2021-09-20 19:34:12 · 5512 阅读 · 0 评论 -
springmvc源码学习(二十一)HandlerMethodReturnValueHandler
目录前言一、HandlerMethodReturnValueHandler二、ModelAndViewMethodReturnValueHandler三、ModelMethodProcessor2.读入数据总结前言HandlerMethodReturnValueHandler用于对接口返回值的处理。提示:以下是本篇文章正文内容,下面案例可供参考一、HandlerMethodReturnValueHandlerpublic interface HandlerMethodReturnValue..原创 2021-09-19 20:16:18 · 398 阅读 · 0 评论 -
springmvc源码学习(二十)对响应数据进行压缩原理
目录前言一、配置二、原理1.参数的注入2.读入数据总结前言为了节省带宽,在响应数据比较大的情况下,可以对响应数据进行压缩,返回给前端页面压缩数据。一、配置# 开启压缩server.compression.enabled=trueserver.compression.mime-types=application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plainserver..原创 2021-09-14 20:40:50 · 969 阅读 · 0 评论 -
springmvc源码学习(十九)FilterRegistrationBean的原理
目录一、pandas是什么?二、流程分析1.加载ServletContextInitializer总结一、pandas是什么?二、流程分析1.加载ServletContextInitializer(1)项目中使用的服务是undertow,所以就以服务undertow为例,服务创建工厂UndertowServletWebServerFactory中的内部类Initializer,实现了ServletContainerInitializer接口,接口中就一个onStartup( )方法,会在服务创建原创 2021-08-29 21:39:58 · 1522 阅读 · 1 评论 -
springmvc源码学习(十八)@ModelAttribute的使用及原理
目录前言一、使用二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、使用可以通过给Model添加属性,也可以通过方法上注解@ModelAttribute来指定model的属性名称,返回值会作为属性值,下面方法执行后,在springmvc中ModelMap就会存在两个model //指定返回..原创 2021-08-15 21:42:26 · 720 阅读 · 0 评论 -
springmvc源码学习(十七)@MatrixVariable的使用及原理
目录前言一、使用单个参数多个参数二、原理解析路径参数使用参数值三、配置总结前言@MatrixVariable可以从url中获取路径参数。一、使用单个参数接口方法: @ApiOperation(value = "测试@MatrixVariable", notes = "单个参数") @GetMapping(value = "/matrix/{param}", produces = {MediaType.APPLICATION_JSON_VALUE}) public Res..原创 2021-08-13 22:16:59 · 948 阅读 · 0 评论 -
springmvc源码学习(十六)AbstractNamedValueMethodArgumentResolver
目录前言一、AbstractNamedValueMethodArgumentResolver二、PathVariableMethodArgumentResolver三、RequestParamMethodArgumentResolver四、RequestHeaderMethodArgumentResolver五、RequestAttributeMethodArgumentResolver六、ServletCookieValueMethodArgumentResolver七、SessionAttribut..原创 2021-08-07 19:14:48 · 937 阅读 · 0 评论 -
springmvc源码学习(十五)ObjectMapper的注册
目录前言一、JacksonObjectMapperConfiguration二、JacksonObjectMapperBuilderConfiguration三、Jackson2ObjectMapperBuilderCustomizerConfiguration四、StandardJackson2ObjectMapperBuilderCustomizer总结前言。一、JacksonObjectMapperConfiguration创建@Bean ObjectMapper ,通过Jackso..原创 2021-08-05 22:25:44 · 1322 阅读 · 0 评论 -
springmvc源码学习(十四)RequestResponseBodyMethodProcessor处理请求参数
目录前言一、HandlerMethodArgumentResolver二、参数解析流程1.supportsParameter( )2.resolveArgument( )三、MappingJackson2HttpMessageConverter前言RequestResponseBodyMethodProcessor。一、HandlerMethodArgumentResolverRequestResponseBodyMethodProcessor实现了接口HandlerMethodArgum..原创 2021-08-04 21:20:23 · 1641 阅读 · 0 评论 -
springmvc源码学习(十三)ShallowEtagHeaderFilter
目录前言一、注册二、流程总结前言ShallowEtagHeaderFilter用于处理Etag,HTTP1.1用ETag来判断请求的文件是否被修改,如果未修改则返回304,让浏览器使用缓存的数据。一、注册@Configurationpublic class FilterConfiguration { @Bean public FilterRegistrationBean filterTestRegistrationBean(){ FilterRegist..原创 2021-08-01 20:55:42 · 426 阅读 · 0 评论 -
springmvc源码学习(十二)缓存Last-Modified
目录前言一、引入二、使用三、原理分析前言本文分析常用的@Controller中方法中实现Last-Modified的功能一、引入RequestMappingHandlerAdapter.java /** * This implementation always returns -1. An {@code @RequestMapping} method can * calculate the lastModified value, call {@link WebRequest#c..原创 2021-07-31 21:01:50 · 394 阅读 · 0 评论 -
springmvc源码学习(十一)resourceHandlerMapping
**加粗样式提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、resourceHandlerMapping二、ResourceHttpRequestHandler三、HttpRequestHandlerAdapter总结前言resourceHandlerMapping提供了资源的访问。提示:以下是本篇文章正文内容,下面案例可供参考一、resourceHandlerMapping@Nullable public HandlerMapping resource原创 2021-07-29 22:03:16 · 1588 阅读 · 0 评论 -
springmvc源码学习(十)viewControllerHandlerMapping
目录前言一、viewControllerHandlerMapping二、SimpleControllerHandlerAdapter三、示例总结前言viewControllerHandlerMapping可以提供访问url和实际url的映射。一、viewControllerHandlerMappingWebMvcConfigurationSupport.java@Beanpublic HandlerMapping viewControllerHandlerMapping( @Qu..原创 2021-07-28 23:29:46 · 359 阅读 · 0 评论 -
springmvc源码学习(九)BeanNameUrlHandlerMapping
目录前言一、BeanNameUrlHandlerMapping实例化二、使用步骤1.引入库2.读入数据总结前言BeanNameUrlHandlerMapping间接继承了ApplicationContextAware。提示:以下是本篇文章正文内容,下面案例可供参考一、BeanNameUrlHandlerMapping实例化BeanNameUrlHandlerMapping间接继承了ApplicationContextAware,因此创建bean的过程中会回调initApplication..原创 2021-07-27 23:11:23 · 493 阅读 · 0 评论 -
springmvc源码学习(八)RequestMappingHandlerAdapter
目录前言一、getHandler( )二、使用步骤1.引入库2.读入数据总结前言。前面分析过RequestMappingHandlerMapping的初始化过程,解析了@Controller等注解信息,将Controller访问路径与方法信息缓存起来,下面分析一下获取过程。一、getHandler( )(1)getHandler( )示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import n..原创 2021-07-25 20:39:33 · 2323 阅读 · 0 评论 -
springmvc源码学习(七)DispatcherServlet请求流程分析
目录前言一、doService( )二、doDispatch( )总结前言。一、doService( )将一些属性放入request中,如WebApplicationContext、localeResolver、themeResolver等,之后调用doDispatch( )方法进行请求的分发。protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exceptio..原创 2021-07-25 17:46:06 · 230 阅读 · 0 评论 -
springmvc源码学习(六)MultipartFilter
目录前言一、MultipartFilter源码二、 MultipartFilter注册前言MultipartFilter是以filter的方式对文件上传请求进行解析,将请求转换成MultipartHttpServletRequest,在请求到达DispatcherServlet后,就能使用解析好的请求。一、MultipartFilter源码(1)doFilterInternal( )@Override protected void doFilterInternal( HttpSe..原创 2021-07-24 18:59:49 · 856 阅读 · 0 评论 -
springmvc源码学习(五)MultipartHttpServletRequest 文件上传
上传文件接口如: @PostMapping("/uploadData") public ResponseEntity uploadData(@RequestBody MultipartFile file) throws Exception { ...... }当访问上面接口时,请求会进入到DispatcherServlet的doService( ),再进入到doDispatch( ),首先会进行文件上传请求的处理(1)doDispatch( )protected void doDis原创 2021-07-24 15:00:12 · 3102 阅读 · 0 评论 -
springmvc源码学习(四)MultipartAutoConfiguration
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2021-07-21 21:49:59 · 1844 阅读 · 0 评论 -
springmvc源码学习(三) DispatcherServlet初始化过程
目录前言一、执行时机二、执行流程前言在创建容器过程中或当请求来的时候,容器会调用一次DispatcherServlet的init方法,init只会被调用一次。一、执行时机容器在创建过程中初始化,会执行createServlet( )public void createServlet() throws ServletException { if (permanentlyUnavailable) { return; } ..原创 2021-07-19 22:04:05 · 482 阅读 · 1 评论 -
springmvc源码学习(二)DispatcherServletAutoConfiguration
目录DispatcherServletAutoConfigurationDispatcherServletAutoConfigurationDispatcherServletAutoConfiguration包含了四个内部类:(1)DispatcherServletConfiguration:用于注册DispatcherServlet和MultipartResolver(2)DispatcherServletRegistrationConfiguration :用于注册DispatcherSe..原创 2021-07-18 19:01:17 · 405 阅读 · 0 评论 -
springmvc源码学习(一)RequestMappingHandlerMapping
目录前言一、RequestMappingHandlerMapping实例化二、使用步骤1.引入库2.读入数据总结前言RequestMappingHandlerMapping用于。提示:以下是本篇文章正文内容,下面案例可供参考一、RequestMappingHandlerMapping实例化(1)WebMvcRequestHandlerProvider在servlet的web环境下会加载该配置类,在类构造方法执行时,会初始化三个参数,其中一个参数是handlerMappings,此时对应的..原创 2021-07-18 10:27:38 · 1129 阅读 · 1 评论
分享