B/S是一种软件架构。开发这种类型的软件的后端架构往往采用三层开发架构:
- 表现层(Web层):与客户端浏览器进行交互,返回数据。如Servlet、JSP等。
- 业务层(逻辑层、Server层):对数据进行逻辑判断和事务管理。采用Java Bean类。
- 持久层(DAO层):与数据库进行交互。如JDBC、MyBatis框架等。
三层架构之间不能越级或反向操作,数据必定是按“表现层→业务层→持久层→业务层→表现层”的逻辑来传递的。这样的架构使得各层之间相互解耦。在这三层之外,还有可能拥有工具类(Util)、Pojo类(Bean)等。
前端
前端即呈现给浏览器的界面。客户端浏览器需要发送请求给服务器,请求分为两种:
- 同步请求:客户端发送请求、接收响应和渲染页面是按顺序进行的。由于用户操作需要等待页面渲染完成后才能操作,故同步请求需要等待三个步骤都完成后才能操作页面。因为每种资源,包括图片、JS、CSS、HTML等,都需要发送一次请求,在页面包含大量资源时就会出现加载特别慢的情况。
- 异步请求:客户端可以先渲染基本框架页面,在出现需求时再调用子线程发送异步请求,而主线程依然响应处理用户交互。现在主要的异步请求方式是Ajax。
现在主要是采用同步请求和异步请求相结合的方式,先使用同步请求获取页面框架,然后再通过异步请求填充页面数据。
表现层
表现层主要是指后端架构中与前端直接交互的部分。前端可以通过同步请求和异步请求向后端请求数据,后端根据请求返回相应的数据。
持久层
对象关系映射理论(ORM)是B/S开发的一个理论基础。它要求在软件中,需要拥有对象与数据库中的数据进行对应,也就是说,当进行CRUD操作时,数据库中的表需要在代码中存在一个pojo类与之对应。
现在常见的ORM框架包括Hibernate、Spring-data-jpa和MyBatis,它们都是对JDBC的一种封装。其中,Hibernate无需用户写SQL语句,但配置繁琐,是一种重量级框架,现已逐步淘汰;Spring-data-jpa与Hibernate十分类似;MyBatis是对ORM的一种不完全实现,它需要自定义SQL,但配置比较简单。