Servlet的运行原理是什么

这篇文章主要介绍“Servlet的运行原理是什么”,在日常操作中,相信很多人在Servlet的运行原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Servlet的运行原理是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联公司拥有10余年成都网站建设工作经验,为各大企业提供成都网站设计、网站建设服务,对于网页设计、PC网站建设(电脑版网站建设)、重庆App定制开发、wap网站建设(手机版网站建设)、程序开发、网站优化(SEO优化)、微网站、域名注册等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了很多网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等网站化运作于一体,具备承接各种规模类型的网站建设项目的能力。

一、UML

下图为Servlet UML关系图。

Servlet的运行原理是什么

从图中可以看出:

抽象类HttpServlet继承抽象类GenericServlet,其有两个比较关键的方法,doGet()和doPost()

GenericServlet实现接口Servlet,ServletConfig,Serializable

MyServlet(用户自定义Servlet类)继承HttpServlet,重写抽象类HttpServlet的doGet()和doPost()方法

注:任何一个用户自定义Servlet,只需重写抽象类HttpServlet的doPost()和doGet()即可,如上图的MyServlet

二、Servlet在容器中的执行过程

Servlet只有放在容器中,方可执行,且Servlet容器种类较多,如Tomcat,WebLogic等。

下图为简单的请求响应模型。

Servlet的运行原理是什么

分析:

浏览器向服务器发出GET请求(请求服务器ServletA)

服务器上的容器逻辑接收到该url,根据该url判断为Servlet请求,此时容器逻辑将产生两个对象:请求对象(HttpServletRequest)和响应对象(HttpServletResponce)

容器逻辑根据url找到目标Servlet(本示例目标Servlet为ServletA),且创建一个线程A

容器逻辑将刚才创建的请求对象和响应对象传递给线程A

容器逻辑调用Servlet的service()方法

service()方法根据请求类型(本示例为GET请求)调用doGet()(本示例调用doGet())或doPost()方法

doGet()执行完后,将结果返回给容器逻辑

线程A被销毁或被放在线程池中

注意:

在容器中的每个Servlet原则上只有一个实例

每个请求对应一个线程

多个线程可作用于同一个Servlet(这是造成Servlet线程不安全的根本原因)

每个线程一旦执行完任务,就被销毁或放在线程池中等待回收

三、Servlet在JavaWeb中扮演的角色

Servlet在JavaWeb中,扮演两个角色:页面角色和控制器角色。

有了jsp等动态页面技术后,Servlet更侧重于控制器角色,jsp+servlert+model 形成基本的三层架构

(一)页面Page角色

Servlet的运行原理是什么

(二)控制器角色

jsp充当页面角色,Servlet扮演控制器角色,两者组合构建基本的MVC三层架构模式

Servlet的运行原理是什么

四、Servlet在容器中的生命周期

下图为Servlet生命周期简要概图

Servlet的运行原理是什么

分析:

***步:容器先加载Servlet类

第二步:容器实例化Servlet(Servlet无参构造函数执行)

第三步:执行init()方法(在Servlet生命周期中,只执行一次,且在service()方法执行前执行)

第四步:执行service()方法,处理客户请求,doPost()或doGet()

第五步:执行destroy(),销毁线程

到此,关于“Servlet的运行原理是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


文章名称:Servlet的运行原理是什么
网页URL:http://ybzwz.com/article/gippco.html