Java Web基础概述

发布时间:2023-10-28 18:30

文章目录

  • 一. JavaWeb基本概念
    • 1. 前言
    • 2. web应用程序
    • 3. 静态web
    • 4. 动态web
  • 二. Web结构
    • 1. 什么是后端开发
    • 2. 后端和前端的区别
  • 二. Web开发模式
    • 1. 定义
    • 2. 网络应用程序的两种基本结构
      • (1). C/S结构(客户机/服务器)(Client/Server)
        • 1. 定义
        • 2. 缺点:
        • 3. 优点:
      • (2). B/S结构(浏览器/服务器)(Browser/Server)
        • 1. 定义
        • 2. 优点
        • 3. 缺点
        • 4. B/S架构的分层:
        • 5. B/S架构的几种形式:
          • (1). 第一种:客户端—服务器—数据库
          • (2). 第二种:客户端—web服务器—应用服务器—数据库
          • (3). 第三种方法:客户端—负载均衡器(Nginx)—中间服务器(Node)—应用服务器—数据库
  • 三. Web应用服务器
    • 1.服务器概念
    • 2.常见的web服务器
  • 四. Web编程语言
  • 五. Http
    • 1. 什么是http
    • 2. 两个时代
    • 3. http请求
    • 4. http响应
  • 六. JSP执行流程
    • 1. 第一次访问:
    • 2. 第二次访问:
    • 3. 对比自己写的index.jsp项目和翻译后的Java(严格来说是Servlet)文件
    • 4. JSP和Servlet文件可以相互转换

一. JavaWeb基本概念

1. 前言

web开发:

  • web:网页的意思(从网上获取相应的资源页面)

  • 静态web

      html、css
      提供给所有人看的数据始终不会发生变化
    
  • 动态web

      提供给所有人看的数据始终发生变化,
      每个人在不同的时间,不同的地点看到的信息各不相同
    
  • 技术栈

      Servlet/JSP、ASP、PHP
    

在Java中,动态web资源开发的技术统称为Javaweb

2. web应用程序

web应用程序:可以提供浏览器访问的程序

  • a.html、b.html…多个web资源,这些web资源可以被外界访问,对外界提供服务

  • 你们能访问到的任何一个页面或者资源,都存在这个世界的某一个角落的计算机上

  • 通过URL进行查找访问

  • 这些统一的web资源会被放在同一个文件下,变成一个web应用程序,要依赖于Tomcat:服务器

  • 一个web应用程序由多部分组成(静态web、动态web)

      html、css、js
      jsp、servlet程序
      java程序
      jar包
      配置文件(Properties)
    

web应用程序编写完毕后,若想提供给外界访问,需要一个服务器来统一管理

3. 静态web

  • .htm、.html,这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取,通络。
    Java Web基础概述_第1张图片

静态web存在的缺点

  • web页面无法动态更新,所有用户看到的都是同一个页面

      动态页面:轮播图、点击特性、伪动态
      JavaScript[实际开发使用最多]
      VBScript
    
  • 它无法和数据库交互(数据无法持久化,用户无法交互)

4. 动态web

页面会动态展示,“web的页面展示的效果因人而异”
Java Web基础概述_第2张图片
缺点

  • 假如服务器的动态web资源出现了错误,我们需要重写编写我们的后台程序重新发布

      停机维护
    

优点:

  • web页面可以动态更新
  • 可以与数据库交互(数据持久化:注册)

Java Web基础概述_第3张图片

二. Web结构

以下三块组成一个完整的项目

Java Web基础概述_第4张图片

1. 什么是后端开发

  • 后端开发即“服务器端”开发,主要涉及软件系统“后端”的东西。比如,用于托管网站和 App 数据的服务器、放置在后端服务器与浏览器及 App 之间的中间件,它们都属于后端。简单地说,那些你在屏幕上看不到但又被用来为前端提供支持的东西就是后端。
  • 网站和移动 App 的后端
  • 网站的后端涉及搭建服务器、保存和获取数据,以及用于连接前端的接口。如果说前端开发者关心的是网站外观,那么后端开发者关心的是如何通过代码、API 和数据库集成来提升网站的速度、性能和响应性。
  • 与前端类似,移动 App 的后端与网站后端是一样的。为移动 App 搭建后端有这些选择:云平台(AWS、Firebase)、自己的服务器或 MBaaS(移动后端即服务,Mobile Backend as a Service)。

2. 后端和前端的区别

Java Web基础概述_第5张图片
Java Web基础概述_第6张图片

二. Web开发模式

1. 定义

web开发是在B/S模式下进行的一种开发形式

2. 网络应用程序的两种基本结构

(1). C/S结构(客户机/服务器)(Client/Server)

Java Web基础概述_第7张图片

1. 定义

C/S分为客户机和服务器两层,把应用软件安装在客户机端,通过网络与服务器端相互通信

它可以分为客户机和服务器两层:

第一层:  在客户机系统上结合了界面显示与业务逻辑;
第二层:  通过网络结合了数据库服务器。

简单的说就是第一层是用户表示层,第二层是数据库层。

这里需要补充的是,客户端不仅仅是一些简单的操作,它也是会处理一些运算,业务逻辑的处理等。也就是说,客户端也做着一些本该由服务器来做的一些事情

2. 缺点:

  • 如果应用程序改动了(例如丰富了界面,增加功能)就必须通知所有客户端重新安装,

  • 维护稍有不便

  • 每一台客户端都需要按照客户端软件

3. 优点:

  • C/S架构的界面和操作可以很丰富。(客户端操作界面可以随意排列,满足客户的需要)

  • 安全性能可以很容易保证。(因为只有两层的传输,而不是中间有很多层。

  • 由于只有一层交互,因此响应速度较快。(直接相连,中间没有什么阻隔或岔路,比如QQ,每天那么多人在线,也不觉得慢)

(2). B/S结构(浏览器/服务器)(Browser/Server)

Java Web基础概述_第8张图片

1. 定义

B/S架构的全称为Browser/Server,即浏览器/服务器结构。

Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。

B/S架构的系统无须特别安装,只有Web浏览器即可。

其实就是我们前端现在做的一些事情,大部分的逻辑交给后台来实现,我们前端大部分是做一些数据渲染,请求等比较少的逻辑。

2. 优点

1、客户端无需安装,有Web浏览器即可直接访问服务端。
2、B/S架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3、B/S架构无需升级多个客户端,升级服务器即可。可以随时更新版本,而无需用户重新下载什么的。

3. 缺点

1、在跨浏览器上,B/S架构不尽如人意。
2、表现要达到C/S程序的程度需要花费不少精力。
3、在速度和安全性上需要花费巨大的设计成本,这是B/S架构的最大问题。
4、客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)

4. B/S架构的分层:

第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。

第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。

第三层数据层:主要是接受客户端请求后独立进行各种运算。

Java Web基础概述_第9张图片

5. B/S架构的几种形式:

(1). 第一种:客户端—服务器—数据库

Java Web基础概述_第10张图片
Java Web基础概述_第11张图片
这个应该是我们平时比较常用的一种模式:

1、客户端向服务器发起Http请求

2、服务器中的web服务层能够处理Http请求

3、服务器中的应用层部分调用业务逻辑,调用业务逻辑上的方法

4、如果有必要,服务器会和数据库进行数据交换. 然后将模版+数据渲染成最终的Html, 返送给客户端

(2). 第二种:客户端—web服务器—应用服务器—数据库

Java Web基础概述_第12张图片
类似于第一种方法,只是将web服务和应用服务解耦

1 客户端向web服务器发起Http请求

2 web服务能够处理Http请求,并且调用应用服务器暴露在外的RESTFUL接口

3 应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给web服务器

4 web服务器将模版+数据组合渲染成html返回给客户端

(3). 第三种方法:客户端—负载均衡器(Nginx)—中间服务器(Node)—应用服务器—数据库

Java Web基础概述_第13张图片
1、整正暴露在外的不是真正web服务器的地址,而是负载均衡器器的地址

2、客户向负载均衡器发起Http请求

3、负载均衡器能够将客户端的Http请求均匀的转发给Node服务器集群

4、Node服务器接收到Http请求之后,能够对其进行解析,并且能够调用应用服务器暴露在外的RESTFUL接口

5、应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给Node

6、Node层将模版+数据组合渲染成html返回反向代理服务器

7、反向代理服务器将对应html返回给客户端

三. Web应用服务器

1.服务器概念

  • Web 服务器一般指网站服务器,也称之为 WWW(World Wide Web)服务器。是指驻留于因特网上某种类型计算机的程序。这个服务器并不是硬件服务器,而是软件服务器。其主要功能是提供网上信息浏览服务,可以向发出请求的浏览器提供文档,也可以放置网站文件,让全世界浏览;还可以放置数据文件,让全世界下载等。

2.常见的web服务器

  • ①Apache是世界使用排名第一的Web服务器软件。它几乎可以运行在所有的计算机平台上。由于Apache是开源免费的,因此有很多人参与到新功能的开发设计,不断对其进行完善。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
  • ②WebLogic 是美国 Oracle 公司出品的一个应用程序服务器,主要用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用的 Java 应用服务器,主要用于部署大型分布式项目使用。
  • ③IIS 是一种 Web 服务组件,其中包括 Web 服务器、FTP 服务器、NNTP 服务器和 SMTP 服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,主要用来部署 ASP.NET 项目使用。
  • ④Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
  • ⑤Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

主要包括:Tomcat、Jboos、Weblogic、IIS、Jetty(就相当一个服务)

  • 服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息
    Java Web基础概述_第14张图片

IIS

  • 微软的;ASP…Windows自带的

Tomcat

  • Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
  • Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学web的人来说,是最佳选择
  • 而Tomcat 实际上运行JSP 页面和Servlet。

四. Web编程语言

  1. CGI

  2. PHP

     PHP开发速度快,功能强大,跨平台,代码简单(70%,WP)
     无法承载大访问量的情况(局限性)
    
  3. JSP(本质是Servlet)

     sun公司主推的B/S架构
     基于Java语言的(所有的大公司,或开源组件,都是由Java写的)
     可以承载三高(高并发、高可用、高性能)问题带来的影响
     语法像ASP,ASP-->JSP
    
  4. ASP

     微软:国内最早流行的就是ASP
     在HTML中嵌入了VB脚本,ASP+COM
     在ASP开发中,基本一个界面都有几千行业务代码,页面极其混乱
     维护成本高
     语言是C#
     IIS服务器
    

五. Http

1. 什么是http

HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上

  • 文本:html、字符串…
  • 超文本:图片、音乐、视频、定位、地图…
  • 端口:80、https:443

2. 两个时代

  • http1.0

      客户端/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
    
  • http2.0

      客户端/1.0:客户端可以与web服务器连接后,可以获得多个web资源
    

3. http请求

  • 客户端—发请求—服务器
百度
General

Request URL: https://www.baidu.com/   请求地址
Request Method: GET					请求方法
Status Code: 200 OK					状态码
Remote Address: 36.152.44.95:443	远程地址
Referrer Policy: strict-origin-when-cross-origin	协议


Request Headers

Accept:text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Connection: keep-alive

请求行

  • 请求方式:get(post)

      get:请求能够携带的参数比较少,大小有限制,会在浏览器URL地址栏显示,不安全,但高效
      post:请求能够携带数据没有限制,大小没有限制,不会再浏览器显示,安全,但不高效
    

消息头

Accept:text/html			告诉浏览器,它所支持的数据类型
Accept-Encoding: gzip, deflate, br	支持哪种编码格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 告诉浏览器,它的语言环境
Cache-Control: max-age=0	缓存控制
Connection: keep-alive		告诉浏览器,请求完成时断开还是保持连接
HOST:	主机

4. http响应

百度
Response Headers

Cache-Control: private      缓存控制
Connection: keep-alive		连接:保证连接
Content-Encoding: gzip		编码
Content-Type: text/html		类型

响应体:

Accept:text/html			告诉浏览器,它所支持的数据类型
Accept-Encoding: gzip, deflate, br	支持哪种编码格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 告诉浏览器,它的语言环境
Cache-Control: max-age=0	缓存控制
Connection: keep-alive		告诉浏览器,请求完成时断开还是保持连接
HOST:	主机
Refresh:告诉客户端多久刷新一次
Location:让网页重新定位

响应状态码

  • 200:请求响应成功
  • 3xx:请求重定向(你重新到我给你新的位置去)
  • 404:找不到资源
  • 5xx:服务器代码错误:500(502网关错误)

六. JSP执行流程

Java Web基础概述_第15张图片

1. 第一次访问:

服务端将JSP翻译成Java( 严格来讲是Servlet文件),再将Java文件编译成.class文件,最终执行.class文件

存放的位置:
Java Web基础概述_第16张图片

2. 第二次访问:

第二次直接访问class文件

如果服务端代码修改了,将会在访问时重新编译和翻译

因为第一次请求服务端,会有翻译和编译的过程,因此比较慢,后续访问可以直接访问class文件,所以访问速度会变快

但是如果服务端修改了代码,则再次访问时,会重新的翻译、编译

3. 对比自己写的index.jsp项目和翻译后的Java(严格来说是Servlet)文件

自己写的index.jsp

Java Web基础概述_第17张图片
翻译后的Servlet文件

Java Web基础概述_第18张图片

4. JSP和Servlet文件可以相互转换

早期只有Servlet文件

由于Servlet文件编写太过麻烦,所以出现了JSP文件

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号