SpringMVC是一个非常优秀的前端控制框架,是一种基于Java实现了MVC模式的WEB轻量级的框架,我们之所以使用框架,都是因为可以帮我们省略大部分的代码,可以给我们的开发带来方便.
优点:
让我们能非常简单的设计出干净的Web层和薄薄的Web层;
√进行更简洁的Web层的开发;
√天生与Spring框架集成(如IoC容器、AOP等);
√提供强大的约定大于配置的契约式编程支持;
√能简单的进行Web层的单元测试;
√支持灵活的URL到页面控制器的映射;
√非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map
数据结构实现,因此很容易被其他框架使用);
√非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API;
√提供一套强大的JSP标签库,简化JSP开发;
√支持灵活的本地化、主题等解析;
√更加简单的异常处理;
√对静态资源的支持;
√支持Restful风格。
内部处理请求的过程:
当客户端发来一个请求后,会由SpringMVC中的核心控制器DispatcherServlet接受该请求(这是SpringMVC的核心控制器,该控制器主要责任在于接收客户端发出的请求,但是不会处理请求),然后由核心控制器DisparcherServlet调用映射控制器(映射控制器主要分两种,一种是BeanNameUrlHandlerMapping,另一种是SimpleUrlHandlerMapping),根据映射控制器中的配置把请求交给对应的业务控制器来具体的处理这个请求,并且返回一个ModelAndView模型与视图数据给核心控制器,然后由核心控制器调用视图解析器,然后把数据和解析出来的页面返回到客户端,完成响应.