Servlet调用过程

当浏览器向服务器发送HTTP请求时,服务器会分析请求并定位到相应的Web应用和资源。通过web.xml找到匹配的Servlet,首次访问时创建Servlet实例并调用init()方法初始化。每个请求都会执行service()方法,其中request对象存储请求信息,response对象用于响应。Servlet生命周期包括创建、初始化、服务和销毁。当Web应用移除或服务器关闭时,Servlet会被销毁,销毁前调用destroy()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要了解一下,当在页面向服务器发送http请求时,服务器是如何处理的?

1.服务器收到http请求后会进行分析,判断出是那台主机发送的请求

根据host请求头来判断是那台主机,如果没有host请求头则访问虚拟主机

2.分析当前访问的是主机中的哪个Web应用

3.分析当前访问的是web应用中的哪个资源

4.查找web.xml文件,查看有没有相应的虚拟路径,如果没有则报错;如果有,则用这个虚拟路径找到相应的Servlet,最终由该Servlet去做出响应。

5.服务器作出响应后,如果该请求是第一次访问该Servlet时,就创建一个Servlet对象。

创建Servlet后首先会调用init()方法进行初始化。

注意:此时涉及到了Servlet的生命周期:

1.Servlet在第一次被访问时服务器创建出Servlet对象,Servlet对象创建成功后立即调用init()方法进行初始化,

创建出的Servlet对象会一直驻留在内存中,为后续对该Servlet的访问提供服务。

2.每次对Servlet的访问都会执行Servlet的service()方法,在service()方法中写入response响应信息,进行响应处理

注意:service()方法的执行需要两个参数request和response,在service()方法执行之前(即Servlet对象调用之前),服务器会创建request和response对象,request对象存放Http请求的请求头信息和实体内容,response对象为空。

注意:request和response对象都是由服务器创建的,与浏览器无关。浏览器和服务器之间只是简单的发送Http请求和Http响应。

3.当web应用移除容器或者服务器被关闭时,Servlet对象会被销毁。在Servlet对象销毁之前,会调用Servlet的destory()方法做一些善后的处理。(Servlet的生命周期到此结束)


补充:在调用在执行Servlet的service()方法时,将响应信息写入response对象后,服务器会从response对象中获取写入的数据,组织成Http响应消息打给浏览器,浏览器获得Http响应后进行解析,最终在页面显示我们想要的内容。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值