您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

Web应用运行原理

时间:2019-08-20 09:41:28  来源:  作者:
作者:OnlyLoveVivian
来源:https://blog.csdn.net/OnlyLoveVivian/article/details/73928067

 

web应用启动做了什么?


 

读取web.xml文件

- web.xml常用配置参数:

1).context-param(上下文参数)
2).listener(监听器配置参数)
3).filter(过滤器配置参数)
4).servle(servlet页面参数)
5).其他
- 读取顺序:1)>>>2)>>>3)>>>4)(5))(具体对应的执行顺序也是如此)
- 原理及过程
1)应用在服务器上启动,容器按上述顺序自动读取web.xml中的参数
2)容器创建一个上下文对象,即ServletContext,整个web应用共享这个对象
3)容器将读取到的context-param配置参数转化为键值对,封装到ServletContext
4)创建监听器对象(Servlet容器实例化所有监听器,回调无参构造方法,调用init初始化方法)
5)创建过滤器对象(Servlet容器实例化所有过滤器,回调无参构造方法,调用init初始化方法)
注意:此时只是web应用启动时的读取文件以及初始化阶段,客户端没有发送的请求的情况下不会有其他任何操作

 

浏览器到服务器解析?


A.浏览器发送请求到服务器

 

1.在浏览器地址栏输入请求地址,浏览器解析请求URL,解析出IP地址等信息(域名解析)

2.解析后的URL信息封装成HTTP报文

3.浏览器创建一个socket调用send()方法将HTTP报文发送到服务器(以流的方式)

 

B.服务器接收到浏览器请求

 

1.web容器也会创建一个socket并且调用receive()方法接收浏览器发送过来的HTTP报文(携带有IP地址,请求参数等信息)

2.服务器解析请求信息,将请求到的静态或动态资源利用sokcet调用send()方法发送给浏览器

3.浏览器利用sokcet调用receive()方法接收服务器端发送的资源,例如html,jsp等

4.浏览器解析资源,有可能进行再次请求(例如请求css/js等文件资源),遇到有html或jsp代码将对脚本标签进行渲染

 

jsp?


 

什么是jsp?

jsp是一种运行在服务器端的脚本语言,是一种软件开发者可以动态响应给客户端的web网页技术标准。

 

jsp运行原理及过程?

 

-本质上jsp只是一个带有.jsp后缀的脚本语言文件,并不能直接在jvm(虚拟机)上运行,所以需要将其转换为一个Servlet类,才能通过jvm解释执行:

1)客户端发送请求到服务器,web容器通过jsp引擎将jsp文件转换为一个Servlet类源文件(.JAVA)(如果是第一次访问或jsp文件被修改过,那么将会重新转换为一个新的Servlet类)

2)转换过来的Servlet类进一步被java编译器编译成字节码文件(.class)

3)字节码文件被系统类加载器装载到jvm上,开始初始化、执行

 

Web应用运行原理

 

 

Servlet?


 

什么是Servlet?

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

Servlet创建?

1. 创建一个类,实现HttpServlet接口(HttpServlet继承于GenericServlet,GenericServlet(实现类)继承于Servlet接口)

2. 右键—新建Servlet(选择配置文件还是注解虚拟路径)

3. 重写doGet()和doPost()方法处理请求

Servlet运行原理?

1. Servlet没有main方法不能直接独立运行。所以需要依赖于web容器(如Tomcat),由这个容器来控制servlet从创建到销毁的过程

2.容器启动的时候,只会读取xml配置文件,如果不发生请求servlet是不会被加载运行的

3.客户端第一次发送请求,服务器接收到请求后,解析请求参数并封装成该请求对应的HttpServletRequest和HttpServletResponse对象以给容器使用

4.根据URL匹配容器中的servlet实例,若没有容器将创建和实例化一个servlet,若有则进入下一步(实例化之前类加载器将字节码文件加载过来)

5.容器调用servlet实例的init()方法完成初始化工作

6.调用service方法处理请求,判断请求方式是get还是post,再调用业务逻辑层的方法完成数据交互

7.将请求资源响应给客户端

8.服务器关闭(或者更新servlet文件),servlet实例调用destroy()方法,servlet实例被销毁

Web应用运行原理

 

 

Servlet生命周期?

1.当servlet实例调用init()方法实例化的时候,servlet的生命周期开始

2.当servlet实例调用destroy()方法的时候,servlet被销毁,生命周期结束

 

注意

- 1.servlet实例只会被加载一次,init()方法、destroy()方法也只会被调用一次

- 2.只有创建的对象会每请求一次就会创建一对(requset和response)

- 3.如果需要在实例被创建和加载的时候就完成初始化,则可以如下设置参数

@requires_authorization
<servlet> 
 <servlet-name>类名</servlet-name> 
 <servlet-class>包名.类名</servlet-class> 
 <load-on-startup>优先级别(数字)</load-on-startup> 
</servlet>

- 4.对于某些servlet没有元素,但又想提前初始化则可以进行上述配置,否则需要配置参数

- 5.get和post请求

a. get请求只能以字符串形式传递参数名和值,直接跟在URL后,安全性差;post请求在请求头中,较为安全,并且传递数据没有限制

b. get传输数据量较小;post传输数据量大

c. get请求服务器接收效果不好,不能判断是否完成发送;post方式是先发送长度,可以判断是否发送完成



Tags:Web应用   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一个渐进式的web应用程序与普通的网站没有任何不同&mdash;&mdash;它由HTML、CSS和JavaScript组成,并存在于浏览器中。PWA与常规网站的区别在于,它列出了10个需要实现的关键概...【详细内容】
2021-10-20  Tags: Web应用  点击:(45)  评论:(0)  加入收藏
在讨论如何在应用程序中应用安全性之前,您应该首先了解如何保护应用程序。为了进行恶意操作,攻击者会识别并利用应用程序的漏洞。我们经常将漏洞描述为一种弱点,它可以允许执行...【详细内容】
2021-04-21  Tags: Web应用  点击:(186)  评论:(0)  加入收藏
WAF市场的发展缘于客户需要保护内外的Web应用程序。WAF保护Web应用程序和API免受各种攻击,包括自动机器人程序、注入攻击和应用层拒绝服务(DoS)攻击。它们应提供基于特征(signat...【详细内容】
2021-01-08  Tags: Web应用  点击:(960)  评论:(0)  加入收藏
当我在 Heroku 管理安全团队时,我经常做一个噩梦:我的 PagerDuty 警报响了,提醒我发生了安全事故。在梦中,我盯着手机并意识到“不,大事不好”&mdash;&mdash;接着,我就被惊醒了。...【详细内容】
2020-12-07  Tags: Web应用  点击:(143)  评论:(0)  加入收藏
WAF是什么?WAF的全称是(Web Application Firewall)即Web应用防火墙,简称WAF。国际上公认的一种说法是:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提...【详细内容】
2020-11-12  Tags: Web应用  点击:(179)  评论:(0)  加入收藏
前言我们看到越来越多的人将他们的想法倾注到网页上。我们所指的这些人可能不熟悉网站设计和发布的技术细节,因此在建立他们的平台(网站)时可能会遇到一些问题。使用什么托管...【详细内容】
2020-10-24  Tags: Web应用  点击:(166)  评论:(0)  加入收藏
有网站的朋友们肯定了解web应用防火墙,这是目前主要防护网站安全的产品,web应用防火墙一般有三种形态,硬件、软件、云形态,一般软件和云形态用的最多,因为硬件WAF普遍价格在几十...【详细内容】
2020-09-11  Tags: Web应用  点击:(125)  评论:(0)  加入收藏
一、什么是 TypeScriptTypeScript 是近几年被火爆的应用了,这让大家产生了一个错觉:这么多的拥护者,难道TypeScript是一个新的语言?TypeScript是微软公司开发和维护的一种面向对...【详细内容】
2020-08-05  Tags: Web应用  点击:(70)  评论:(0)  加入收藏
提升Web应用的性能从未像今天这样刻不容缓。在线经济活动的比例日益提高,就连发展中国家和地区的经济活动都已经有5%以上在线进行了(相关数据请参考本文后面的资源)。在这个超...【详细内容】
2020-06-12  Tags: Web应用  点击:(261)  评论:(0)  加入收藏
众所周知,网站安全防护,对于企业非常重要。2020年HTTPS加密已经普及,传统的防火墙检测功能失效,所以对于网站来说,部署一个WEB应用防火墙十分重要,这方面商业产品很多,开源的也不少...【详细内容】
2020-05-28  Tags: Web应用  点击:(118)  评论:(0)  加入收藏
▌简易百科推荐
以京训钉开发平台接口文档为例,使用HttpClient类请求调用其接口,对数据进行增删改查等操作。 文档地址: https://www.yuque.com/bjjnts/jxd/bo1oszusing System;using System.C...【详细内容】
2021-12-28  Wednes    Tags:HttpClient   点击:(1)  评论:(0)  加入收藏
阿里云与爱快路由安装组网教程一、开通好阿里云轻量服务器之后在服务器运维-远程连接处进行远程 二、进入控制台后在root权限下根据需要安装的固件位数复制下面命令。32位:wg...【详细内容】
2021-12-28  ikuai    Tags:组网   点击:(1)  评论:(0)  加入收藏
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(5)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(3)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(35)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(10)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(22)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(31)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条