
本篇主要讲述了JavaWeb的相关概念以及技术栈,比如什么是客户端与服务器、一个项目的逻辑组成、JavaWeb的核心技术。
在我们日常的生活中,经常会使用浏览器去访问百度、京东等这些网站,这些网站统称为Web网站。
Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。
JavaWeb就是用Java技术来解决相关web互联网领域的技术栈。
我们能够正常使用这些Web网站,是因为这些网站(客户端)拥有着稳定、高效的服务器端应用程序,那么,我们来了解一下服务器与客户端。



"服务器"是一个非常宽泛的概念,Tomcat是服务器,MySQL是服务器,Redis也是服务器。同时Linux是服务器,阿里云上租用的虚拟机也是服务器。服务器分为下面这些类型:
硬件服务器
虚拟机服务器
软件服务器
JavaWeb就是要开发的就是服务器端应用程序,怎么编写?通过学习JavaWeb技术栈。
请求:请求是项目中最基本的逻辑单元,就像万事万物都由原子构成
举例:点超链接跳转到注册页面
功能:一个功能包含很多个请求
举例:注册用户功能
- 请求1:点超链接跳转到注册页面
- 请求2:发送请求获取短信验证码
- 请求3:检查用户名是否可用
- 请求4:提交表单完成注册
模块:一个模块包含很多功能
举例:用户信息管理模块
- 功能1:用户注册功能
- 功能2:用户登录功能
- 功能3:个人中心——账户安全功能
- 功能4:个人中心——账户绑定功能
- 功能5:个人中心——收货地址功能
- 功能6:个人中心——我的银行卡功能
子系统:根据项目规模的不同,子系统这层逻辑概念可能有也可能没有。如果设置了子系统,那么子系统中也必然包含很多模块。其实庞大项目的子系统已经相当于一个项目了,甚至比小型项目整个都大。
举例:认证中心子系统
- 模块1:用户信息管理模块
- 模块2:权限管理模块
- 模块3:授权管理模块
- 模块4:权限检查模块
项目:为了解决现实生活中的实际问题开发一个项目,这个项目就是为这个需求提供的一整套解决方案。
举例:电商项目
- 子系统1:认证中心子系统
- 子系统2:商品管理子系统
- 子系统3:购物车子系统
- 子系统4:仓储子系统
- 子系统5:物流子系统
- 子系统6:订单子系统
“架构"其实就是项目的"结构”。只不过"结构"这个词太小了,不适合用来描述项目这么大的东西,所以换了另一个更大的词:架构。所以当我们聊一个项目的架构时,我们聊的是项目是由哪些部分组成的。
单一架构
一个项目就是一个工程,这样的结构就是单一架构,也叫all in one。我们现在的JavaWeb阶段、SSM阶段都是学习单一架构开发技术。
分布式架构
一个项目中包含很多工程,每个工程作为一个模块。模块之间存在调用关系。分布式架构阶段的技术分为两类:
Java框架:SpringBoot、SpringCloud、Dubbo等等。
中间件:Redis、ElasticSearch、FastDFS、Nginx、Zookeeper、RabbitMQ等等。

什么是B/S架构? **B/S 架构:**Browser/Server,浏览器/服务器 架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可。大家可以通过下面这张图来回想下我们平常的上网过程:

三剑客(HTML+CSS+JavaScript),使用这些技术我们就可以制作出效果比较丰富的网页,将来展现给用户。但是由于做出来的这些内容都是静态的,这就会导致所有的人看到的内容将是一模一样。
张三登录以后在网页的右上角看到的是 张三,而李四登录以后看到的则是李四。所以不同的用户访问相同的资源看到的内容大多数是不一样的,要想实现这样的效果,光靠静态资源是无法实现的。用户名和密码,这个时候我们就又需要解决的一个问题是,用户在注册的时候填入的用户名和密码、以及我们经常会访问到一些数据列表的内容展示(如下图所示),这些数据都存储在哪里?我们需要的时候又是从哪里来取呢?

至此,关于JavaWeb中用到的技术栈就介绍完了,整个Web核心主要就是来学习这些技术。
