servlet是啥_Web服务器与Servlet容器

Web服务器与Servlet容器

往常看博客的过程中,总会看到Web容器,web容器,Servlet容器总搞不清楚它们到底是啥东西,是个什么关系。以前总觉得这些东西非常高端,所以最近就在空闲时间抽空好好查阅了一下资料,整理出本文对进行系统的学习。

博客上不同的人有不同的叫法,有的人叫做Web容器,有的人叫做web服务器,这两个东西大致指的是同一个东西。我认为web服务器更符合规范一点,并且更容易和Servlet容器区分开来,所以本文中统一称为web服务器。

在学习过程中,我们可以将抽象的东西具体化,就会好理解很多了。我们将网页使用过程中的一些静态资源想象成为电视频道(没有动态内容,我们只能被迫接受一样的内容),将静态资源想象成可以在电视上玩的游戏(具有动态内容,我们能够人为操作),这样一来我们就可以将web容器想象成电视,而Servlet容器想象成switch。买不起switch咱照样可以看电视,但是如果买了switch却没有电视那不是白给。

web服务器

用户通过浏览器向web服务器发送HTTP请求,web服务器解析HTTP请求将请求路径的文件返回给浏览器,浏览器再将文件渲染给用户查看。

e52bf92ae5260bc47f544b93aff10503.png

简单来说Web服务器是指提供web服务的软件或主机,主要返回服务端的静态文件的。

作用

  • 管理和布置web应用
  • 响应针对静态页面或图片的请求
  • 将动态请求委托给其他程序(Servlet容器、CGI等等技术)

Servlet容器

如果浏览器中请求的是动态资源的话,web服务器就无法处理了。所以前辈就开发了Server Applet(Servlet)来对动态请求进行处理返回动态资源。

往往一个web应用中会有非常多的Servlet,如果让开发人员自己手动来对如此多的Servlet手动管理它们的生命周期,业务逻辑,通信方式的话,估计就没人做web开发了吧。

f3cba38f377c72cbdd3e92b2550fc250.png

所有就有大神帮我们实现了一套叫做Servlet容器的东西来统一加载和管理Servlet。

010cea994e1b48a0e716bf9e3d56cc0f.png

这样一来HTTP服务器不直接跟servlet打交道,而是把请求交给Servlet容器去处理,Servlet容器会将请求转发到具体的Servlet,如果这个Servlet还没创建,就加载并实例化这个Servlet,然后调用这个Servlet的接口方法。

因此Servlet接口其实是Servlet容器跟具体业务类之间的接口,这样做的话就达到了HTTP服务器与业务类解耦的目的,简化了开发过程。

作用

  • 管理业务类(Servlet)
    • 负责加载类、实例化和初始化Servlet
    • 调用Servlet的service方法提供服务
    • 管理Servlet实例的垃圾回收
    • 管理Servlet之间的共同资源(servletContext)
  • 处理动态请求
    • 解析包装请求
    • 调用某个Servlet
    • 将Servlet的执行结果返回给请求端
  • 多线程
    • 自动为它所接收的每个Servlet请求创建一个新的java线程
    • 但是也会出现线程安全问题
  • 实现简便安全
    • 使用xml部署描述文件来配置和修改安全性
  • JSP支持
    • 负责将jsp代码翻译为真正的java代码
  • 管理通信
    • 负责管理servlet与web服务器之间的通信

​ 如果对这篇文章感兴趣,想学习更多的技术,也可以关注我的个人微信公众号。里面会不定期分享一些学习积累技术文章,同时也会有一些碎碎念的日常博文,笔芯!

89f9acf351b07f62801249d19f8a1403.png

参考文章

web容器与servlet容器的区别

Web容器、Servlet容器、Spring容器、SpringMVC容器之间的关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值