JavaWeb—系统架构

JavaWeb入门:C/S与B/S架构详解与应用

本次博客我们开始学习JavaWeb中的知识,我们先来学习Java中的系统架构。

系统架构的形式

  • C/S架构
  • B/S架构

C/S架构

  • Client / Server (客户端 / 服务器)。
  • C/S架构的软件或者说系统有哪些呢?
    • QQ(先去腾讯官网下载一个QQ软件,几十MB,然后把这个客户端软件安装上去,然后输入QQ号以及密码,登录之后,就可以和你的朋友聊天了,就可以使用这个软件了)。
  • C/S架构的特点:需要安装特定的客户端软件。
  • C/S架构的系统的优点和缺点:
    • 优点:
      • 速度快。(软件中的数据大部分都是集成到客户端软件当中的,很少量的数据从服务器端传送过来,所以C/S结构的系统速度快)
      • 界面酷炫。(专门的语言去实现界面的,更加灵活)
      • 体验好。(速度又快,界面又酷炫,当然体验好了)
      • 服务器压力小。(因为大量的数据都是集成在客户端软件当中,所以服务器只需要传送很少的数据量,当然服务器压力小)
      • 安全。(因为大量的数据是集成在客户端软件中的,并且客户端有很多个,服务器虽然只有一个,就算服务器那边地震了,火灾了,服务器受损了,问题也不大,因为大量的数据在多个客户端上有缓存,有存储,所以从这个方面来说,C/S结构的系统比较安全)
    • 缺点:
      • 升级维护比较差劲。(升级维护比较麻烦,成本比较高。每一个客户端软件都需要升级,有一些软件不是那么容易安装)

B/S架构

  • Browser / Server(浏览器/服务器)
  • 实际上B/S结构的系统还是一个C/S系统,只不过这个Client比较特殊,这个Client是一个固定不变的浏览器软件。
  • B/S结构的系统优点和缺点:
    • 优点:
      • 升级维护方便,成本比较低。(只需要升级服务器端即可)
      • 不需要安装特定的客户端软件,用户操作极其方便,只需要打开浏览器,输入网址即可。
    • 缺点:
      • 速度慢。(不是因为带宽低的问题,是因为所有的数据都是在服务器上,用户发送的每一个请求都是需要服务器全身心的响应数据,所以B/S结构的系统在网络中传送的数据量比较大)
      • 体验差。(界面不是那么酷炫,因为浏览器只支持三个语言HTML、CSS、JavaScript,再加上速度慢)
      • 不安全。(所有的数据都在服务器上,只要服务器发生火灾、地震等不可抗力,最终数据全部丢失)

C/S和B/S架构的系统如何使用

  • 不同结构的系统在不同的业务场景下有不同的使用场景。
  • 娱乐性的软件建议使用C/S架构。
  • 公司内部使用的一些业务软件建议使用B/S架构。

JAVA的三大板块

  1. JavaSE:Java标准版(一套类库:别人写好的一套类库,只不过这个类库是标准类库,走EE,或者走ME,这个SE一定是基础,先学)
  2. JavaEE(WEB方向,WEB系统):Java企业版(也是一套类库:也是别人写好的一条类库,只不过这类套库可以帮助我们完成企业级项目的开发,专门为企业内部提供解决方案的一套(多套)类库)
  3. JavaME:Java微型版(还是一套类库,只不过这套类库帮助我们进行电子微型设备内核程序的开发)
### 如何绘制JavaWeb系统的架构图 绘制 JavaWeb 系统的架构图是一项重要的工作,它可以帮助开发者清晰地表达系统结构、组件之间的关系以及数据流。以下是关于如何绘制 JavaWeb 系统架构图的相关说明。 #### 1. 架构图的主要组成部分 JavaWeb 系统通常由以下几个部分组成: - **客户端**:浏览器或其他前端设备。 - **Web 层 (Controller)**:负责接收 HTTP 请求并将它们传递给业务逻辑层。这可以通过 Servlet 和 JSP 实现[^1]。 - **服务层 (Service Layer)**:实现核心业务逻辑的部分。 - **持久化层 (DAO Layer)**:用于数据库交互的操作。 - **数据库 (Database)**:存储应用程序的数据。 这些层次通过接口和协议相互连接,形成完整的系统架构。 #### 2. 绘制工具推荐 常用的绘图工具有多种选择,具体如下: - **Microsoft Visio**:专业的图表制作软件,适合创建复杂的系统架构图。 - **Lucidchart**:在线协作工具,支持实时编辑和分享。 - **Draw.io / Diagrams.net**:免费开源工具,简单易用且功能强大。 - **PlantUML**:基于文本的语言生成 UML 图表,特别适用于程序员。 对于初学者来说,可以优先考虑 Draw.io 或 PlantUML 这样的轻量级工具。 #### 3. 示例图片描述 下面是一个典型的三层架构示意图: ```plaintext +-------------------+ | 客户端 | | (Browser) | +-------------------+ | v +-------------------+ | Web层 | | (Servlet/JSP) | +-------------------+ | v +-------------------+ | 服务层 | | (Business Logic)| +-------------------+ | v +-------------------+ | 持久化层 | | (DAO) | +-------------------+ | v +-------------------+ | 数据库 | | | +-------------------+ ``` 此图为分层架构的经典表示形式,每一层都有其特定职责,并通过标准 API 接口与其他层通信[^3]。 #### 4. 使用代码辅助解释 如果需要更详细的定义各层的功能,可以用伪代码来补充说明。例如,在 `Servlet` 中处理请求的方式可能类似于以下代码片段: ```java protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 调用 Service 层的方法获取数据 MyService myService = new MyServiceImpl(); List<MyObject> data = myService.getData(); // 将数据转发到 JSP 页面显示 request.setAttribute("data", data); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/myPage.jsp"); dispatcher.forward(request, response); } ``` 上述代码展示了 Web 层是如何调用服务层完成业务操作后再返回视图的过程。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值