您的位置:首页 > 其它

servlet的本质是什么,它是如何工作的?

2017-06-14 10:51 585 查看
        浏览器发送一个HTTP请求,HTTP请求由Web容器分配给特定的Servlet进行处理,Servlet的本质是一个Java对象,这个对象拥有一系列的方法来处理HTTP请求。常见的方法有doGet(),doPost()等。Web容器中包含了多个Servlet,特定的HTTP请求该由哪一个Servlet来处理是由Web容器中的web.xml来决定的。

也可以说 servlet的本质是接口,tomcat服务器上的一个对外接口

servlet中的主要方法:

init():servlet的初始化方法,仅仅执行一次;

service(): 处理请求和生成响应;

destroy(): 在服务器停止并且程序中的Servlet对象不再使用的

时候调用,只执行一次;

生命周期:

实例化 Servlet--》当Servlet容器启动或者容器检测到客户端请求时;

初始化 Servlet--》实例化后,容器调用Servlet的init()初始化对象;

处理请求 Servlet--》得到客户端请求并做出处理时;

销毁 Servlet--》当程序中的Servlet对象不再使用的时候,或者Web服务器停止运行的时候

servlet就是个类啊,可以把先它看成一个普通的类。

        这个类最开始由容器比如tomcat加载并实例化。在加载并实例化之后、初始化之前这货就是个普通的类对象,之后容器会调用它的init方法并把servletconfig对象作为参数传给它,然后这个时候这货就变成一个名副其实的servlet了,然后才有资格接受浏览器的请求。然后如果是在mvc模式下,就作为控制器运行咯,进行逻辑运算。

Servlet工作流程分为三个阶段。init(初始化),service(运行),destroy(销毁)Servlet没有main方法,所有行为由Container控制。Container就是一个java程序。在加载Servlet的.class后,Servlet会由构造函数生成一个实例,然后Container调用init()方法完成参数的初始化,接着调用service()方法,service会根据网页的请求,调用doGet或者doPost方法,最后调用销毁方法。

整理来自知乎:https://www.zhihu.com/question/21416727
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐