博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
servlet的本质是什么,它是如何工作的?
阅读量:4096 次
发布时间:2019-05-25

本文共 971 字,大约阅读时间需要 3 分钟。

        浏览器发送一个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

转载地址:http://ehlii.baihongyu.com/

你可能感兴趣的文章
Spring处理表单提交
查看>>
Spring MVC异常处理
查看>>
Leetcode 1180. Count Substrings with Only One Distinct Letter [Python]
查看>>
PHP 7 的五大新特性
查看>>
php使用 memcache 来存储 session
查看>>
php实现socket(转)
查看>>
PHP底层的运行机制与原理
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
PHP7新特性 What will be in PHP 7/PHPNG
查看>>
比较strtr, str_replace和preg_replace三个函数的效率
查看>>
ubuntu 下编译PHP5.5.7问题:configure: error: freetype.h not found.
查看>>
PHP编译configure时常见错误 debian centos
查看>>
configure: error: Please reinstall the BZip2 distribution
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
【增强学习在无人驾驶中的应用】
查看>>
《python+opencv实践》四、图像特征提取与描述——29理解图像特征
查看>>
《python+opencv实践》四、图像特征提取与描述——30Harris 角点检测
查看>>
《python+opencv实践》四、图像特征提取与描述——31 Shi-Tomasi 角点检测& 适合于跟踪的图像特征
查看>>