首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringMVC 架构分析

一、SpringMVC

SpringMVC是针对web开发提出的MVC框架,关于MVC,这里就不多讲了,Model层,View层和Controller。

二、SpringMVC流程

本文主要对SpringMVC的架构和流程进行简单讲解,并且结合一个HelloWorld来分析。

先上图:

从上图可以看出,springMVC为了解耦,将MVC三个模块分开,引入了一个被称为前端控制器的东西(DispatcherServlet),就拿医院来分析,如果各个科室例如儿科,妇科,内科等是controller的话,那么前台就是DispatcherServlet。当一个请求到达的时候,会先经过DispatcherServlet,然后由DispatcherServlet来去查找HandlerMapping,来决定应该把这个请求分配给哪个controller去处理。

在代码中,DispatcherServlet就是一个servlet,需要在web.xml中进行注册:

在dispatcher-servlet.xml中,主要就是去扫描所有的controller,然后决定把请求交给哪个controller去处理。

继续按照流程走,当请求被交给具体的controller的时候,controller会调用相应的service进行处理,controller会将得到的结果通过ModelAndView的形式返回给前端控制器DispatcherServlet。

如下图所示,截取自某个controller中的方法:

可以看到,printHello返回的方法是一个Jsp文件的名字,明天pringHello方法中,往ModelMap的对象中存入了数据。

继续按照流程走,当前端控制器拿到ModelAndView后,会选择ViewResolver去解析View。ViewResolver同样被配置在dispatcher-servlert.xml文件中:

其中定义了前缀属性来标明jsp文件的路径,后缀属性指定返回的view用jsp的形式展示出来。

最后,将从controller中获得的model展示在view(jsp文件中):

jsp文件中,通过$的方式取得controller传回来的view。

最后,JSP文件会通过response流返回给浏览器,进而展现给用户。这就是一个SpringMVC的架构和流程。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180307G1H7AA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券