servlet的是什么,它是如何工作的?
2018-01-12 20:36
816 查看
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。
<img src="https://pic3.zhimg.com/50/v2-1cb5b57ffab54838ad59983a8adbcdc8_hd.jpg" data-rawwidth="750" data-rawheight="436" class="origin_image zh-lightbox-thumb" width="750" data-original="https://pic3.zhimg.com/v2-1cb5b57ffab54838ad59983a8adbcdc8_r.jpg">
工作模式:
1、客户端请求该 Servlet;
2、加载 Servlet 类到内存;
3、实例化并调用init()方法初始化该 Servlet;
4、service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions());
5、destroy();
6、加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet;
7、Server 创建一个 Servlet的实例;
8、第一个客户端的请求到达 Server;
9、Server 调用 Servlet 的 init() 方法(可配置为 Server 创建 Servlet 实例时调用,在 web.xml 中 <servlet> 标签下配置 <load-on-startup> 标签,配置的值为整型,值越小 Servlet 的启动优先级越高);
10、一个客户端的请求到达 Server;
11、Server 创建一个请求对象,处理客户端请求;
12、Server 创建一个响应对象,响应客户端请求;
13、Server 激活 Servlet 的 service() 方法,传递请求和响应对象作为参数;
14、service() 方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息;
15、service() 方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如 doGet() 或 doPost() 或程序员自己开发的新的方法;
16、对于更多的客户端请求,Server 创建新的请求和响应对象,仍然激活此 Servlet 的 service() 方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用 init() 方法。一般 Servlet 只初始化一次(只有一个对象),当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的 destroy() 方法。
Servlet工作流程分为三个阶段。init(初始化),service(运行),destroy(销毁)
Servlet没有main方法,所有行为由Container控制。Container就是一个java程序。
在加载Servlet的.class后,Servlet会由构造函数生成一个实例,然后Container调用init()方法完成参数的初始化,接着调用service()方法,service会根据网页的请求,调用doGet或者doPost方法,最后调用销毁方法。整个流程如下图:
<img src="https://pic2.zhimg.com/50/3fdb2abf692cb5edb833e139504ede39_hd.jpg" data-rawwidth="664" data-rawheight="536" class="origin_image zh-lightbox-thumb" width="664" data-original="https://pic2.zhimg.com/3fdb2abf692cb5edb833e139504ede39_r.jpg">
Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。
<img src="https://pic3.zhimg.com/50/v2-1cb5b57ffab54838ad59983a8adbcdc8_hd.jpg" data-rawwidth="750" data-rawheight="436" class="origin_image zh-lightbox-thumb" width="750" data-original="https://pic3.zhimg.com/v2-1cb5b57ffab54838ad59983a8adbcdc8_r.jpg">
工作模式:
1、客户端请求该 Servlet;
2、加载 Servlet 类到内存;
3、实例化并调用init()方法初始化该 Servlet;
4、service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions());
5、destroy();
6、加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet;
7、Server 创建一个 Servlet的实例;
8、第一个客户端的请求到达 Server;
9、Server 调用 Servlet 的 init() 方法(可配置为 Server 创建 Servlet 实例时调用,在 web.xml 中 <servlet> 标签下配置 <load-on-startup> 标签,配置的值为整型,值越小 Servlet 的启动优先级越高);
10、一个客户端的请求到达 Server;
11、Server 创建一个请求对象,处理客户端请求;
12、Server 创建一个响应对象,响应客户端请求;
13、Server 激活 Servlet 的 service() 方法,传递请求和响应对象作为参数;
14、service() 方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息;
15、service() 方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如 doGet() 或 doPost() 或程序员自己开发的新的方法;
16、对于更多的客户端请求,Server 创建新的请求和响应对象,仍然激活此 Servlet 的 service() 方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用 init() 方法。一般 Servlet 只初始化一次(只有一个对象),当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的 destroy() 方法。
Servlet工作流程分为三个阶段。init(初始化),service(运行),destroy(销毁)
Servlet没有main方法,所有行为由Container控制。Container就是一个java程序。
在加载Servlet的.class后,Servlet会由构造函数生成一个实例,然后Container调用init()方法完成参数的初始化,接着调用service()方法,service会根据网页的请求,调用doGet或者doPost方法,最后调用销毁方法。整个流程如下图:
<img src="https://pic2.zhimg.com/50/3fdb2abf692cb5edb833e139504ede39_hd.jpg" data-rawwidth="664" data-rawheight="536" class="origin_image zh-lightbox-thumb" width="664" data-original="https://pic2.zhimg.com/3fdb2abf692cb5edb833e139504ede39_r.jpg">
相关文章推荐
- 如何打开JSP文件/JS和JSP的区别/Servlet的本质是什么,是如何工作的?
- servlet的本质是什么,它是如何工作的?
- servlet的本质是什么,它是如何工作的?
- servlet的本质是什么,它是如何工作的?
- iOS 和 Android 的后台推送工作原理各是如何?有什么区别?
- HTTP Keep-Alive是什么?如何工作?
- 大学该如何渡过这几年,该为工作准备写什么?
- 通过什么途径能够深入了解JavaScript引擎是如何工作的?
- AJAX 是什么?如何工作?
- JavaWeb学习之什么JSP、JSP是如何工作的、JSP语言(各种指令和九大内置对象)、EL表达式简单使用(5)
- 什么是互联网数据中心及它是如何工作?
- 如何做各种各样的澄清剂的工作什么是最好的方式来实现清晰在我的啤酒
- 什么是.NET?什么是CLI?什么是CLR?IL是什么?JIT是什么,它是如何工作的?GC是什么,简述一下GC的工作方式?
- SpringMVC是如何让Controler替代Servlet工作的
- 通过什么途径能够深入了解JavaScript引擎是如何工作的?
- Android之AIDL的全称是什么?如何工作?能处理哪些类型的数据?
- Servlet 如何工作-
- AIDL的全称是什么?如何工作?能处理哪些类型的数据?
- 什么是互联网数据中心及它是如何工作?
- Linux里Makefile是什么?它是如何工作的?