SpringMVC框架原理分析和入门实例

SpringMVC框架原理分析和入门实例

1、SpringMVC框架原理

Springmvc属于Spring框架的后续产品,是Spring框架中的模块之一,用于支持Web应用程序开发;提供了构建Web应用程序的全功能支持,与Struts框架同为优秀的MVC框架;Springmvc分离了控制器、模型对象、调度器以及处理程序对象等角色,这种分离使其极具灵活性。
Springmvc与Struts2的比较
相比于Struts框架的复杂臃肿,Springmvc更为精简;Springmvc具有更好的性能;Springmvc更易于上手,学习成本低;基于Spring框架,可直接使用Ioc、Aop等特性;与Struts同为国内流行的框架,且越来越多的企业选择使用Springmvc。
Springmvc架构
SpringMVC框架原理分析和入门实例_第1张图片
在开发Springmvc Web应用程序时,表示层部分只需要编写控制器和JSP组件。
Springmvc核心模块复制接收浏览器请求,调度控制器,并转发相应的JSP页面。
SpringMVC的工作原理
SpringMVC框架原理分析和入门实例_第2张图片
1、浏览器请求提交至DispatcherServlet前端控制器。
2、DispatcherServlet控制器调用DefaultAnnotationHandlerMapping,以查找与请求地址相对应的控制器。
3、DefaultAnnotationHandlerMapping找到对应的控制器及其方法,并将结果返回给DispatcherServlet。
4、DispatcherServlet将请求传递至AnnotationMethodHandlerAdapter组件,以适配调用控制器的方法。
5、AnnotationMethodHandlerAdapter适配调用控制器的方法,适配内容包括方法的参数列表和返回值。
6、控制器方法处理请求,并将结果返回至AnnotationMethodHandlerAdapter。
7、AnnotationMethodHandlerAdapter将返回结果封装到ModelAndView对象,进而返回给DispatcherServlet。
8、DispatcherServlet基于ModelAndView对象调用ViewResolver,以查找指定的视图。
9、ViewResolver查找并确定视图,并返回给DispatcherServlet。
10、DispatcherServlet调用视图,视图负责将结果显示到客户端。
Springmvc Web应用程序的步骤如下
1、导入Springmvc所需库文件(jar包)。
2、在web.xml中配置Springmvc核心Servlet。
3、配置Springmvc配置文件。
4、编写控制器。
5、编写JSP页面。

2、导入Springmvc架包

这里写图片描述
主要是上面三个架包。将所需的jar放到项目中的lib文件中:
这里我是将所有jar包都拿进来了。
SpringMVC框架原理分析和入门实例_第3张图片
可以看到第一个jar包并不在下载的spring架包中:
这里写图片描述
这里需要你自己找到这个架包并将其导入,不然项目运行时会报错,提示你缺少这个架包。
架包下载地址:https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-local/org/springframework/spring/4.3.2.RELEASE/spring-framework-4.3.2.RELEASE-dist.zip

3、配置核心Servlet

在web.xml中进行配置
SpringMVC框架原理分析和入门实例_第4张图片
其中:
这里写图片描述
可在:
这里写图片描述
找到,将其全路径拷贝下来即可。
这里写图片描述这里的值没有特殊要求,只要是合法就行。
这里写图片描述这里是处理所有请求。
这里写图片描述启动时加载,值越小加载的优先级越高。不同于发送请求时加载。

4、创建SpringDispatcher-servlet.xml

这里是在WEB-INF下创建此xml文件。
这里写图片描述
SpringMVC框架原理分析和入门实例_第5张图片
SpringMVC框架原理分析和入门实例_第6张图片
可在spring-framework-4.3.2.RELEASE-dist\spring-framework-4.3.2.RELEASE\schema路径中找到相应的文件:
SpringMVC框架原理分析和入门实例_第7张图片
这里写图片描述指示Spring容器对com.song.controller包及其子包进行扫描,以发现并管理包中所有使用注解配置的Bean对象。
这里写图片描述指示Spring容器对Springmvc相关组件的注解进行处理,该标签注册了核心控制器所需的DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter实例。
这里写图片描述该标签指示将“/”映射到DispatcherServlet,但允许使用容器默认的Servlet来处理静态资源的请求。当请求包含静态资源时,应使用此标签以正确处理。
这里写图片描述
可在:
SpringMVC框架原理分析和入门实例_第8张图片
找到,将其全路径名拷贝下来即可。
这里写图片描述视图解析器。
这里写图片描述
ModelAndView返回视图后,经解析器解析,该视图真正的URL为:
prefix+视图字符串+suffix

5、编写控制器 和JSP

SpringMVC框架原理分析和入门实例_第9张图片
SpringMVC框架原理分析和入门实例_第10张图片
SpringMVC框架原理分析和入门实例_第11张图片
部署到tomcat中
这里写图片描述
SpringMVC框架原理分析和入门实例_第12张图片
这里写图片描述

6、另一种实现第一个应用程序

web.xml配置
SpringMVC框架原理分析和入门实例_第13张图片
springmvc.xml配置
SpringMVC框架原理分析和入门实例_第14张图片
SpringMVC框架原理分析和入门实例_第15张图片
SpringMVC框架原理分析和入门实例_第16张图片
编写控制器和JSP
SpringMVC框架原理分析和入门实例_第17张图片
SpringMVC框架原理分析和入门实例_第18张图片
SpringMVC框架原理分析和入门实例_第19张图片
SpringMVC框架原理分析和入门实例_第20张图片
部署到tomcat中
SpringMVC框架原理分析和入门实例_第21张图片
SpringMVC框架原理分析和入门实例_第22张图片
SpringMVC框架原理分析和入门实例_第23张图片
这里写图片描述
注意地址栏上的变化。

敬请,各位路过的大牛们指点指正。

你可能感兴趣的:(springmvc,spring,mvc)