SpringMVC
文章平均质量分 68
SpringMVC 源码探究、配置使用。
oxf
纵有疾风起,人生不言弃
展开
-
02.SpringMVC 初始化 - HttpservletBean
HttpservletBean基本概念在 Servlet 中,init 方法负责其初始化工作。HttpServletBean 是 DispatcherServlet 的父类,并且它也继承自 HttpServlet ,说明它们的本质都是 Servlet,继承关系如下图所示:因此 HttpServletBean 的初始化过程也在 init 方法中定义。原理分析要分析 SpringMVC 的初始化过程,原创 2016-05-11 22:33:58 · 1180 阅读 · 1 评论 -
03.SpringMVC 初始化 - FrameworkServlet
继承关系首先来看 FrameworkServlet 的继承关系,如下图所示FrameWrokServlet 继承自 HttpServletBean ,我们已经知道 HttpServletBean 负责 SrpingMVC 的初始化工作,在其 init()方法中调用了 initServletBean()方法。该方法正是由 FrameWrokServlet 来进行具体的实现。说明 FrameWrokSe原创 2016-05-12 22:11:56 · 1764 阅读 · 1 评论 -
04.SpringMVC 初始化 - DispatcherServlet
基本概念在配置 SpringMVC 的 Servlet 时,实际定义的就是 DispatcherServlet 类,它是 FrameworkServlet 的子类,具体的继承关系如下:DispatcherServlet 重写了父类的 onRefresh 方法,说明它也负责 SpringMVC 的初始化工作。原理分析首先来看该类的 onRefresh 方法,发现真正的初始化过程在 initStra原创 2016-05-15 11:31:26 · 624 阅读 · 1 评论 -
05.SpringMVC 请求处理 - FrameworkServlet
基本概念首先来看下 SpringMVC 中请求处理的大致流程:在 Servlet 中 service 方法负责请求处理。该方法在其子类 HttpServlet 中被重写。在 HttpServlet 中,通过区分不同的请求类型,而采取不同的动作,如 doGet 负责 GET 请求、doPost 负责 Post 请求等。这些方法在其子类 FrameworkServlet 中也被重写。在 Frame原创 2017-02-28 13:16:24 · 1377 阅读 · 2 评论 -
06.SpringMVC 请求处理 - DispatcherServlet
基本概念DispatcherServlet 是整个 SpringMVC 的核心,请求处理的具体细节在该类的 doService 方法中定义。原理分析下面来看该类的 doService 方法:// 在 include 请求之后清除请求属性private boolean cleanupAfterInclude = true;protected void doService原创 2017-03-02 09:14:45 · 581 阅读 · 1 评论 -
07.SpringMVC 请求处理 - HandlerExecutionChain
基本概念HandlerExecutionChain,即处理处理链。它包含了:一个处理器,即 HandlerMethod多个拦截器,即 HandlerInterceptor内部构造来看它的构造函数:private final Object handler;private HandlerInterceptor[] interceptors;private List<HandlerInterce原创 2017-03-02 09:16:51 · 4283 阅读 · 0 评论 -
08.SpringMVC 处理器 - HandlerMethod
**基本概念我们知道在 SpringMVC 中 控制器(Controller)负责对请求路径进行匹配并调用相应地执行方法。而 HandlerMethod 就表示这个方法, 但它一般也被称作处理器,即 handler。因为它身上包含了控制器信息、控制器的指定方法信息。内部构造下面来看它的构造函数,需要关注的是它的几个成员变量:public HandlerMethod(Object bean, Meth原创 2017-03-02 09:17:50 · 2258 阅读 · 0 评论 -
09.SpringMVC 拦截器 - HandlerInterceptor
基本概念Interceptor(即处理器拦截器、拦截器),类似于 Servlet 开发中的过滤器 Filter,用于对处理器(Controller)进行预处理和后处理。常见的应用场景:日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面。性能监控:有时候系统在某段时间莫名其妙的慢原创 2016-08-02 22:22:58 · 6084 阅读 · 1 评论 -
10.SpringMVC 请求处理 - HandlerMapping
基本概念在 SpingMVC 的请求转发过程中,SpingMVC 会根据请求路径找到匹配的 Controller(控制器),然后再找到控制器中的指定的【请求处理方法】。该过程由 HandlerMapping负责实现,它会根据 reqeust(请求)找到合适的 HandlerExecutionChain。首先来看 HandlerMapping 的继承关系:观察图片,下面介绍下几种常用的 Handler原创 2016-08-22 22:00:44 · 3180 阅读 · 1 评论 -
11.SpringMVC 请求处理 - HandlerAdapter
基本概念SpringMVC 通过 HandlerAdapter 的 handler 方法来调用请求处理函数。在 DispatcherServlet 中根据请求路径利用 Handlermapping 找到对应的 handler 后,首先检查当前 Ioc 容器中所有可用的 HandlerAdapter ,再利用 HandlerAdapter 中的 supports 方法找到可以使用的HandlerAda原创 2016-08-24 22:15:59 · 7106 阅读 · 1 评论 -
12.SpringMVC 视图解析 - View
View即视图,负责页面的渲染。接口定义如下:public interface View { void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception;}再来看它的继承关系(部分显示):AbstractView该类原创 2017-03-02 09:26:23 · 580 阅读 · 0 评论 -
13.SpringMVC 视图解析 - ViewResolver
基本概念所有的 MVC 框架都有一套它自己的解析视图的机制,springmvc 也不例外,它使用ViewResolver 进行视图解析,让用户在浏览器中渲染模型。Springmvc 处理视图最重要的两个接口是 ViewResolver 和 View :ViewResolver 接口在视图名称和真正的视图之间提供映射,它是一种开箱即用的技术,能够解析 JSP、Velocity 模板和 XSLT 等多原创 2016-08-16 21:55:55 · 8159 阅读 · 0 评论 -
14.SpringMVC 异常处理 - HandlerExceptionResolver
基本概念这里讲的异常处理,具体来说是控制器(controller)请求处方法的异常。在 springmvc 中可能存在着多个控制器,各个控制器又存在着众多请求处理方法。若在每个方法上都进行异常处理,那样实在是过于繁琐。因此 springmvc 提供了 HandlerExceptionResolver 接口来统一处理异常。public interface HandlerExceptionResolve原创 2016-08-07 11:20:35 · 23955 阅读 · 0 评论