浏览器发送一个HTTP请求,HTTP请求由Web容器分配给特定的Servlet进行处理,Servlet的本质是一个Java对象,这个对象拥有一系列的方法来处理HTTP请求。常见的方法有doGet(),doPost()等。Web容器中包含了多个Servlet,特定的HTTP请求该由哪一个Servlet来处理是由Web容器中的web.xml来决定的。
作者:psyduck
链接:https://www.zhihu.com/question/21416727/answer/28555855
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
作者:温学良
链接:https://www.zhihu.com/question/21416727/answer/82511153
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
web服务器习惯处理静态页面,所以需要一个程序来帮忙处理动态请求(如当前时间)。Web服务器程序会将动态请求转发给帮助程序,帮助程序处理后,返回处理后的静态结果给web服务器程序。这样就避免了web服务器程序处理动态页面。Servlet的本质是一个帮助程序。如下图
Servlet工作流程分为三个阶段。init(初始化),service(运行),destroy(销毁)
Servlet没有main方法,所有行为由Container控制。Container就是一个java程序。
在加载Servlet的.class后,Servlet会由构造函数生成一个实例,然后Container调用init()方法完成参数的初始化,接着调用service()方法,service会根据网页的请求,调用doGet或者doPost方法,最后调用销毁方法。整个流程如下图: