问题描述:

Web应用工作原理

问题解决:

前言

什么是web应用程序?web应用程序又是如何进行工作的呢?什么是动态网页技术?又有

哪些动态网页技术呢?这次这篇文章需要探求总结的。

Web应用

我们知道应用程序有两种模式,C/S模式和B/S模式。C/S模式是客户端/服务器模式,这类

应用程序一般独立的运行。B/S模式是浏览器/服务器模型,需要借助浏览器来运行。

web应用程序一般就是B/S模式的,所谓的web应用程序就是基于HTTP等协议,通过web访问

应用程序。

通过对两者的对比简单的谈谈B/S的优缺点:

B/S优势:

1、开发成本低

2、管理和维护相对简单

3、产品升级便利(不需要客户端的维护)

4、用户使用方便,容易上手。

5、出现故障的概率较C/S小

B/S不足:

1、通过web进行访问安全性不足

2、客户端不能随心变化

3、浏览器产品过多,网页开发的时候兼容性问题较为严重。

Web应用工作原理

了解了Web应用程序的相关概念之后我们来看看web应用程序的工作原理

通过上图可以服务器通过HTTP协议获取客户端请求信息,并向客户端返回处理之后

的响应。

HTTP协议通信原理

HTTP协议是位于OSI七层网络模型中的最上层。它是一种为操作兄和应用程序提供

访问网络接口的通信协议。

在web应用中,浏览器端发送请求数据包,服务器端返回响应数据包来实现web应用

程序的工作。当服务器向客户端返回响应后,整个连接就会关闭,是一种无状态的连接。

动态网页技术

在上述web应用工作的原理中,我们通过HTTP协议访问一个在服务端存在的文件,服务

器可以找到该文件并将其内容封装到HTTP请求体重,以消息体的形式返回给客户端。不过

这种方式无法和后台数据库进行交互,我们只能访问静态的页面。

为了解决这种办法,动态网页技术也就诞生了。其解决的办法就是为web服务器配置

一个辅助的应用程序服务器,完成用户请求的动态生成。

最早期的动态网页技术就是CGI(common gateway interface)

CGI可以使用不同的程序语言来生成动态的文件,但是CGI程序会为每一个请求开启一个进程

对于服务器的消耗比较的打。

解决这一问题可以使用多线程的方式,为每一个请求开启一个线程,减少了服务器端的资源

消耗。Java方面解决这个问题就产生了Servlet技术。

Servlet(web容器管理)

servlet是与平台无关的服务器端组件,他是运行在web容器中例如Tomcat,servlet和客户端的

通信采用的是“请求/响应”模式,Servlet组件主要负责请求和响应,例如用户登录:接受浏览器发送

的登录信息,数据库后台的验证。之后以响应的形式返回处理的结果。

Servlet容器,这里以Tomcat为例,Tomcat处理servlet和客户端的通信,调用serlvet的方法。

之后Tomcat容器和web服务器之间进行数据交互,由web服务器将结果返回给客户端。

Servlet规范和Servlet容器

servlet容器负责管理和运行servlet,从起初的设计上可以知道他是支持多线程的。

负责管理servlet的生命周期。并且可以和web服务器进行通信。使用servlet容器能够

提供一个较好的安全性,隐私数据的访问可以得到限制。有了servlet容器的支持后,coder

能够将更多的精力放在对业务逻辑的处理上。

需要说明的是现阶段有着各式的servlet容器,这就产生了一个规范性的问题,只有对servlet

容易有一个规范,web系统才能在不同的web容器上运行。

常用的servlet容器有Tomcat、JBoss、webLogic等,后续的学习中选用Tomcat。

Servlet容器在网络中的位置

以Tomcat为例,Tomcat为每个对servlet的请求都开启一个线程,tomcat同时负责管理

servlet的生命周期和他的运行。

在处理一个请求的时候,tomcat负责将请求以对象的形式(Request)传递给servlet,当servlet

处理请求后(Servlet运行结束),由tomcat刷新响应对象(Response),并将该对象返回给web

服务器,由web服务器返回给客户端。

简单Java Web应用程序的组成

说了那么多那么一个简单的java web应用程序有哪些组成部分呢?(简单应用程序)

我们在Eclipse下简单的建立一个web功能来看看吧。

/WEB-INF目录:Web应用应用部署目录,浏览客户是看不到该目录下的文件的,该目录

下的文件专供Web服务器专用。

web.xml:部署描述文件,/WEB-INF目录下最重要的文件,它描述了程序的部署、配置信息,

为Web服务器所使用。

/classes:Web应用的类文件存放处,如Web应用中的Servlet类文件、一些实用java类如

javaBeans的类文件等。该文件夹是在build目录下的,发布之后可以看见。

/lib:部署java类库文件存放处,Web应用使用的一些其他库文件存放处。

*.jsp:JSP文件,通常存放在Web应用程序的根目录上,有时为便于管理也可以存放在根目录

下的其他目录下,如根目录下的jsp目录中。

*.html:HTML文件,通常存放在Web应用程序的根目录上,有时为了便于管理也可以存放在

根目录下的其他目录下。

/src:源代码目录。

java 网页应用 原理_【转载】Web应用工作原理相关推荐

  1. mybatis 原理_了解Mybatis的工作原理吗

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:江南入直 cnblogs.com/scuury/p/10371246.html 推荐 ...

  2. 高频开关电源原理_程控开关电源的工作原理

    本文介绍了开关电源的工作原理以及它的特点. 程控开关电源要要比线性电源复杂得多. 下图是典型的开关电源工作原理图. 首先对 220 V/50Hz 的 AC 输入,通过桥式整流器进行整流 储能电容对整流 ...

  3. 简述ospf的工作原理_简述洛氏硬度计的工作原理及应用领域

    简述洛氏硬度计的工作原理及应用领域,其采用金刚石锥体或钢球作为压头.它应用一个次要负载,接着是一个主要负载,然后将负载减少到 初的次要负载.材料的硬度通过使用线性测量仪或其他工具从次要负载的第二次穿透 ...

  4. 双时隙的工作原理_双联开关的工作原理

    台灯的开关工作原理是什么 利用的是人体的静电.在按的过程中输入了脉冲.经芯片处理,改变亮度 采用触摸按键在结构方面非常简单方便,设计好的触摸按键电路板,直接贴在面板外壳上,然后用后盖压紧(或者其他方式 ...

  5. 加密机工作原理_三相异步电动机的工作原理

    三相异步电动机的工作原理,是基于定子旋转磁场和转子电流的相互作用,详细情况见下图︰ 当电动机定子绕组通过三相电流时,各相绕组中的电流都将产生自己的磁场.由于电流随时间变化,它们产生的磁场也将随时间变化 ...

  6. bmp180气压传感器工作原理_陕西压力传感器的工作原理信息推荐

    压力传感器的工作原理应用广泛的是压阻式压力传感器,它具有极低的价格和较高的精度以及较好的线性特性.下面我们主要介绍这类陕西压力传感器.在了解陕西压力传感器时,我们首先认识一下电阻应变片这种元件.电阻应 ...

  7. 调试器原理_调试器的工作原理

    调试器原理 调试器是大多数(如果不是每种)开发人员在软件工程生涯中至少使用一次的软件之一,但是你们当中有多少人知道它们的实际工作原理? 在悉尼举行的linux.conf.au 2018上的演讲中,我将 ...

  8. 三极管工作原理_三极管的基本工作原理,这个讲的很全

    晶体三极管简介 晶体三极管是p型和n型半导体的有机结合,两个pn结之间的相互影响,使pn结的功能发生了质的飞跃,具有电流放大作用.晶体三极管按结构粗分有npn型和pnp型两种类型.如图2-17所示,( ...

  9. 传感器工作原理_荧光氧气传感器工作原理简介

    冷发光是一种电子激发的物质在激发时发出的紫外线(UV).可见光(Vis)和红外线(IR)光.而光的吸收和发射之间的过程通常用一个能量级图来说明,即雅布朗斯基图.下面工采网小编通过光学原理给大家说说荧光 ...

  10. 火焰传感器工作原理_水流传感器的工作原理和故障分析

    点击上方蓝字关注我们! 当你打开热水龙头的时候,壁挂炉自动启动,热水源源不断地流出:当你关闭热水龙头后,壁挂炉则立即熄火停机.壁挂炉是通过什么知道您的生活热水需求呢?它就是一种叫做"水流传感 ...

最新文章

  1. BCH链上交易量翻5倍的背后隐藏着哪些秘密?
  2. 英特尔助力完善AI人才培养,携手微软共促地球可持续发展
  3. 深度学习(三十三)CRF as RNN语义分割-未完待续
  4. [Java] 蓝桥杯ADV-188 算法提高 排列数
  5. 转 fpga学习经验1
  6. html 倒计时,jQuery倒计时插件
  7. 计算机老出现安全警报怎么办,windows安全警报怎么关闭,教您怎么关闭windows安全警报...
  8. 百度指数 数据分析(介绍)
  9. srsLTE学习笔记(一)——eNB配置文件enb.conf解析
  10. springBoot使用poi导出Excel
  11. Boomzap一个虚拟游戏开发工作室的成功经验
  12. Zotero | 文献关联
  13. 2021支付宝集五福活动开启啦,集卡攻略来啦
  14. 常见的活体检测类别有哪些
  15. USB扫码枪获取数据流的实现方式
  16. 三百个好用又免费的软件名单
  17. HTML绝对单位,CSS长度单位有绝对单位和相对单位,其中px就是绝对单位,em就是相对单位。...
  18. 微软最强 Python 自动化工具开源了!不用写一行代码!
  19. 汇编语言 十六进制ASCII码转换为二进制显示
  20. 灯鹭推出“社会化评论功能”,评论可同步到8大社会化媒体

热门文章

  1. NLOPT ros下的使用
  2. 微信小程序中处理 获取用户地址的回调
  3. 「雕爷学编程」Arduino动手做(33)——ESP-01S无线WIFI模块
  4. python类与对象-如何为创建大量实例节省内存
  5. 动手动脑java异常处理
  6. 2018年技术上该怎样努力
  7. JS实时检测文本框内容长度
  8. 打造Linux回收站
  9. docker 容器开启ssh服务
  10. TimeSpan 用法 求离最近发表时间的函数