Categories
跨服战场

1. 前端(Frontend)

作用: 前端就像是餐厅的菜单和服务台,它展示给顾客各种菜品和选项,并且让顾客通过菜单和服务台来下单。前端不仅要让菜单看起来好看,还要让顾客能方便地选择想要的菜品。

具体做什么:

用户界面(UI): 前端负责设计和展示用户看到的所有内容,包括页面上的文字、图片、按钮、表单等等。就像餐厅的菜单,它让顾客看到所有的菜品和价格。前端开发者使用 HTML、CSS 和 JavaScript 等技术来实现这些内容。用户交互(UX): 当顾客在菜单上选择菜品、填写订单信息或点击按钮时,前端会捕捉这些操作。这就像顾客在餐厅填写点餐单,前端会把这些操作打包成一份“订单”,并送给服务员(控制层)处理。与控制层的关系: 前端相当于顾客和餐厅之间的接口。它把顾客的需求(比如点了什么菜)发送给控制层。比如,当你在网站上点击“提交”按钮,前端就会把你填写的信息发送给后台,交给控制层处理。JSP 只用于网页开发,它生成的是 HTML 页面,适用于在浏览器中展示内容,不论是在桌面浏览器还是移动端浏览器中。2. 控制层(Controller Layer)

作用: 控制层就像餐厅的服务员。它接收顾客(前端)传过来的订单,然后把订单交给厨房(业务层)准备菜品。控制层的工作是确保顾客的需求能正确地传达到厨房。

具体做什么:

接收请求: 当前端把顾客的订单(比如表单数据或请求信息)发过来时,控制层就会接收这个订单。就像服务员接过顾客的点餐单,看看顾客都点了什么。分发任务: 控制层会根据订单的内容,把它们分配给合适的厨房(业务层)。比如,订单上有“炒饭”和“牛排”,服务员会把这些分别交给不同的厨师处理。返回结果: 当厨房做好菜后,服务员会把这些菜品端给顾客。控制层也是一样,它把业务层处理好的结果打包,然后返回给前端。前端再把这些结果展示给用户。使用技术: 控制层通常使用的技术包括 Spring MVC(Java 中的一种框架),Express.js(用于 Node.js),Django Views(用于 Python)等。Servlet 是一个基础技术,Spring MVC 是建立在 Servlet 之上的高级 Web 框架。Servlet 是一个较低级别的 API(接口的实现),直接与 HTTP 协议和 Servlet 容器(如 Tomcat、Jetty)交互。使用 Servlet,你需要手动处理请求、响应、会话管理等,这在较复杂的应用中会增加开发工作量Spring MVC 提供了大量的功能和简化的编程模型,因此在现代 Java Web 应用开发中,Spring MVC 是更常用的选择。在使用 Spring MVC 时,实际上你仍然在使用 Servlet 技术,只是大部分低级细节被 Spring MVC 框架所处理。3. 业务层(Service Layer)

作用: 业务层就像是餐厅的厨房。它负责根据顾客的订单(由控制层传过来的)准备和烹饪菜肴。业务层是整个餐厅的核心,它负责处理所有的“工作”,包括切菜、煮饭、调味等。

具体做什么:

处理业务逻辑: 当服务员把订单送到厨房后,厨师们开始准备菜肴。业务层也是这样,当控制层把请求传过来,业务层就会按照规定的步骤处理数据。这些步骤可能包括计算价格、检查库存、处理付款等。事务管理: 业务层还负责确保所有的操作是安全和可靠的。如果在准备菜肴的过程中出错,比如发现菜品需要的材料不足,厨房会放弃当前的操作,避免给顾客提供不完整的菜品。业务层在处理数据时也类似,如果某个步骤失败了,它会撤销之前的操作,确保数据的一致性。调用数据访问层: 如果厨师在准备菜肴时需要某些食材,厨房会告诉仓库管理员(数据访问层)去仓库(数据库)里取需要的材料。同样,业务层需要某些数据时,会请求数据访问层去数据库中读取这些数据。使用技术: 业务层常用的技术包括 Spring Service(Java 中),Django 的服务类(Python 中),在大型系统中还可能使用微服务架构。4. 数据访问层(Data Access Layer,DAL 或 Repository Layer)

作用: 数据访问层就像餐厅的仓库管理员。它负责从仓库(数据库)中取出食材(数据),并送到厨房(业务层)使用。数据访问层的任务是管理和处理所有的数据存取工作。

具体做什么:

获取数据: 当厨房需要某种食材(比如鸡肉、蔬菜)时,仓库管理员就会去仓库中取出这些食材。数据访问层在应用中也类似,当业务层需要某些数据(比如用户信息或订单记录),数据访问层会去数据库中查找这些数据并返回。保存数据: 厨房在使用食材后,如果有剩余或需要保存的,仓库管理员会把它们存回仓库。数据访问层也负责将业务层处理好的数据保存到数据库中。比如,当用户提交订单时,数据访问层会把订单信息保存到数据库里,确保以后可以查到。抽象数据库操作: 数据访问层把数据库操作封装起来,业务层只需要简单地调用方法获取或保存数据,而不需要知道数据库内部是怎么工作的。这样做的好处是,即使数据库更换了,业务层的代码也不用改动,就像厨房换了一个新的仓库管理员,厨房的工作不会受到影响。使用技术: 在 Java 开发中,常用的技术包括 Spring Data JPA、MyBatis、Hibernate 等。在 Python 中常用 Django ORM 或 SQLAlchemy。5. 数据库(Database)

作用: 数据库就像餐厅的仓库,里面存放着所有的食材(数据)。无论是顾客的订单信息、菜单、库存等所有重要的数据都存放在这里,数据库确保应用程序可以随时获取或存储这些数据。

具体做什么:

数据存储: 数据库负责保存应用程序中的所有数据,就像仓库里存放着餐厅所需的所有食材。当顾客下单后,订单信息会存到数据库里,以便将来查看或处理。数据管理: 数据库不仅存储数据,还负责管理数据的更新、删除和查询。例如,当顾客取消订单,数据访问层会通过数据库将订单删除;当顾客查询历史订单时,数据访问层会从数据库中提取相应的数据。与数据访问层的关系: 数据库本身不会主动提供数据,而是由数据访问层去操作。数据访问层就像仓库管理员,通过 SQL 查询语言与数据库交互,从中获取或存入数据。总结

前端:就像餐厅的菜单和服务台,负责展示功能和接受用户的操作。控制层:像服务员,接收顾客的需求,把它们传递给厨房处理。业务层:像厨房,负责根据顾客的订单准备“菜肴”,即处理业务逻辑。数据访问层:像仓库管理员,从数据库(仓库)中获取或存储数据。数据库:像餐厅的仓库,存放所有的数据(食材),确保应用程序能够正常运行。