JavaWeb_01_概述


1. JavaWeb概述

Java一般是用来做JavaWeb开发的,这里的开发指的是Web后端开发。那么什么是JavaWeb呢?什么是Web后端呢?有没有Web前端呢?

1.1 JavaWeb

我们知道计算机模拟的是人的功能。

以最简单的图书管理系统为例,如果没有计算机的话,人与人之间的交互大概应该是这样的:

读者出示借读卡,保安根据借读卡发现该用户是图书馆客户,所以允许该用户进入图书馆。

图书馆根据书号在不同位置摆放了很多类图书,供用户阅读和选择。

用户选择了要借阅的图书后,向管理员请求借读,管理员根据用户的借读卡以及图书在对应的表单中填写记录,用于后续管理。

用户办理借阅成功后,走出图书馆。

有了计算机之后,开发了图书管理系统。用户没必要实地去图书馆,管理员也没必要手动将信息全部记录下来。交互过程大概是这样的:

读者凭借账号和密码登录图书管理系统(账号和密码,会核实该用户),进入虚拟图书馆

虚拟图书馆在网页显示了一些基本的图书信息,供读者阅读和选择。

用户选择了要借阅的图书后,发送借阅申请,系统检查该用户的权限后,自动填写保存,保存数据,供后台图书管理员审查

用户办理借阅成功后,退出系统即可。(等待纸质书的邮寄或者在线阅读等等)

可能会有一些疑问:

  • 这个所谓的图书管理系统在哪里登录呢?我在我自己的计算机上登录和在网吧的计算机登录有什么区别吗?
  • 没有保安,它是怎么知道我的用户和密码是正确的呢?
  • 图书管理系统上展示的书籍信息,怎么展示出来的,怎么知道还有几本书可以借阅的呢?
  • 办理借阅的时候,没有管理员,谁来负责填写所谓的借阅表单信息呢?

私以为

  • 和实际生活中一样,图书馆只有一座,所以图书管理系统也只有“一个”,在哪里登录都无所谓,只要账号和密码正确即可。
  • 账号和密码,会根据数据库保存的信息进行核实。
  • 书籍展示信息,后台是程序进行控制的。
  • 借阅表单信息也是后台程序控制。
  • 网络是计算机和计算机之间通信的渠道。这样,一台计算机实现了该图书管理系统,提供访问入口(代替保安以及图书管理员)。其他计算机(账号和密码)就可以访问该系统,借阅图书(代替人)。所以说,网络和计算机缩短了人与人之间的距离。

实际上,我们在登录和浏览管理系统的时候,首先我们要看到这些信息,比如输入框、书籍摘要、借阅按钮等等,这些展示在屏幕上的内容称为前端;而背后账号密码的核实,表单的填写,书籍的数量等等,在背后实际控制的内容称为后端

JavaWeb其实就是这一套技术的总和,把Web看成一个容器,主要使用JavaEE技术来实现,再加上各种中间件等等。技术体系如下所示:

intro_01.png (498×332) (gitee.io)

intro_02.png (675×440) (gitee.io)

1.2 JavaWeb前端

前面提到前端实际上是“表象”等一些展示的内容,为了让用户使用起来比较方便,看起来炫酷,体验好,以及向后端传输的内容等等。典型的技术有HTML、CSS、JavaScript。

1.3 JavaWeb后端

后端则是实际的逻辑操作流程,本质上整个系统的功能是由后端来完成的,后端也被称为服务端。典型的技术有Servlet、JSP、AJAX以及一些优化框架(Spring、SpringMVC、SpringBoot、SpringCloud)等等。

1.4 总结

这样,整个Web系统的工作流程是:由用户在前端进行操作(输入信息、点击按钮等等),这些操作信息被发送到后端服务器,后端接收操作,根据操作,选择对应的处理步骤进行处理,并将处理结果返回给前端

在这个过程中,前端和后端是通过网络来进行通信的,这就涉及到计算机网络相关的知识,但是一般情况下,不可能程序员每次都自己写数据包的发送和解析等功能,这时候就需要Web服务器,Web服务器主要用来接收客户端发送的请求和响应客户端请求,典型的代表是Tomcat。

2. 系统结构

JavaWeb项目涉及到前后端两部分,二者之间的关系称为架构,Web项目一般的系统结构主要分为两种:

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

2.1 C/S架构

全称为Client/Server(客户端/服务器),即客户端软件和服务器进行交互,典型的就是QQ、网易云音乐,以及游戏客户端等等,需要安装特定的客户端软件

C/S架构的优点:因为下载了客户端,客户端必定有一些特有的东西,以游戏客户端为例,它必定包含了一些固有的图片,本地构建模型、渲染色彩等等,包含了一定的计算功能。这些不需要网络进行传输,减少了与服务器之间的通信。

  • 速度快
  • 体验好
  • 界面酷炫
  • 服务器压力小
  • 安全(缓存在客户端)

缺点:

  • 升级维护比较麻烦(客户端在异地,笔试本地,有一些软件并不是那么容易安全装的)

2.2 B/S架构

全称为Browser/Server(浏览器/服务器),即浏览器和服务器进行交互,典型的就是通过浏览器访问浏览器,比如通过浏览器访问百度、京东、12306的等等,不需要下载特定的客户端,只需要通过浏览器访问。实际上浏览器也相当于特殊的客户端,所以B/S架构是特殊的C/S架构。

优点:

  • 升级维护方便,成本比较低。(只需要升级客户端即可)
  • 不需要安装特定的客户端软件,用户操作及其方便,主需要打开浏览器,输入网址即可。

缺点:

  • 速度慢(所有的数据都在服务器,所以需要大量的通信)
  • 体验差
  • 不安全(所有的数据都在服务器)

2.3 总结

所以开发B/S架构的系统,其实就是开发网站,Web系统。需要的技术有:

  • Web前端(运行在浏览器上的程序)

    • HTML
    • CSS
    • JavaScript
  • Web后端(运行在服务器端的程序)

    • Java

      Java做Web开发称为JavaWeb开发,JavaWeb开发最核心的规范是Servlet(Sever Applet,服务器端的小程序)

    • C

    • C++

    • Python

    • PHP

    • …(各种各样的语言均可)

3. Java三大块

  • JavaSE

    即Java标准版,是一套标准类库,别人写好的,也是JavaEE和JavaME的基础。

  • JavaEE(Web方向)

    即Java企业版,在标准类库的基础上新增了一些,可以帮助我们完成企业级项目的开发,Java程序员主要是这个方向。JavaEE包含13种规范,其中Servlet就是JavaEE规范之一。

  • JavaME(嵌入式,内核程序的开发)

    即Java微型版,还是一套类库,只不过适合内核等嵌入式程序的开发。比如机顶盒内核程序、吸尘器内核程序等等。

4. 备注

参考B站《动力节点》。

参考JavaWeb是什么?总结一下JavaWeb的体系_等我下课的博客-CSDN博客_javaweb


文章作者: 浮云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 浮云 !
  目录