发表于: 2017-12-14 02:47:11
1 592
今天完成的事情:
突击spring mvc
收获:
springmvc 是spring框架中的一个模块,算是一个前台框架,其功能和struts2 类似。
springmvc的主要关键借口有如下几个:
1、org.springframework.web.servlet.DispatcherServlet
这个相当于一个分发器,用来接收客户端传来的请求,分发给后面的mapper,并将处理后的结果返回给客户端。和struts2中的filter效果类似。
该项配置在web.xml中配置。该组件不需要我们开发。
2、服务器请求的url后,DispatcherServlet会将url传递给url映射器。
url映射器的主要功能是根据url的地址,匹配配置文件中的、或者注解中的url地址,找到正确的Handler。这一步的过程和struts中的struts.xml中配置action的意义相同。
区别在于,springmvc有基于配置文件的url映射器和基于注解方式的映射器。原理上讲,再使用springmvc框架的时候我们需要指定url映射器的,但是实际工作中基本上只会采用注解方式进行开发。该主键同样不需要我们开发,只需要我们进行选择或者配置。
采用注解开发的方式,其默认的url映射器是:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
3、第二部的url映射器的作用在于找到url所对应的Handler,这个Handler类似于struts中的Action类。区别在于Handler有几种不同的形式,或者叫实现方式,分别是实现Controller借口的Handler,实现HttpRequestHandler接口,这两个都是基于配置文件的Handler。除非特殊需求,一般不用这两种,他们有点类似servlet,每个Handler对应一个url,处理一种请求,开发效率不高。另外就是基于注解的Handler,对于这种实现方式没有任何特殊的要求,只是要在编写的类上加上注解。
@Controller 加在类名上表明这是一个Handler类,交给spring容器管理
@RequestMapping(url地址) 加到方法上,表明该url地址调用的这个Handler中的这个方法。
访问的url在执行业务逻辑完成后,Handler中的方法会返回一个ModelAndView对象。
4、Handler有另外一个叫做处理器适配器的组件进行调用。对于注解类型的Handler,必须使用固定的一种适配器,RequestMappingHandlerAdapter类进行调用。调用完成后适配器接收ModleAndView对象,并将其返回给DispactcherServlet。
5、ModleAndView对象是一个包装对象,里面封装了两部分类容,分别是Model以及View,该对象中用一个Map来保存业务逻辑处理后返回的Model对象,用一个Object来保存View对象。
6、ModelAndView 对象并不能直接交给客户端,还需要一个叫做视图配置器的组件来解析这个对象,渲染成网页放回给客户端,由于springmvc支持很多视图方式,所以这里针对每种视图有不同的视图配置解析组件,我们也只需要选择配置即可。
由于springmvc是spring框架的一部分,所以不需要和strtus2那样还需要专门的整合包。
关于如何传递参数,如何实现更复杂的上传功能,明天继续。
评论