zl程序教程

SpringMVC 源码总结篇

  • SpringMVC源码总结(四)由StringHttpMessageConverter引出的客户端服务器端之间的乱码过程分析

    SpringMVC源码总结(四)由StringHttpMessageConverter引出的客户端服务器端之间的乱码过程分析

    当访问 http://localhost:8080/string?name=aaa时,浏览器看到的是乱码:  分析过程:  有了上一篇文章的知识,便可以知道原因。首先由RequestMappingHandlerAdapter来调度执行,由于是@ResponseBody,所以从所有的已注册的HandlerMethodReturnValueHandler中找到了@ResponseBody的支持者Re

    日期 2023-06-12 10:48:40     
  • SpringMVC源码总结(五)Tomcat的URIEncoding、useBodyEncodingForURI和CharacterEncodingFilter

    SpringMVC源码总结(五)Tomcat的URIEncoding、useBodyEncodingForURI和CharacterEncodingFilter

    继续上一章节的乱码问题。上一篇文章仅仅说了设置Tomcat的URIEncoding可以解决乱码问题,这篇文章便会讲述这一背后的内容。首先说明下,光看是没用的,要多实验实验。  目前我的tomcat版本为:7.0.55,spring所有文章的版本始终为4.0.5  本文章会从tomcat的源码角度来解析Tomcat的两个参数设置URIEncoding和useBodyEncodingForURI。

    日期 2023-06-12 10:48:40     
  • SpringMVC源码总结(六)mvc:annotation-driven中的HandlerMethodReturnValueHandler

    SpringMVC源码总结(六)mvc:annotation-driven中的HandlerMethodReturnValueHandler

    经过了两篇的乱码说明,要重新回到mvc:annotation-driven标签中,继续说说HandlerMethodReturnValueHandler的使用,下一篇文章主要说说HttpMessageConverter。  HandlerMethodReturnValueHandler是RequestMappingHandlerAdapter用来处理当含有@RequestMapping的方法调度

    日期 2023-06-12 10:48:40     
  • SpringMVC源码总结(八)类型转换PropertyEditor的背后

    SpringMVC源码总结(八)类型转换PropertyEditor的背后

         * Invoke the {@link RequestMapping} handler method preparing a {@link ModelAndView}             HttpServletResponse response, HandlerMethod handlerMethod) throws Exception {         ServletWebR

    日期 2023-06-12 10:48:40     
  • SpringMVC源码总结(九)HandlerMethodArgumentResolver介绍

    SpringMVC源码总结(九)HandlerMethodArgumentResolver介绍

    本文章主要介绍HandlerMethodArgumentResolver在SpringMVC中的使用,介绍几个HandlerMethodArgumentResolver具体的使用情况,然后说明HandlerMethodArgumentResolver的注册来源以及如何自定义注册。  首先具体看下请求映射到的handler的对应的映射函数的参数形式有哪些:  HandlerMethodArgum

    日期 2023-06-12 10:48:40     
  • SpringMVC源码总结(十)自定义HandlerMethodArgumentResolver

    SpringMVC源码总结(十)自定义HandlerMethodArgumentResolver

    即使用@RequestBody来接受这样的参数。下面还要说说这样做的两个问题,你或许可以试猜一下:  使用form表单来进行提交,运行:  问题一:  首先会遇到415 Unsupported Media Type,如下:  我们的form表单默认是以application/x-www-form-urlencoded方式提交的,而@RequestBody又采用的是RequestRespons

    日期 2023-06-12 10:48:40     
  • SpringMVC源码总结(十一)mvc:interceptors拦截器介绍

    SpringMVC源码总结(十一)mvc:interceptors拦截器介绍

    正常情况下,对于preHandle就是在在处理函数之前先执行,然后再执行处理函数,接着执行postHandle,最后再执行afterCompletion。afterCompletion无论是否出错是肯定要执行的,而postHandle则不是,不一定会执行。之后看源代码就知道他们的执行情况。  AsyncHandlerInterceptor接口则增添了afterConcurrentHandling

    日期 2023-06-12 10:48:40     
  • SpringMVC源码总结(十二)ViewResolver介绍

    SpringMVC源码总结(十二)ViewResolver介绍

                        mv = ha.handle(processedRequest, response, mappedHandler.getHandler());             processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException);      

    日期 2023-06-12 10:48:40     
  • SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门

    SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门

    刚接触SpringMVC,对它的xml文件配置一直比较模模糊糊,最近花了一点时间稍微看了下源代码,再加上调试,开始逐渐理解它,网上的类似的内容有很多,写本文主要是自己加深一下理解。本文适合用过SpringMVC的开发者,言归正传,首先搭建一个最简单的工程体验一下。 该工程是基于maven的,pom配置不再说明,所使用的spring版本4.0.5。 首先是web.xml文件配置

    日期 2023-06-12 10:48:40