SpringMVC(二)原理

打印 上一主题 下一主题

主题 996|帖子 996|积分 2988

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目录

一、配置Maven(为了提升速度)
二、流程&&原理
SpringMVC中心控制器
完备流程:

一、配置Maven(为了提升速度)

在SpringMVC(一)配置-CSDN博客的配置中,导入Maven会非常慢,这是由于里面的一些jar包来自国外。所以在此手动配置一下maven:
1.自行下载apache-maven后将其解压缩到D盘

2.在D:盘目录下创建一个新的空文件夹,命名为maven:

 3.点开项目的【文件】-->【设置】(这里的idea是中文版本的,正常版本应该是【File】-->【setting】):

4.找到构建、执行、摆设下面的构建工具中的Maven:

5.点击改变Maven的主路径,选择已经下载好的D:盘apache-maven,然后点击确定。
 6.点击确定成功后,这里就会自动更新成我们创建的maven空文件夹:

 7.点击重写,选择D:盘apache-maven下conf下的logging下的setting.xml,点击确定。

8.完成这些后点击大的确定,回到pom.xml文件革新,以后再导入依靠或是配置maven文件就更快了。
二、流程&&原理

现在在SpringMVC(一)配置-CSDN博客实现的基础上看一下实现的原理。
首先回想一下servlet是如何处置惩罚合同http哀求的:

 http哀求打过来,随后根据通过web.xml文件(在eclipse中被注解代替了--这两者本质是一种功能),去到达不同的地址。
而在SpringMVC框架中只是重新利用web.xml文件实现这个功能,在servlet中,web.xml必要去逐一映射,但是在SpringMVC框架中,web.xml文件做了一个配置:

通过dispatcherServlet去实现自动哀求分发,“/”体现所有,即所有的哀求都会打到dispatcherServlet中。
SpringMVC中心控制器

Spring的web框架围绕DispatcherServlet 【servlet调理】设计
DispatcherServlet的作用是将哀求发送到不同的处置惩罚器

入门案例的执行流程
1. 当启动Tomcat服务器的时候,由于配置了load-on-startup标签,所以会创建DispatcherServlet对象,就会加载springmvc.xml配置文件
2. 开启了注解扫描,那么HelloController对象就会被创建
3. 从index.jsp发送哀求,哀求会先到达DispatcherServlet核心控制器,根据配置@RequestMapping注解找到
执行的具体方法
4. 根据执行方法的返回值,再根据配置的视图剖析器,去指定的目录下查找指定名称的JSP文件
5. Tomcat服务器渲染页面,做出响应
SpringMVC官方提供图形
【这张图⭐--口试】

入门案例中的组件分析
1. 前端控制器(DispatcherServlet)
2. 处置惩罚器映射器(HandlerMapping)
3. 处置惩罚器(Handler)----一个又一个的方法
4. 处置惩罚器适配器(HandlAdapter)
5. 视图剖析器(View Resolver)
6. 视图(View)
就着springmvc.xml文件分析一下:

①扫描的其实就是servlet文件,现在打开HelloController看一眼:

 1.Spring创建对象的方式
2.@RequestMapping地址映射
没有标注的时候默认是GET,当然可以通过下面这种方式指定具体是哪个方法。

 3.这里返回"suc",肯定不是一串字符串这么简朴,这里面临应的跟显然是前端界面:

那么为什么这里可以以这种格式书写呢? 
这就牵扯到springmvc.xml文件③这一部分了:

前缀是/html/,后缀是.html,所以return时,返回的其实是,/html/suc.html,即一个前端界面。
完备流程:

运行项目时,首先会执行到web.xml文件中的:

即去到index.html文件:

也就是这里:

当点击入门程序时,就会触发这个哀求;现在来看这个哀求出自那边:
 前面已经讲过了,这里的return现实上是return了一个html目录下的suc.html文件。
   同时从hello.do到return的步调,这里也是这一步操作(至于为什么不直接到达Handler而是通过处置惩罚器适配器---这里可以添加拦截器):
  

   这里来到suc.html文件,里面有元素显示:

现在来看这里面的msg毕竟承载着什么内容,这里将再次回到HelloController文件,可以看见这里面存放的内容是“hello,SpringMVC”。

也就是点击入门程序后,显示(可以看见这里显示的哀求路径是“locahost....../hello.do”):

至此,就是现在一个基础的SpringMVC框架和运行的流程,下面的所有利用都将围绕这个原理展开。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表