Java学习——Servlet 本质是什么 servlet运行原理
浏览器发送一个HTTP请求,HTTP请求由Web容器分配给特定的Servlet进行处理,Servlet的本质是一个Java对象,这个对象拥有一系列的方法来处理HTTP请求。常见的方法有doGet(),doPost()等。Web容器中包含了多个Servlet,特定的HTTP请求该由哪一个Servlet来处理是由Web容器中的web.xml来决定的。
1、概念
一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来动态扩展Web服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的 servlet类。
2、原理
当客户端浏览器向服务器请求一个 Servlet 时,服务器收到该请求后,首先到容器中检索与请求匹配的 Servlet 实例是否已经存在。 若不存在,则 Servlet 容器负责加载并实例化出该类 Servlet的一个实例对象,接着容器框架负责调用该实例的 init() 方法来对实例做一些初始化工作,然后Servlet 容器运行该实例的 service() 方法。 若 Servlet 实例已经存在,则容器框架直接调用该实例的 service() 方法。 service() 方法在运行时,自动派遣运行与用户请求相对应的 doXX() 方法来响应用户发起的请求。 通常,每个 Servlet 类在容器中只存在一个实例,每当请求到来时,则分配一条线程来处理该请求。
3、作用
4、优缺点
(1)优点 可移植性好:Servlet是用Java语言编写的,具有完善的Servlet API标准,企业编写的Servlet程序,可以轻松地移植到其他服务器中。 执行效率高:Servlet请求到来的时候激活Servlet,请求处理完,等待新的请求,新的请求将生成一个线程而不是进程。 使用方便:Servlet可以轻松地处理HTML表单数据,并读取和设置HTTP头,处理Cookie,跟踪会话。 (2)缺点: web.xml配置量太多,不利于团队开发; servlet具有容器依赖性,不利于单元测试; servlet处理的请求很局限
5、总结
在此,我们认识到了Servlet的运行机制,知道了它相当于一个控制器,这让我们想起来什么呢,那就是在MVC中的Controller,对,它们的功能非常相似,说白了,Servlet就是一个控制器,这样,我们理解起来就简单了。所以我们要将新知识与旧知识联系起来,这样才能构建自己的知识网。
下一篇:
C语言打印下列的几种类型的金字塔