码迷,mamicode.com
首页 > 编程语言 > 详细

01SpringMvc_初识工作流程

时间:2016-08-06 14:16:36      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:

我们首先要知道用SpringMVC开发需要什么包?

      我们需要导入springioc,springweb , springmvc相关的jar包.

       有关Spring的jar包的用途如下:

技术分享

               所以我们用Springmvc开发是的jar包如下:

                技术分享

在讲解SpringMVC的工作流程之前先介绍下Struts2.的工作流程。

技术分享

 

第一步:发送请求到服务器,产生了HttpServletRequest和请求,这个请求经过了other filters过滤器和Strute2的核心过滤器之后来到了ActionMapper(Struts2特有的)。

第二步:由Struts2判断一下这个请求需不需要Struts2来处理,比如hello.jsp不需要走Struts2.但是Hello.action就需要走Struts2。

第三步:确定需要走Struts2之后,这个请求来到核心过滤器,然后核心过滤器把它交给ActionProxy,交给ActionProxy的目的是为了让ActionProxy去调用ConfigurationManager和ActionMapping去加载struts.xml文件。加载了struts.xml之后,ActionProxy就知道改把这个请求具体交给哪个对应的Action类去处理了

第四步:ActionProxy创建代理,。

第五步:依次走18个过滤器。为什么走18个过滤器呢。因为整个Struts2有32个过滤器,但是默认的过滤器只有18个。每个拦截器做不同的事情。

第六步:调用反射去调用相应的Action.把对应的请求转到具体的Action.比如com.guigu.shen.hello.action这样

第七步:根据Action中的业务方法的处理结果,比如返回“ok”这样子。然后去找相应jsp页面。比如ok.jsp。

第八步:在依次的走逆序的拦截器(18个),最后把处理的结果,数据啊什么的给HttpServletRespon中。在ok.jsp就可以根据HttpServletRespon对象把数据取出来,显示在

界面上。

 

 

 

每个框架都有自己的工作流,我们看一下SpringmVC的工作流。

技术分享

 

对上图做讲解:

      

第一步:.假设我们有一个action,比如叫做hello.action。这个请求经过DispatcherServlect,k可以看到凡是*.actio都会被拦截下来(当然也设为是*.do这样,凡是以do为结尾的Action都会被拦截下来),

第二步:这个请求给映射器,当映射器发现这个有点难处理,就把这个请求交给适配器去处理。为什么会有适配器呢?

因为我们对比一下Struts2中的Action来说,每一个Action都会去extends ActionSupport,这样相对于很好识别。但是SpringMvc的Action不是这样的,SpirngMvc的控制器

有些事继承(extends),有些是实现(implemens),有些干脆就是普通类,五花八门,什么都有,所以就有了适配器,让适配器去识别SpingMvc的控制器。

适配器找到了HelloAction.然后执行里面的业务方法。

第三步:HelloAcition执行后返回一个ModelAntView这么一个对象。

第四步:再把ModelAntView这个对象传给View(视图解析器),视图解析器会专门去解析这个对象。

第五步:把第四步解析得到的数据传给DispatcherServlet,然后在传给jsp页面,把数据显示在jsp页面上。

 

01SpringMvc_初识工作流程

标签:

原文地址:http://www.cnblogs.com/shenxiaoquan/p/5743882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!