springmvc--为什么用它

说到mvc大家并不陌生,从最开始的struts到struts2,再到现在主流的springMVC,包括微软也有自己的mvc开发模式,现在的web端使用mvc已经是一个主流模式,那么我就想知道,闲杂主流的mvc(springMVC)到底好在哪里。

传统的mvc

这里写图片描述
传统的mvc如上图所示,request获取前端的数据,无论是post的对象,还是get的一大堆参数,他都获取到了,然后就是将数据请求模型处理,模型处理的结果返回给controller,之后再给视图解析器解析,最后通过response返回给页面。

springMVC

这里写图片描述
springmvc他的执行步骤如下:
第一步:发起请求到前段控制器DispatherServlet
第二步:前端控制器请求HandlerMapping查找Handler,可以根据XML配置或者注解查找。
第三步:3.处理器映射器HandlerMapping向前端返回Handler
第四步:前端控制器调用适配器处理handler。
第五步:处理器适配器处理handler。
第六步:Handler执行完后返回给适配器ModelAndView
第七步:处理器适配器HandlerAdapte向前端返回ModelAndView,ModelAndView是springMVC底层的一个对象,包含了ViewAndModel
第八步:请求视图解析器去进行视图解析,根据逻辑视图名称来解析真正的视图(jsp)
第九步:视图解析器向前端控制器返回View
第十步,前段控制器进行渲染,将模型数据(ModelAndVIew)填充到request中
第十一步:前端扣扣呢告知其向用户相应结果

组件:
1、 前端控制器DispatherServlet
a) 作用就是接收请求,相应结果,相当于中央处理器,有了DispatherServlet,就减少了其他组件的耦合度。不需要程序员开发,
2、 处理器映射器HandlerMapping
a) 根据请求的URL查找Handler
3、 处理器适配器HandlerAdapter
a) 按照特定的规则(HandlerAdapter要求的规则)执行Handler,编写Handler时按照规则去写,才能执行
4、 处理器Handler需要程序员开发

5、 视图解析器
a) 进行视图解析,根据逻辑视图名解析成真正的视图(View)
6、 视图View(需要程序员开发jsp)
a) View是一个接口,他的实现类支持不同的view类型(jsp,freemark)

优点:

spring mvc是基于方法的设计,粒度更细,但要小心把握像在servlet控制数据一样。spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3 mvc中,一个方法对应一个request上下文。而不是像struts2是基于类来开发。,spring3 mvc的验证也是一个亮点,支持JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可。

发布了176 篇原创文章 · 获赞 84 · 访问量 44万+

猜你喜欢

转载自blog.csdn.net/lovemenghaibin/article/details/51530933
今日推荐