SpringMVC
1. MVC介绍
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它是一种软件设计典范,是一种软件架构设计分层模式。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
View(视图)是应用程序中处理数据显示的部分。
Controller(控制器)是应用程序中处理用户交互的部分。
最典型的MVC就是JSP + servlet + javabean的模式。
2. MVC发展历史
Model 1 (jsp+javabean)
Model 2 (jsp+servlet+javabean)
Model 1 (jsp+javabean)
优点:简单,快速开发,适合小规模开发
缺点:业务逻辑和表示逻辑混合在JSP页面中没有进行抽象和分离,JSP负载太大。所以非常不利于应用系统业务的重用和改动,不便于维护。
Model 2 (jsp+servlet+javabean)
优点:具有组件化的优点从而更易于实现对大规模系统的开发和管理。职责划分清晰。
缺点:不适合小项目开发。
3.SpringMVC简介
3.1什么是SpringMVC?
SpringMVC(主流MVC框架):是spring框架的一部分(子框架),
是实现对Servlet技术进行封装。
3.2目前市场上流行的MVC框架有哪些?
1.SpringMVC 2. Struts 3. Jfinal
3.3 .SpringMVC运行原理(执行过程)
运行流程如下:
1 浏览器客户端发送请求,中央调度器DispatcherServlet接受请求
2 中央调度器把请求交给处理器映射器HandleMapping
3 处理映射器根据请求找到对应的处理器,将请求做简单的封装得到对象处理器执行链再发送给中央调度器
4 中央调度器把处理器执行链发送给处理器适配器HandleAdaptor
5 处理器适配器找到对应处理器进行处理
6 处理器执行完毕后将ModelAndView对象返回给处理器适配器
7 处理器适配器再将ModelAndView对象返回给中央调度器
8 中央调度器把ModelAndView对象发送给视图解析器
9 视图解析器解析完成返回view对象给中央调度器
10 中央调度器将view对象传给视图模块view,对view对象进行渲染
11 渲染过后的view对象返回到中央调度器
12 中央调度器把view对象响应发送到浏览器显示.
中央调度器 DispacherServlet
处理器映射器 HandleMapping
处理器适配器 HandleAdaptor
处理器 Controller
视图解析器 ViewResolver
视图 View
3.5SpringMVC配置式开发
步骤:
3.5.1导入jar包
3.5.2配置web.xml,注册SpringMVC前端控制器(中央调度器)
3.5.3编写SpringMVC后端控制器
3.5.4编写springmvc配置文件,注册后端控制器(注意id写法格式)
3.5.5编写跳转资源页面
4.具体实现:
4.1 导包如下:
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.log4j-1.2.15.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
com.springsource.org.junit-4.7.0.jar
mysql-connector-java-5.1.30.jar
spring-aop-4.1.6.RELEASE.jar
spring-aspects-4.1.6.RELEASE.jar
spring-beans-4.1.6.RELEASE.jar
spring-context-4.1.6.RELEASE.jar
spring-context-support-4.1.6.RELEASE.jar
spring-core-4.1.6.RELEASE.jar
spring-expression-4.1.6.RELEASE.jar
spring-jdbc-4.1.6.RELEASE.jar
spring-tx-4.1.6.RELEASE.jar
spring-web-4.1.6.RELEASE.jar
spring-webmvc-4.1.6.RELEASE.jar
4.2项目框架如下:
4.3:在web.xml中注册中央调度器(前端控制器),并指定springmvc.xml配置文件路径
及文件名(这里不配置,springmvc.xml配置文件只能放在WEB-INF的目录下,且文件名后加“-servlet”,原因如下:),
web.xml配置代码如下:
4.4 书写后端控制器(Controler)
4.5 配置springmvc.xml配置文件(注册后端控制器)
4.6 书写跳转页面
4.7 加载到tomcat服务器,并测试,显示如下:
4..web.xml中urlpattern配置问题
1. 以”/’开头和以”/*”结尾的是用来做路径映射的。
2. 以前缀”*.”开头的是用来做扩展映射的。
3.“/” 是用来定义default servlet映射的。
4. 剩下的都是用来定义详细映射的。
5.静态资源无法访问解决方案(三种)
1.在web.xml中配置放行:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
2.在springMvc配置文件中配置:
SpringMVC注解式开发
步骤
1.搭建环境
1.1 后端控制器无需实现接口,添加相应注解
1.2 springmvc配置文件无需注册controller
1.3 springmvc配置文件中添加组件扫描器、注解驱动
<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与
AnnotationMethodHandlerAdapter 两个bean,并提供了:数据绑定支持,
@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支
持(JAXB),读写JSON的支持(Jackson)等等。
2.涉及常用注解
@Controller、@RequestMapping(类体上【命名空间】、方法上)、@Scope
具体实现
1.前段控制器(contrler):
2.springxml配置文件
3.测试(结果和xml配置一致)