spring MVC

一,基本概念

spring MVC_第1张图片


1.DispatcherServlet:前端控制器。

浏览器的请求通过DispatcherServlet的分发到达合适的controller,从而生产业务数据Model,Model再通过DispatcherServlet传递给View来实现最后的页面呈现。因此MVC将数据业务逻辑和页面实现分离的核心是DispatcherServlet。

spring MVC_第2张图片


2.Controller:控制层。

调用业务逻辑生成Model的地方。


3.HandlerAdapter:适配器模式。

将各种不同类型的Handler适配成DispatcherServlet可以使用的Handler,这样DispatcherServlet就可以很轻松地调用Controller。

spring MVC_第3张图片


4.HandlerInterceptor:拦截器。

在被拦截对象的两侧加入一些处理,可在调用controller前后以及Model发送到view完成呈现之后做拦截。


5.HandlerMapping:DispatcherServlet和Controller之间的映射关系类。

作用:

A.告诉DispatcherServlet请求到来后由哪个Controller来响应。

B.在HandlerMapping做完A工作之后,它可以给DispatcherServlet一个HandlerAdapter,HandlerAdapter包括controller和HandlerInterceptor。


6.HandlerExecutionChain:执行链条。

就是第5条中的作用B提到的controller和HandlerInterceptor一起构成的一个执行链条。

spring MVC_第4张图片


7.ModelAndView:Model的具体表现形式。

spring MVC可以用Model类或者Map类等来实现Model的功能,但DispatcherServlet会将这些类都转换成ModelAndView。


8.viewResolver:视图解析器。

根据配置找出合适的视图对象返回给DispatcherServlet来调用。


9.view:视图对象。负责呈现页面。


二.spring MVC的配置


1.spring的声明:配置spring的上下文即applicationContext.xml的路径(在web.xml中配置 )

spring MVC_第5张图片


2.配置DispatcherServlet : springMVC的上下文即DispatcherServlet.xml的路径(在web.xml中配置)

spring MVC_第6张图片


3.mvc-dispatcher-servlet.xml的配置

spring MVC_第7张图片

spring MVC_第8张图片

spring MVC_第9张图片


4.applicationContext.xml的配置    

spring MVC_第10张图片

exclude-filter 表明spring上下文不需要管理Controller



三.spring MVC实操


1.spring MVC的注解

@Controller  :声明一个Controller

@RequestMapping : 映射url和方法,类级别和方法级别的RequestMapping共同组合完成对一个url映射请求的拦截

URL template  结合 @RequestParam  和 @PathVariable 两个标记 可以将url路径中的参数绑定到方法的参数

传统方法:通过HttpServletRequest 或 HttpSession获取对象

spring MVC_第11张图片

spring MVC_第12张图片

spring MVC_第13张图片


2.spring MVC数据绑定

@ModelAttrbute  :实现模型对象和页面数据的绑定

注意:表单提交数据时页面字段的name属性应当和模型对象的属性名称一致

spring MVC_第14张图片


3.JSON

spring MVC 使用ContentNegotiatingviewResolver处理相同数据的不同呈现方式

spring MVC_第15张图片

@ResponseBody :说明返回的对象会被响应所使用


ResponseEntity :spring MVC抽象出的一个实体,用泛型的方式包裹类,返回它的实例就可以返回一个响应的对象

spring MVC_第16张图片



4.单文件上传

A.配置CommonsMultipartResolver :解析上传的文件

spring MVC_第17张图片

B.上传表单需要加属性 enctype="multipart/form-data"

spring MVC_第18张图片

C.编写Controller

MultipartFile : spring MVC提供的访问上传文件的接口

spring MVC_第19张图片

你可能感兴趣的:(java,spring,mvc,数据绑定,spring,mvc,文件上传,spring,mvc,注解,IT,java,框架)