关于SpingMVC

1.Spring

1、Spring的核心是一个轻量级(Lightweight)的容器(Container)。
2、Spring是实现IoC(Inversion of Control)容器和非入侵性(No intrusive)的框架。
3、Spring提供AOP(Aspect-oriented programming)概念的实现方式。
4、Spring提供对持久层(Persistence)、事物(Transcation)的支持。
5、Spring供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装。
6、Spring提供了对现存的各种框架(Structs、JSF、Hibernate、Ibatis、Webwork等)相整合的方案。
  总之,Spring是一个全方位的应用程序框架。

2.什么是SpingMVC

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的量级 Web 框架,属于spring的一个模块。它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。

3.SpringMVC 的流程

1、用户发送请求至前端控制器DispatcherServlet;

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器;

3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;

4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器,执行处理器(Controller,也叫后端控制器);

5、Controller执行完成返回ModelAndView,并返回给HandlerAdapter,HandlerAdapter将结果返回给DispatcherServlet;

6、DispatcherServlet将ModelAndView传给ViewReslover视图解析器,ViewReslover解析后返回具体View给DispatcherServlet;

7、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)后响应客户

在这里插入图片描述

4.SpringMVC的常用注解

@RequsetMapping:处理请求URL映射,可用于类或方法上
@RequestBody:注解实现接受http请求的json数据,将json数据转换为java对象
@ReponseBody:注解实现将controller方法返回对象转化为json对象响应给客户

5.中文乱码问题

POST请求乱码问题:

在web.xml配置一个CharacterEncodingFilter过滤器,设置为uft-8

GET请求乱码问题:

1>.修改Tomcat配置文件添加编码与工程编码一致
在这里插入图片描述

2>.对参数进行重新编码

String userName =new String(request.getParamter(“userName”).getBytes(“ISO-8859-1”),“UTF-8”);   

ISO8859-1是Tomcat默认编码,需改为utf-8

6.IOC

控制反转,把对象创建和对象间的调用过程交给Spring进行管理,通过反射实现。
目的:降低耦合
具体采用的方法是DI依赖注入
IOC是基于Java的反射机制以及工厂模式实现的

7.AOP

面向切面编程,OOP面向对象编程的延伸。
AOP 技术利用一种称为 “横切” 的技术,解剖封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,这样就能减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。

AOP采用的技术

1.动态代理

2.静态织入

MyBatis

1.什么是MyBatis?

MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java对象)为数据库中的记录。

2.MyBatis编程步骤是什么样的?

1、 创建SqlSessionFactory

2、 通过SqlSessionFactory创建SqlSession

3、 通过sqlsession执行数据库操作

4、 调用session.commit()提交事务

5、 调用session.close()关闭会话

3.MyBatis工作原理

在这里插入图片描述

1)读取 MyBatis 配置文件:mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息。

2)加载映射文件。映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.xml 中加载。mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。

3)构造会话工厂:通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory。

4)创建会话对象:由会话工厂创建 SqlSession 对象,该对象中包含了执行 SQL 语句的所有方法。

5)Executor 执行器:MyBatis 底层定义了一个 Executor 接口来操作数据库,它将根据 SqlSession 传递的参数动态地生成需要执行的 SQL 语句,同时负责查询缓存的维护。

6)MappedStatement 对象:在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息。

7)输入参数映射:输入参数类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO 类型。输入参数映射过程类似于 JDBC 对 preparedStatement 对象设置参数的过程。

8)输出结果映射:输出结果类型可以是 Map、 List 等集合类型,也可以是基本数据类型和 POJO 类型。输出结果映射过程类似于 JDBC 对结果集的解析过程。

4.MyBatis 框架设计架构

1.加载配置

2.SQL解析

3.SQL执行

4.结果映射

5.MyBatis 中#{}与${}的区别

#{}是占位符,预编译处理

${}是拼接符,字符串替换

MyBatis 在处理#{}时,会将sql中的#{}替换为?,调用PreparedStatement中的Set来赋值

MyBatis 在处理#{}时,就是将${}替换成变量的值。

使用#{}可以有效防止sql注入,提高系统安全性

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值