SpringMVC、MyBatis总结

本文深入解析SpringMVC的工作流程,包括请求处理、控制器执行及视图渲染过程,同时探讨如何利用SpringMVC的拦截器防止SQL注入。此外,文章还详细对比了MyBatis中#{}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:SpringMVC的工作流程:

①. SpringMVC将所有的请求都提交给DispatcherServlet

②. DispatcherServlet收到请求调用HandlerMapping处理映射器

③. 处理映射器找到具体的处理器,生成处理器对象返回给DispatcherServlet

④. DispatcherServlet调用HandlerAdapter处理器适配器

⑤. HandlerAdapter经过适配调用具体的处理器Controller

⑥. Controller进行业务逻辑处理后,会返回一个ModelAndView

⑦. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet

⑧. DispatcherServlet将ModelAndView传给ViewResolver视图解析器

⑨. ViewResolver解析后返回具体的View

⑩. DispatcherServlet根据View进行渲染视图并响应用户

 

2:SpringMVC怎么防止SQL注入:

使用SpringMVC的拦截器实现防止SQL注入

详细了解请看这篇https://blog.youkuaiyun.com/jiang1245764446/article/details/73379727

 

 

(附带一张SpringMVC工作流程图)

 

 

3:mybatis中#{}和${}区别是什么:

#{}:参数占位符,Mybatis会将sql中的#{}替换为?

${}:变量占位符,也可以理解为取值符

 

4:讲一下mybatis的缓存机制:

MyBatis提供了查询缓存来缓存数据,以提高查询的性能,MyBatis的缓存分为一级缓存和二级缓存。

一级缓存:SqlSession级别的缓存,基于HashMap本地缓存,当同一个sqlSession执行两次相同的SQL语句时,第一次执行完后会将数据库中查询到的结果写到缓存,第二次查询时直接从缓冲中读取不经过数据库了。一级缓存默认时开启的

二级缓存:mapper级别的缓存,也是基于hashmap本地缓存,不同的sqlSession两次执行相同的namespace下的sql语句,第二次查询就不会进行数据库了。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值