Servlet生命周期及运行过程

1.Servlet是什么?

Servletsun公司制订的一种用于扩展web服务器功能的组件规范。

       扩展方式:早期采用CGI(common gateway interface)技术。因采用 cgi程序编写的代码,可移植性差、编程相当复杂。

       现在,采用的是【容器+组件】的方式来扩展。

       【组件:】符合规范,实现特定功能,并且可以部署在容器上的软件模块

       【容器:】符合规范,为组件提供运行环境,并且管理组件的生命周期

       (将组件实例化,调用其方法、销毁组件的过程)的软件程序;

       采用【容器+组件】这种编程模型的优势:容器负责大量的基础服务

       (包括浏览器与服务器之间的网络通信、多线程、参数传递等等)。而组件只需要处理业务逻辑。另外,组件的运行不依赖于特定的容器

2.Servlet生命周期

       1)加载Servlet

       2)实例化(调用类的构造方法)

       3)初始化(调用该类对象的init()方法)

       4)处理请求(调用该类对象的service()doGet()doPost()方法)

       5)销毁对象(调用该类对象的destory()方法)

       注:在整个Servlet生命周期,只创建一个Servlet对象,提供服务,处理请求是以多线程的方式进行的,为了线程安全,一般不要在Servlet类中定义成员变量,避免多个请求共用一个成员变量,而是在方法中定义局部变量。


 3.servlet的运行过程 
从浏览器输入http://ip:port/helloweb/sayHello?name=ww 
开始分析: 
step1:浏览器一句ip,port连接服务器。 
step2:浏览器将请求数据打包(即按照http协议,将请求数据打包成一个数据包,里卖弄包含 
请求资源路径(/helloweb/sayHello?name=ww)) 
step3:浏览器发送请求(即将请求数据包发送给服务器) 
step4:服务器解析请求数据包,将数据包中的数据提取出来,生成一个request对象(请求对象,其作用是方便servlet读取请求数据) 
,另外,还要创建一个response对象(其作用是,servlet将处理结果放置到该对象之后,服务器可以从该对象获取结果,生成 
相应的相应数据包发送给浏览器)。 
step5:服务器依“/helloweb”找到部署目录下面的文件夹,找到该文件夹下面的web.xml文件。通过该文件找到servlet类名, 
接下来通过反射机制创建servlet对象。 
step6:服务器调用servlet对象的service()方法。 
在调用该方法时,会将第四部创建的request、response对象作为参数传递。 
step7:servlet处理请求,在处理请求时,可以通过request获得请求数据。也可以将处理结果放在response对象上。 
step8:服务器从response中获取数据,生成相应数据包发送给浏览器。 
step9:浏览器解析相应数据包,生成相应的界面。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值