回顾
Jdbctemplate(数据库连接池,jdbctemplate和jdbcdaosupport)
Spring中的声明式事务(xml , xml+注解,纯注解)
Spring和mybatis的整合(1.sqlSessionFactory,2.MapperSacnnerConfigurer,事务)
Springmvc的课程安排
Day1: springmvc的入门,参数封装
Day2: springmvc中的注解,文件上传 /user/1
Day3: spring中的拦截器,SSM整合,案例
-
Spring中的MVC
Mvc的框架的原理
Springmvc
1.1 Springmvc
Springmvc是spring提供的一套实现了MVC思想的web层框架.内部通过原生的Servlet实现(Servlet,request,response,session,servletContext).
2. SpringMVC 入门
Springmvc是spring的子框架: 具有容器的概念
操作步骤:
1. 工程和坐标
2. 配置控制器(处理器)类
3. 配置springmvc的配置文件
4. 配置web工程的web.xml
2.1 工程和坐标
2.1.1 Jbl插件:自动转化web工程
2.1.2 坐标
<!--定义全局版本号-->
<properties>
<spring.version>5.0.5.RELEASE</spring.version>
<asssabcd>5.0.5.RELEASE</asssabcd>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${asssabcd}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
2.2 配置控制器类
控制器类: 处理URL请求
2.3 配置springmvc的配置文件
语法和spring配置文件一模一样
2.4 配置web.xml
2.5 将jsp页面上的路径跟controller的方法建立连接(通过requestMapping注解)
3. Springmvc的执行过程
简单理解:
3.1 执行流程
深入理解
将springmvc项目部署到一个tomcat项目中,tomcat启动,扫描web.xml文件,找到一个DispartcherServlet核心控制器, 核心控制器加载springmvc.xml配置文件,根据配置文件创建容器,创建对象,创建HelloController对象,根据mvc注解驱动创建处理器适配器和处理器映射器.
3.2 Springmvc中的四大组件
DispatcherServlet : 核心控制器
HandlerAdapter : 处理器适配器,执行控制器类(Controller)
适配器模式
HandlerMapping : 处理器映射器:匹配url和方法之间的映射关系
ViewReslover : 视图解析器(简化响应路径代码的编写 )
视图解析器的代码配置在springmvc,xml中
3.3 RequestMapping注解
@RequestMapping注解可以配置到方法上也可以配置到类上.配置请求URL和处理控制器(controller)方法的映射关系
4. 接收请求参数(参数封装)
在控制器(controller)方法中获取请求参数
方式: 需要什么就叫什么配置到控制器方法参数上
4.1 获取基本数据类型的参数
条件 : 页面发送请求的参数名称 = 控制器方法的参数名
4.2 将请求参数封装为对象
Springmvc自动的将请求参数封装为对象(页面请求的参数和用户的对象属性保持一致) 需要自定义一个对象
条件 : 页面发送请求的参数名称 = 对象中的属性名
4.3 获取基本数据类型的数组
4.4 获取ServletAPI对象
在控制器(controller)方法中获取servletApi对象: request,response,session
需要那个对象,定义到方法参数上
4.5 复杂类型的参数封装(List和map) 看看得了
复杂参数 : list和map,指的是对象中的属性
4.5.1 List类型
4.5.2 map类型
5. 处理中文乱码
web.xml内添加过滤器:
7. 日期处理
Springmvc中默认处理 yyyy/MM/dd的日期格式
6.1 方式一:注解
使用注解配置到日期属性上
只能处理对象中的日期属性
6.2 方式二 : 类型转化器
6.2.1 自定义类型转化器
6.2.2 配置类型转化器
8. 数据响应(封装返回值)
页面跳转的方式
请求转发
重定向
数据响应的方式
在控制器中将数据传递到页面
7.1 String类型的返回值
7.1.1 数据响应
7.1.2 页面跳转
面试问题
9. Springmvc处理流程
核心DispatcherServlet : service()
10. Springmvc中的参数封装
作业:
11. 完成今日代码
12. 预习第二天