龙空技术网

SpringMVC详细

小森哥疯狂数学 940

前言:

目前各位老铁们对“springmvc获取表单的几种方式”可能比较重视,各位老铁们都需要知道一些“springmvc获取表单的几种方式”的相关知识。那么小编同时在网上搜集了一些有关“springmvc获取表单的几种方式””的相关文章,希望我们能喜欢,大家快快来了解一下吧!

#「闪光时刻」主题征文 二期#

MVC是什么?

mvc是模型(model)- 视图(view)- 控制器(controller)的缩写,它是一个设计模式。这三个部分以最少的耦合协同工作,从提高应用的可扩展性及可维护性

mvc的特点

·多个视图可以对应一个模型。按mvc设计模式,一个模型对应多个视图,可以减少代码的复制及代码的维护量,这样,一旦模型发生改变,也易于维护。

·模型返回的数据与显示逻辑分离。模型数据可以应用任何的显示技术,例如,使用JSP页面、Velocity模版或者直接产生Excel文档等。

·应用被分隔为三层,这降低了各层时间的耦合,提供了应用的可扩展性。

·控制层把不同的模型和不同的视图组合在一起,完成不同的请求。因此,控制层可以说包含了用户请求权限的概念。

springmvc运行流程

1.用户向服务器发送请求,请求被Spring的前端控制器DispatcherServlet截获。

2.DispatcherServlet对请求URL(统一资源定位符)进行解析,得到URI(请求资源标识符)。然后根据URI,调用HandlerMapping获得该Handler配置的所有相关的对象,包括Handler对象以及Handler对象对应的拦截器,这些对象会被封装到一个HandlerExecutionChain对象当中返回。

3.DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter。HandlerAdapter的设计符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是,代码可复用性高。HandlerAdapter会被用于处理多种Handler,调用Handler实际处理请求的方法。

4.提取请求中的模型数据,开始执行Handler(Controller)。在填充Handler的入参过程中,根据配置,Spring将帮你做一些额外的工作。

5.Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象,ModelAndView对象中应该包含视图名或视图名和模型。

6.根据返回的ModelAndView对象,选择一个合适的ViewResolver(视图解析器)返回给DispatcherServlet。

7.ViewResolver结合Model和View来渲染视图。

8.将视图渲染结果返回给客户端。

SpringMVC结构

SpringMVC中Servlet一共有三个层:HttpServletVBean、FrameworkServlet和DispatcherServlet。

HttpServletBean直接继承自java的HttpServlet,其作用是将Servlet中配置的参数设置到相应的属性;

FrameworkServlet初始化了WebApplicationContext;

DispatcherServlet初始化了自身的9个组件

protected void initStrategies(ApplicationContext context) {

initMultipartResolver(context); // 初始化上传文件解析器

initLocaleResolver(context); // 初始化本地化解析器

initThemeResolver(context); // 初始化主题解析器

initHandlerMappings(context); // 初始化处理器映射器,将请求映射到处理器

initHandlerAdapters(context); // 初始化处理器适配器

initHandlerExceptionResolvers(context); // 初始化处理器异常解析器,如果执行过程中遇到异常将交给HandlerExceptionResolver来解析

initRequestToViewNameTranslator(context); // 初始化请求到视图名称解析器

initViewResolvers(context); // 初始化视图解析器,通过ViewResolver解析逻辑视图名到具体视图实现

initFlashMapManager(context); // 初始化flash映射管理器

}

SpringMVC特点

·SpringMVC拥有强大的灵活性、非侵入性和可配置性。

·SpringMVC提供了一个前端控制器DispatcherServlet,开发者无需额外开发控制器对象

·SpringMVC分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析器,等等,每一个功能实现由一个专门的对象负责完成。

·SpringMVC可以自动绑定用户输入,并正确地转换数据类型。

·SpringMVC使用一个名称/值的Map对象实现更加灵活的模型数据传输。

·SpringMVC内置了常见的校验器,可以校验用户输入,如果校验不通过,则重定向会输入表单。输入校验是可选的,并且支持编程方式及声明方式。

标签: #springmvc获取表单的几种方式 #springmvc spring #springmvc怎么用 #springmvc如何使用