1.谈谈你对SpringMVC的理解
SpringMVC是属于Spring Framework生态里面的一个模块,它是在Servlet的基础上构建并且使用了mvc模式设计的一个Web框架它的主要目的是为了去简化传统的Servlet+JSP模式下的Web开发方式,其次Spring mvc 的整个架构设计,是对Java Web里面的mvc框架模式做了一些增强和扩展。
主要体现几个方面:
1.把传统MVC框架里面的Controller控制器做了拆分,分成了前端控制器DispatcherServlet 和后端控制器Controller。
2.把Model模型拆分成业务层Service和数据访问层Repository。
3.在视图层,可以支持不同视图,比如Freemark,vekocity,JSP等等。
所以Springmvc天生就是为了MVC模式而设计的,因此在开发MVC应用的时候会更加方便灵活。
Springmvc的整体工作流程:
浏览器请求首先回去经过Springmvc里面的核心控制器叫DispatcherServlet他主要是把请求分发到对应的Controller里面,而Controller里面处理完业务逻辑之后,会返回一个ModelAndView,然后DispatcherServlet会去寻找一个或者多个ViewResolver的视图解析器找到ModelAndView指定的视图并且把数据展示到客户端。
2.SpringMVC中的返回值
返回值类型:String、void、ModelAndView
1)字符串
Controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址,将资源发送给浏览器。如果想要发送数据需要在方法上加上@ResponseBody表示该Sring返回的是数据。
2)viod
返回值为void时,将经过视图解析武器,此时视图解析器将会使用拼接Controller的映射形成页面地址。
3)ModelAndView
ModelAndView是SpringMVC提供的一个对象,该对象也可以用作控制器方法的返回值。
该对象中有两个方法:
addObject():添加模型到该对象中。
setViewName():用于设置逻辑视图名称。
4)Objeck
Object表示数据,和视图无关,可以使用对象表示数据,对象有属性,属性就是数据。
5)对象数组
返回的是json数组