Servlet运行原理

Servlet运行原理

比如,在浏览器地址栏输入

         http://ip:port/web01/hello

整个通信流程如下图所示:

         step1.浏览器依据ip,port建立与servlet容器之间的链接
step2.浏览器将请求数据打包(即按照http协议的要求,将相关数据封装成一个数据包,一般称之为请求数据包)并发送给servlet容器
step3.servlet容器解析请求数据包,并将解析之后得到的数据放到request对象上。同时,容器还要创建一个response对象。
step4.servlet容器依据请求资源路径(即/web01/hello)找到servlet配置(toncat看到应用名web01之后,会找webapps下面 的一个文件夹,也叫web01,进去以后有一个web.xml,打开,然后找到一个一个"/hello"的配置 跟<servlet-name>对应,<servlet-name>(如:HelloWorldServlet)又跟<servlet-class>(如:web.HelloWorldServlet)即类名对应,所以容器知道是要处理哪一个类,会调用这个类的构造器去创建servlet对象),然后创建servlet对象。
step5.容器接下来调用servlet对象的service方法,并且会将事先创建好的request对象和response对象作为service方法的
参数传递给servlet对象。
step6.servelt可以通过request对象获得请求参数,进行相应的处理,然后将处理结果写到response对象上。
step7.容器读取response对象上的数据,然后将处理结果打包(响应数据包)并发送给浏览器。
step8.浏览器解析响应数据包,将返回的的数据展现给用户。


这个过程看起来很复杂,但是其实大部分工作浏览器和服务器都帮我们做好了,我们只需要做的是7,8,9那三个步骤。


可以结合下面的代码一起理解

HelloWorldServlet类:



web.xml:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值