文章目录
- 一. 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
- 动态web
- 技术栈
在Java中,动态web资源开发的技术统称为Javaweb
2. web应用程序
web应用程序:可以提供浏览器访问的程序
- a.html、b.html…多个web资源,这些web资源可以被外界访问,对外界提供服务
- 你们能访问到的任何一个页面或者资源,都存在这个世界的某一个角落的计算机上
- 通过URL进行查找访问
- 这些统一的web资源会被放在同一个文件下,变成一个web应用程序,要依赖于Tomcat:服务器
- 一个web应用程序由多部分组成(静态web、动态web)
web应用程序编写完毕后,若想提供给外界访问,需要一个服务器来统一管理
3. 静态web
- .htm、.html,这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取,通络。
静态web存在的缺点
- web页面无法动态更新,所有用户看到的都是同一个页面
- 它无法和数据库交互(数据无法持久化,用户无法交互)
4. 动态web
页面会动态展示,“web的页面展示的效果因人而异”
缺点
- 假如服务器的动态web资源出现了错误,我们需要重写编写我们的后台程序重新发布
优点:
- web页面可以动态更新
- 可以与数据库交互(数据持久化:注册)
二. Web结构
以下三块组成一个完整的项目
1. 什么是后端开发
- 后端开发即“服务器端”开发,主要涉及软件系统“后端”的东西。比如,用于托管网站和 App 数据的服务器、放置在后端服务器与浏览器及 App 之间的中间件,它们都属于后端。简单地说,那些你在屏幕上看不到但又被用来为前端提供支持的东西就是后端。
- 网站和移动 App 的后端
- 网站的后端涉及搭建服务器、保存和获取数据,以及用于连接前端的接口。如果说前端开发者关心的是网站外观,那么后端开发者关心的是如何通过代码、API 和数据库集成来提升网站的速度、性能和响应性。
- 与前端类似,移动 App 的后端与网站后端是一样的。为移动 App 搭建后端有这些选择:云平台(AWS、Firebase)、自己的服务器或 MBaaS(移动后端即服务,Mobile Backend as a Service)。
2. 后端和前端的区别
二. Web开发模式
1. 定义
web开发是在B/S模式下进行的一种开发形式
2. 网络应用程序的两种基本结构
(1). C/S结构(客户机/服务器)(Client/Server)
1. 定义
C/S分为客户机和服务器两层,把应用软件安装在客户机端,通过网络与服务器端相互通信
它可以分为客户机和服务器两层:
这里需要补充的是,客户端不仅仅是一些简单的操作,它也是会处理一些运算,业务逻辑的处理等。也就是说,客户端也做着一些本该由服务器来做的一些事情
2. 缺点:
- 如果应用程序改动了(例如丰富了界面,增加功能)就必须通知所有客户端重新安装,
- 维护稍有不便
- 每一台客户端都需要按照客户端软件
3. 优点:
- C/S架构的界面和操作可以很丰富。(客户端操作界面可以随意排列,满足客户的需要)
- 安全性能可以很容易保证。(因为只有两层的传输,而不是中间有很多层。
- 由于只有一层交互,因此响应速度较快。(直接相连,中间没有什么阻隔或岔路,比如QQ,每天那么多人在线,也不觉得慢)
(2). B/S结构(浏览器/服务器)(Browser/Server)
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架构的分层:
第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
第三层数据层:主要是接受客户端请求后独立进行各种运算。
5. B/S架构的几种形式:
(1). 第一种:客户端—服务器—数据库
这个应该是我们平时比较常用的一种模式:
1、客户端向服务器发起Http请求
2、服务器中的web服务层能够处理Http请求
3、服务器中的应用层部分调用业务逻辑,调用业务逻辑上的方法
4、如果有必要,服务器会和数据库进行数据交换. 然后将模版+数据渲染成最终的Html, 返送给客户端
(2). 第二种:客户端—web服务器—应用服务器—数据库
类似于第一种方法,只是将web服务和应用服务解耦
1 客户端向web服务器发起Http请求
2 web服务能够处理Http请求,并且调用应用服务器暴露在外的RESTFUL接口
3 应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给web服务器
4 web服务器将模版+数据组合渲染成html返回给客户端
(3). 第三种方法:客户端—负载均衡器(Nginx)—中间服务器(Node)—应用服务器—数据库
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(就相当一个服务)
- 服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息
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编程语言
- CGI
- PHP
- JSP(本质是Servlet)
- ASP
五. Http
1. 什么是http
HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上
- 文本:html、字符串…
- 超文本:图片、音乐、视频、定位、地图…
- 端口:80、https:443
2. 两个时代
- http1.0
- http2.0
3. http请求
- 客户端—发请求—服务器
请求行
- 请求方式:get(post)
消息头
4. http响应
响应体:
响应状态码
- 200:请求响应成功
- 3xx:请求重定向(你重新到我给你新的位置去)
- 404:找不到资源
- 5xx:服务器代码错误:500(502网关错误)
六. JSP执行流程
1. 第一次访问:
服务端将JSP翻译成Java( 严格来讲是Servlet文件),再将Java文件编译成.class文件,最终执行.class文件
存放的位置:
2. 第二次访问:
第二次直接访问class文件
如果服务端代码修改了,将会在访问时重新编译和翻译
因为第一次请求服务端,会有翻译和编译的过程,因此比较慢,后续访问可以直接访问class文件,所以访问速度会变快
但是如果服务端修改了代码,则再次访问时,会重新的翻译、编译
3. 对比自己写的index.jsp项目和翻译后的Java(严格来说是Servlet)文件
自己写的index.jsp
翻译后的Servlet文件
4. JSP和Servlet文件可以相互转换
早期只有Servlet文件
由于Servlet文件编写太过麻烦,所以出现了JSP文件