1, Web概述

1.1 Web和JavaWeb的概念

Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。

在我们日常的生活中,经常会使用浏览器去访问百度京东传智官网等这些网站,这些网站统称为Web网站。如下就是通过浏览器访问传智官网的界面:


我们知道了什么是Web,那么JavaWeb又是什么呢?顾名思义==JavaWeb就是用Java技术来解决相关web互联网领域的技术栈。

等学习完JavaWeb之后,就可以使用Java语言开发我们上述所说的网站。而国内很多大型网站公司也是首选Java语言来解决web互联网相关的问题。那都有哪些公司的系统是使用Java语言的呢?


使用Java语言开发互联网系统是有很多技术栈需要大家了解,具体都有哪些呢?

1.2 JavaWeb技术栈

了解JavaWeb技术栈之前,有一个很重要的概念要介绍。

1.2.1 B/S架构

什么是B/S架构?

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

  • 打开浏览器访问百度首页,输入要搜索的内容,点击回车或百度一下,就可以获取和搜索相关的内容
  • 思考下搜索的内容并不在我们自己的点上,那么这些内容从何而来?答案很明显是从百度服务器返回给我们的
  • 日常百度的小细节,逢年过节百度的logo会更换不同的图片,服务端发生变化,客户端不需做任务事情就能获取最新内容
  • 所以说B/S架构的好处:易于维护升级,服务器端升级后,客户端无需任何部署就可以使用到新的版本。

了解了什么是B/S架构后,作为后台开发工程师的我们将来主要关注的是服务端的开发和维护工作。在服务端将来会放很多资源,都有哪些资源呢?

1.2.2 静态资源

  • 静态资源主要包含HTML、CSS、JavaScript、图片等,主要负责页面的展示。
  • 我们之前已经学过前端网页制作三剑客(HTML+CSS+JavaScript),使用这些技术我们就可以制作出效果比较丰富的网页,将来展现给用户。但是由于做出来的这些内容都是静态的,这就会导致所有的人看到的内容将是一模一样。
  • 在日常上网的过程中,我们除了看到这些好看的页面以外,还会碰到很多动态内容,比如我们常见的百度登录效果:

  • 张三登录以后在网页的右上角看到的是 张三,而李四登录以后看到的则是李四。所以不同的用户访问相同的资源看到的内容大多数是不一样的,要想实现这样的效果,光靠静态资源是无法实现的。

1.2.3 动态资源

  • 动态资源主要包含Servlet、JSP等,主要用来负责逻辑处理。
  • 动态资源处理完逻辑后会把得到的结果交给静态资源来进行展示,动态资源和静态资源要结合一起使用。
  • 动态资源虽然可以处理逻辑,但是当用户来登录百度的时候,就需要输入用户名密码,这个时候我们就又需要解决的一个问题是,用户在注册的时候填入的用户名和密码、以及我们经常会访问到一些数据列表的内容展示(如下图所示),这些数据都存储在哪里?我们需要的时候又是从哪里来取呢?

1.2.4 数据库

  • 数据库主要负责存储数据。

  • 整个Web的访问过程就如下图所示:

  • (1)浏览器发送一个请求到服务端,去请求所需要的相关资源;
    (2)资源分为动态资源和静态资源,动态资源可以是使用Java代码按照Servlet和JSP的规范编写的内容;
    (3)在Java代码可以进行业务处理也可以从数据库中读取数据;
    (4)拿到数据后,把数据交给HTML页面进行展示,再结合CSS和JavaScript使展示效果更好;
    (5)服务端将静态资源响应给浏览器;
    (6)浏览器将这些资源进行解析;
    (7)解析后将效果展示在浏览器,用户就可以看到最终的结果。
    在整个Web的访问过程中,会设计到很多技术,这些技术有已经学习过的,也有还未涉及到的内容,都有哪些还没有涉及到呢?

1.2.5 HTTP协议

  • HTTP协议:主要定义通信规则
  • 浏览器发送请求给服务器,服务器响应数据给浏览器,这整个过程都需要遵守一定的规则,之前大家学习过TCP、UDP,这些都属于规则,这里我们需要使用的是HTTP协议,这也是一种规则。

1.2.6 Web服务器

  • Web服务器:负责解析 HTTP 协议,解析请求数据,并发送响应数据
  • 浏览器按照HTTP协议发送请求和数据,后台就需要一个Web服务器软件来根据HTTP协议解析请求和数据,然后把处理结果再按照HTTP协议发送给浏览器
  • Web服务器软件有很多,我们课程中将学习的是目前最为常用的 Tomcat 服务器

到这为止,关于JavaWeb中用到的技术栈我们就介绍完了,这里面就只有HTTP协议、Servlet、JSP以及Tomcat这些知识是没有学习过的,所以整个Web核心主要就是来学习这些技术。

1.3 Web核心


整个Web核心,分别是:

  • HTTP、Tomcat、Servlet
  • Request(请求)、Response(响应)
  • JSP、会话技术(Cookie、Session)
  • Filter(过滤器)、Listener(监听器)
  • Ajax、Vue、ElementUI

(1)Request是从客户端向服务端发出的请求对象,

(2)Response是从服务端响应给客户端的结果对象,

(3)JSP是动态网页技术,

(4)会话技术是用来存储客户端和服务端交互所产生的数据,

(5)过滤器是用来拦截客户端的请求,

(6)监听器是用来监听特定事件,

(7)Ajax、Vue、ElementUI都是属于前端技术

本文章参考B站 黑马程序员最新版JavaWeb基础教程,Java web从入门到企业实战完整版,仅供个人学习使用,部分内容为本人自己见解,与黑马程序员无关。

【Web基础】Web概述相关推荐

  1. Web基础(三)Python Web

    文章目录 Python Web基础 1. WSGI 1.1 概述 1.2 实现原理 1.WSGI Server/gateway 2.WSGI Application 3.WSGI MiddleWare ...

  2. 【HTML基础】第一课、Web前端的概述

    文章目录 一.什么是Web前端开发 二.网站与网页 三.Web前端技术 1. Web前端技术的构成有三个,HTML+CSS+JavaScript 2. Web前端的技术标准 一.什么是Web前端开发 ...

  3. Java Web基础概述

    文章目录 一. JavaWeb基本概念 1. 前言 2. web应用程序 3. 静态web 4. 动态web 二. Web结构 1. 什么是后端开发 2. 后端和前端的区别 二. Web开发模式 1. ...

  4. web 向java_Java web基础

    Java web基础 一.C\S架构 1.概念 C是英文单词"Client"的首字母,即客户端的意思,C/S就是"Client/Server"的缩写,即&quo ...

  5. 2018-2019-2 网络对抗技术 20165329 Exp 8 Web基础

    2018-2019-2 网络对抗技术 20165329 Exp 8 Web基础 原理与实践说明 实践内容概述 基础问题回答 实践过程记录 1.Web前端:HTML 2.Web前端:javascipt ...

  6. Web基础技术开发设计规范

    Web基础技术开发设计规范 概述 前端脚本语言十分灵活,每个人都有自己开发风格,并且javascript是单线程编程语言,程序的运行效率在前端开发是比较重要的,所以对前端开发人员应有更高的编程要求.而 ...

  7. Web基础与apache讲解

    Web基础与apache讲解 一.网站基础: 二.HTTP协议分析: 三.TCP数据包状态分析: 四.apache原理详解: 五.案例:搭建apache网站服务: 一.网站基础: 1.域名:域名是一个 ...

  8. java后端系统学习总结 03_java Web基础学习

    猿猿正在系统的学习一些计算机知识,和后端技术栈,目前阶段主要在系统学习java.此专栏,为我学习过程中的学习笔记,便于日后复习回顾来看,也很适合新人学习参考呦. 以下是猿猿对JavaWeb的第一遍学习 ...

  9. Linux Web基础与HTTP协议

    文章目录 Web基础 域名概念 DNS域名解析 域名注册 Web1.0 与Web2.0 HTTP协议 HTTP协议概述 HTTP1.0和HTTP1.1之间的区别 HTTP方法 HTTP 状态码 小结 ...

最新文章

  1. 软件测试培训分享:如何划分bug的严重级别
  2. java filereader 示例_J04-Java IO流总结四 《 FileReader和FileWriter 》
  3. EduCoder 机器学习 决策树
  4. 2019年末逆向复习系列之Boss直聘Cookie加密字段__zp_stoken__逆向分析
  5. Ethercat解析(一)之获取、编译、安装(Ubuntu14.04)
  6. MyBatis基于Maven入门实例
  7. oracle中季末最后一天,oracle有关时间计算,得到季度第一天、最后一天
  8. Serverless 崛起背后的五大挑战
  9. datatable java排序,Java实现DataTable的过滤,排序,聚合功能
  10. Echarts多条折线图 y轴数值与实际值不符解决方法
  11. iis mysql端口修改_如何处理IIS和Apache之间经常端口冲突
  12. spring-第四篇之让bean获取所在的spring容器
  13. linux安装工具的过程
  14. vim插入模式快捷键
  15. 【深度强化学习】(4) Actor-Critic 模型解析,附Pytorch完整代码
  16. VS2008下水晶报表之简单示例
  17. MATLAB函数大全 .
  18. 升级Windows 10 22H2的五种方法
  19. virt-manager的虚拟资源中心
  20. python 存储bmp格式图片

热门文章

  1. 撩课-Mysql第18部分视图
  2. Golang-Web(HTMl模板和静态资源)
  3. netty框架及原理解析
  4. 智和网管平台SugarNMS国防军工行业综合网管解决方案
  5. [Python] 编码生成26个英文字母
  6. 如何基于 dotnetcore worker service 创建 windows 服务
  7. SSHPASS 源码分析
  8. 程序员考试下午题知识点总结
  9. 传奇服务器是测试模式怎么修改,www.23bb.net告诉你传奇服务端中默认系统提示文字修改方法...
  10. 年会模板汇总:PPT、策划案、游戏节目、流程、邀请函、背景音乐、主题词