1 / 8
文档名称:

springMVC执行过程.doc

格式:doc   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

springMVC执行过程.doc

上传人:xxj16588 2016/2/14 文件大小:0 KB

下载得到文件列表

springMVC执行过程.doc

相关文档

文档介绍

文档介绍:其实每个MVCframework的执行过程都是大同小异的,当个request过来时,它都通过一个Servlet来响应request,再根据request的路径名和配置将这个requestdispatch给一个Controller执行,最后将之返回配置文件里对应的页面。在SpringMVC里,这个Servlet的名字叫DispatchServlet。稍看一下它的源码会发现这是一很简单的类。下面是DispatchServlet的类图:简单吧,这是典型的TemplateMethod模式。每个类都会完成一些自己的本职工作,把不属于自己的工作延迟到子类来完成。这些类的子职责在下面会有分析。其实整个SpringFramework用的最多的模式就是TemplateMethod(Strategy也挺多,呵呵),也许任何Framework用的最多的都是TemplateMethod模式。Why?看看ExpertOneonOneJ2EEDesignandDevelopment吧,至少TemplateMethod和Strategy模式的分析这本书甚至比HeadfirstDesignPattern还好。我们先来看DispatchServlet的初始化执行过程分析吧:我们知道每个Servlet在Web服务器启动时都会有一个初始化的机会,这就是Servlet的init过程,这是配置Servlet的最好机会。我们可以在这个阶段干些啥事情呢?1、把初始化的那些init-param读到Servlet的属性里。我们知道Servlet的init-param是放在ServletConfig里的,我们可以用循环去取这些属性。但是每次都这么干实在太累了,干吗不把在Servlet里增加几个property,再这些init-param直放到Servlet的property里呢?呵呵,以后那些初始参数都可以直接拿来用啦,真方便。DispatchServlet的一个祖先类叫做HttpServletBean就是专门干这个的。以后假如我们要写自己的Servlet也可以直接继承HttpServletBean这个类,这样读ServletConfig的操作都省掉了,哈哈!2、从ServletContext里取出ApplicationContext,。但是不是直接拿这个ApplicationContext就足够了呢?no。我们先问一个简单的问题吧:在SpringMVC里我们是不是只能配置一个Servlet呢?Struts就是那么干的,所以在Struts里所有的request过来都会交给一个Servlet去处理。但是在SpringMVC里,我们却可以有好多个Servlet!它们可以处理不同类型的request,而且更重要的是它们的ApplicationContext不是相同的,它们共享了一个父ApplicationContext,也就是从ServletContext里取出来的那个,但是它们却会根据自己的配置作扩展,形成这个Servlet特有的ApplicationContext。这个子的Ap