spring mvc
一、mvc设计模式,创建 Web 应用程序的模式:
spring mvc : 基于web层(请求处理和响应发送 b/s)的框架。(sturts1,struts2,spring mvc ,spring webFlux等等都属于web层框架)
二、传统的b/s架构与spring mvc的架构有什么区别
mvc模式:m (model ) v(view–jsp,html) c (control–servlet)
1)传统的b/s架构
客户端------请求-----控制器(servlet)----->封装数据model中
-------响应-----------jsp------------->客户端
缺点:
1. servlet生产周期长,大量servlet的产生。占据大量内存。
2)spring mvc 的b/s架构
优点:
1.只有1个servlet。
2.分工明确
中央处理器(servlet):接受请求,分配任务,发送响应
映射器:根据url,确定找谁(处理器),干什么(办什么业务),将其告诉老大
适配器:根据映射器结果,找到对应的处理器,完成任务,并将结果返回给老大
视图解析器:解析处理器返回的结果(model view)---返回哪个jsp,里面要显示什么数据
渲染
三、spring mvc开发的流程
第1步: mybatis spring mvc需要的包(spring+ spring-web包+spring-webmvc)
第2步:web.xml配置中央处理器(spring 写好的一个servelt)
第3步:配置spring-web.xml(映射器,适配器,视图解析器)
第4步:定义处理器
@Controller
@requestMapping
【补充】
@Component这个注解 在后期spring后期版本中进行细化
@Controller ----web层
@Service -----业务层
@Repository -----持久层 spring data jpa
四、mybatis分页插件—PageHelper插件
文档地址:https://github.com/pagehelper/Mybatis- PageHelper/blob/master/README_zh.md
数据库分页:物理分页和内存分页
1)内存分页:先将所有数据加载内存中,然后从内存中查找分页的数据
2)物理分页:在数据检索数据的时候,只检索分页数据,将数据返回给客户端。
MyBatis提供内存分页 RowBounds参数
Mybatis物理分页
1、自己写sql语句 sql limit ?,?
2、MyBatis插件 MyBatis PageHelper
PageHelper的使用步骤
第1步:导人jar
jsqlparser-2.1.jar
pagehelper-5.1.9.jar
第2步:spring集成
spring-datasource.xml(具体如何配置打开上面的官网有具体的实例方法)
第3步:在service层进行调用分页的方法
PageHelper.startPage(2, 3); 查询第2页 每页显示3条
注意:只有紧跟在PageHelper.startPage方法后的第一个Mybatis的查询(Select)方法会被分页。
五、spring mvc 集成
mybatis(spring+mybatis多4个包 web包 webmvc包 jstl2个包)
六、jsp中关于Date类型数据的显示
1、方式:jsp的jstl的format库 (c库)
第1步:<%@taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt"%>
第2步:<fmt:formatDate value="${user.birthday}" pattern="yyyy-MM-dd HH:mm:ss"/>
将controller传递过来的Date类型数据,格式成指定格式的字符串日期
注:HH是24小时制 hh是12小时制
2、方式二:
/**
* 注册属性编辑器(字符串转换为日期)
*/
@InitBinder
public void initBinder(WebDataBinder binder) throws Exception {
binder.registerCustomEditor(Date.class, new CustomDateEditor(
new SimpleDateFormat("yyyy-MM-dd"),true));
}