Java Web工作原理

前言

之所以叫Javaweb是因为Java对Web领域的发展注入了强大的动力是web领域的主流脚本语言
一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念"一次编译,到处运行"决定了它的高度

一.软件编程体系

1.B/S模型

B/S结构:适用于广域网环境应用程序及数据库系统都安装在服务器上,客户端只需安装一个浏览器软件。处理功能都运行在服务器端。
在这里插入图片描述

优点:维护方便、易于升级和扩展。处理功能运行在服务器端,客户端零维护。软件升级只需在服务器端更新程序即可软件重用性好。
缺点:服务器负担沉重,容易成为性能的瓶颈,客户端功能十分有限。 B/S架构也可理解为web架构,包含前端、后端、数据库三大组成部分。

前端
前端开发技术工具包括三要素:HTML、CSS和JavaScript,还有很多高级的前端框架,如bootstrap、jquery, VUE等
后端
后端开发技术工具主要有:Net、JAVA、PHP, Go等
数据库
主流的三种关系型数据库:Mysql.SQLserver、Oracle ,还有Nosql非关系型数据库:Redis、Mongodb等

2.C/S模型

C/S结构:主要适用于局域网环境客户端具有独立的处理功能,同时通过网络与服务器端通信。开发工具包括C++、Delphi、Java等。在这里插入图片描述

优势:充分发挥客户端PC的处理能力,客户端响应速度快。服务器端一般不会成为性能的瓶颈。
劣势:系统的可扩展性和可维护性差。客户端需要专门安装;升级很不方便;可连接用户数有限。

在这里插入图片描述

二.http协议

定义:
HTTP (Hyper Text TransferProtocol)超文本传输协议是万维网客户端(Browser)与服务器端(Server)交互遵守的协议,是一个应用层的协议,TCP三次握手四次挥手,通过发包拆包的方式建立连接使用TCP连接进行可靠的传输。

1、HTTP协议是一种请求/应答协议,它通过客户机和服务器相互发送消息的方式工作。
2、使用HTTP消息头,可以实现客户机与服务器之间的HTTP请求和HTTP响应

在这里插入图片描述在这里插入图片描述
3、消息头分为:通用头,请求头,响应头和实体头等4类。

HTTP处理流程:
  • 建立连接
    在java底层代码中是这样实现的,子不过浏览器已经帮我们做了!
  • 发送请求信息一旦建立的TCP连接,Web浏览器就会向Web服务器发送请求命令。HTTP协议将请求封装成HTTP请求,他包括请求行,请求头,空行,消息体。
  • 回送响应信息
  • 关闭连接

三.两种网页

1.静态网页

浏览器发出一个URL请求,与服务器建立连接;服务器接到请求后,在硬盘上找到相应的文件:若是静态网页→直接传送到客户端在这里插入图片描述纯粹HTML格式的网页被称为静态网页,通常是以.htm或.html为后缀的HTML文件。

2.动态网页

动态网页文件中含有HTML标记和程序代码,后缀随程序语言的不同而不同,如.asp、.aspx、.php、.jsp等需要数据库支持。

1、动态网页是由服务器执行相应的脚本程序后,动态生成的HTML文件。
2、不同的请求及访问数据的变化会生成不同的HTML代码,网页内容随时更新。 3、具有数据库访问功能,支持客户端和服务器端的交互。

在这里插入图片描述

五.端口脚本

脚本(Scripts)是指嵌入到Web页中的程序代码,所使用的编程语言称为脚本语言。Java就可以作为一种脚本语言
按照执行方式和位置的不同,脚本分为客户端脚本和服务器端脚本。

1.客户端脚本

客户端脚本在客户机上被Web浏览器执行
下面就是一段脚本语言

  <head>
       <title>懒羊羊的第一个网页</title>   
   </head>
    <body>
    <p>沸羊羊你好!</p>
  </body >
</html>

通过在记事本编写更改文件后缀格式为.html就可在本机浏览器运行,不需要借助服务器也不需要http协议的几次握手挥手,这就是典型的客户端脚本

静态网页只能包含客户端脚本,动态网页则可以包含客户端脚本和服务器端脚本。因此,静态网页中的任何脚本都不能在服务器上运行,而动态网页中的某些脚本只能在Web服务器上运行。

2.服务器端脚本

服务器端脚本在服务器上被Web应用服务器执行

1、常见的客户端脚本语言有VBScript、JavaScript等。
2、工作机制:将脚本嵌入到Web页面中,并随着HTML文件一起传送到客户端,由浏览器解释执行。在脚本执行期间无须与服务器交互,可以对用户的操作直接做出响应。
我在本机启动tomcat服务的前提下,将脚本语言编写好以后在浏览器通过输入绝对路径的方式执行,脚本语言就变成了服务器端脚本语言

在这里插入图片描述所以还是指向一点——运行的环境决定脚本的性质
共同点:
脚本运行于服务器端,能够动态生成网页;-脚本运行不受客户端浏览器限制;
脚本被嵌入到HTML文档中,执行后返回HTML代码。

补充

服务器端网页编程

建动态服务器端内容的过程
–CGI技术
–微软的ASP和ASP.NET技术
–基于Java的Servlet/JSP技术

CGI技术

CGI即通用网关接口(Common Gateway Interface)
最大优点是它可以用Shell、Perl、C、PHP、Python等编写
但是CGI技术也有缺陷:每次请求就打开一个CGI进程,严重消耗服务器资源。极大地限制了一个服务器可以支持的并发 CGI用户数量 。

java的解决法案

Web容器;

Web容器负责管理和运行Servlet
容器对Servlet的支持包括

  • 通信支持
  • 生命周期管理
  • 多线程支持
  • JSP支持
  • 处理安全性
Servlet
  • Servlet是常规的Java代码。代码中用了一些新的API,但是不涉及新的语法。
    Servlet代码中有我们不熟悉的重要语句。Servlet不属于J2SE,它属于单独的规范。
  • Servlet对标准类(HttpServlet)进行了扩展。
  • Servlet没有main()方法。
Servlet主要任务

读取客户端发送的显式和隐式数据
生成结果
向客户端发送显式数据(即文档)和隐式数据(HTTP响应数据)

Servlet规范

规范只定义了一个容器必须实现的标准功能
Servlet容器有很多不同的实现

  • Tomcat
  • Jboss
  • WebLogic
  • WebSphere
  • Oracle9i AS
Servlet与Web容器配合处理请求和响应
  • 客户端向Web服务器发起一个HTTP请求。

  • HTTP请求被Web服务器接受,如果请求的是静态页面,则由Web服务器负责处理。如果请求的是Java Web组件(Servlet或者JSP),则移交给Web容器。Web容器可以在主机的同一个进程、不同的进程或其他的Web服务主机的进程中启动。

  • Web容器根据Servlet的配置文件确定调用的具体Servlet类,并把request对象、response对象传给它。

  • Servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么和其他的一些信息。Servlet处理完请求后把要返回的信息放入response对象返回到客户端。

  • 一旦Servlet完成了请求的处理,Web容器就会刷新response,把控制权返回给web服务器。

Java Web应用程序的组成

  • 配置文件
  • 静态文件和JSP
  • 类文件和包
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不熬夜,早点睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值