什么是Servlet容器?

什么是Servlet容器?什么是Servlet容器?

大家好,又见面了,我是你们的朋友全栈君。

1. 什么是Web服务器?

    想要知道什么是Servlet容器,我们首先要知道什么是Web服务器。

什么是Servlet容器?

    Web服务器使用HTTP协议来传输数据。最简单的一种情况是,用户在浏览器(客户端,client)中输入一个URL(如,www.programcreek.com/static.html),然后就能获取网页进行阅览。因此,服务器完成的工作就是发送网页至客户端。传输过程遵循HTTP协议,它指明了请求(request)消息和响应(response)消息的格式。

2. 什么是Servlet容器?

    在这里,我们发现,用户/客户端只能向服务器请求静态网页。如果用户想要根据自己的输入来读取网页,这种方式就不能满足用户的要求。Servlet容器的基本思想是在服务器端使用Java来动态生成网页。因此,Servlet容器是Web服务器和servlet进行交互的必不可少的组件。

什么是Servlet容器?

    Servlet容器就是用来装Servlet的。

3. 什么是Servlet?

    Servlet是在javax.serlvet包中定义的一个接口。它声明了servlet生命周期中必不可少的三个方法-init()、service()和destroy()。每个servlet(无论是在SDK中定义的,或是自定义的)都必须实现这三个方法,而且由服务器在特定的时刻调用。

    1. init()方法在servlet生命周期的初始化阶段被调用。它传递一个实现了javax.servlet.ServletConfig接口的对象,使得servlet能够从web application中获取初始化参数。

    2. servlet初始化收,每接收一个请求,就会调用service()方法。每个请求的处理都在独立的线程中进行。Web服务器对每个请求都会调用一次service()方法。service()方法判断请求的类型,并把它转发给相应的方法进行处理。

    3. 当需要销毁servlet对象时,就要调用destroy()方法。该方法释放被占用的资源。

    和所有的Java程序一样,servlet运行在JVM中。引入servlet容器是为了处理复杂的HTTP请求。Servlet容器负责servlet的创建、执行和销毁。

4. Servlet容器和Web服务器如何处理一个请求?

    1. Web服务器接收到HTTP请求

    2. Web服务器将请求转发给servlet容器

    3. 如果容器中不存在所需的servlet,容器就会检索servlet,并将其加载到容器的地址空间中

    4. 容器调用servlet的init()方法对servlet进行初始化(该方法只会在servlet第一次被载入时调用)

    5. 容器调用servlet的service()方法来处理HTTP请求,即,读取请求中的数据,创建一个响应。servlet会被保留在容器的地址空间中,继续处理其他的HTTP请求

    6. Web服务器将动态生成的结果返回到正确的地址。

    下图标出了上述的六个步骤:

什么是Servlet容器?

5. JVM扮演的角色

    使用servlet,就要允许JVM为处理每个请求分配独立的Java线程,这也是Servlet容器主要的优势之一。每一个servlet都是一个拥有能响应HTTP请求的特定元素的Java类。Servlet容器的主要作用是将请求转发给相应的servlet进行处理,并在JVM处理完请求后,将动态生成的结果返回至正确的地址。在大多数情况下,servlet容器运行在独立的JVM中,但如果容器需要多个JVM,也有相应的解决方案。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106038.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • elasticsearch面试常问问题_java面试题汇总

    elasticsearch面试常问问题_java面试题汇总Elasticsearch是基于Lucene的Restful的分布式实时全文搜索引擎,每个字段都被索引并可被搜索,可以快速存储、搜索、分析海量的数据。全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当查询时,根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。**(1)index索引:**索引类似于mysql中的数据库,Elasticesearch中的索引是存在数据的地方,包含了一堆有相似结构的文档数据。**(2

    2025年8月29日
    5
  • 作业调度和进程调度的辨析题_进程调度的功能有哪些

    作业调度和进程调度的辨析题_进程调度的功能有哪些很多学习完《操作系统原理》这门课程的小伙伴都应该对“FCFS(先到先服务)”、“SJF(短作业优先)”等调度算法原理比较熟悉。但是在实际做题的时候,往往一不小心就把概念搞错,不容易区分“作业调度”和“进程调度”的区别。下面我主要针对这两个概念进行解析并给出经典习题解答。PS:本博客并不详解每种调度算法的原理,因此有这方面需求的小伙伴可以直接pass了。1、作业调度作业调度又称为高级调度,频度较低。其主要工作是将位于外存后备队列中的某个(或某几个)作业调入内存,排在就绪队列上。注意了,这个时候仅仅是将作

    2022年9月29日
    4
  • WEB各种环境以及注意事项「建议收藏」

    WEB各种环境以及注意事项「建议收藏」WEB各种环境以及注意事项

    2022年4月22日
    86
  • Linux系统调用Hook姿势总结

    Linux系统调用Hook姿势总结http://www.cnblogs.com/LittleHann/p/3854977.html主题Linux相关学习资料http://xiaonieblog.com/?post=121http://hbprotoss.github.io/posts/li-yong-ld_preloadjin-xing-hook.htmlhttp://www.catonma

    2022年5月9日
    228
  • loading 遮罩层

    JS代码片段//数据请求方法vardom=$(“#loading”).length;if(!dom){$(“body”).append(“

    “);}$(“#loading”).show();//开始请求………//如果正常$(“#loading”).hide();对应的CSS设置#loading{

    2022年4月13日
    49
  • 使用nginx后如何在web应用中获取用户ip及原理解释

    使用nginx后如何在web应用中获取用户ip及原理解释

    2021年9月3日
    83
  • 发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    关注全栈程序员社区公众号