什么叫web容器以及作用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么叫web容器以及作用?相关的知识,希望对你有一定的参考价值。

就是一种所谓的中间件
你想,如果让你凭空写一个能通过web访问的程序,是不是很难?
有了web容器,只要按照它的规范写出功能逻辑(比如servlet,又比如asp)就可以了,而网络连接管理,会话管理等功能都由容器实现,大大简化了开发
参考技术A tomcat 是SERVLET的容器。

web 容器就是实现了JAVA的那些接口:javax.servlet。
而且JSP也是SERVLET的

web 容器启动后一直运行,监听所有提交到他所监控的那个端口的请求,并对此做出反映。

个人理解, 之前有看过人家别人写的web容器的例子, 不过忘记了,如果你写深入理解, 自己搜索把。
参考技术B 比如tomcat, 没有它, servlet就运行不了.

Web容器的作用

在eclipse中创建web项目时,会选择一个target runtime,意思就是在什么上面运行,也就是运行时的web容器。我们常用的Tomcat就是一种web容器。简单来说,web容器也就是servlet容器。主要有以下作用:

1.通信支持

通过web容器中的方法,只需简单的操作就能实现servlet与web服务器间的通信。而不需要自己创建socket,监听接口、新的流等一系列复杂的操作。Servlet容器包含在web服务器中,web服务器监听来自特定端口的HTTP请求,这个端口通常是80。当客户端(使用web浏览器的用户)发送一个HTTP请求时,Servlet容器会创建新的HttpServletRequest和HttpServletResponse对象,并且把它们传递给已经创建的Filter和URL模式与请求URL匹配的Servlet实例的方法,所有的这些都使用同一个线程。
request对象提供了获取HTTP请求的所有信息的入口,比如请求头和请求实体。response对象提供了控制和发送HTTP响应的便利方法,比如设置响应头和响应实体(通常是JSP生成的HTML内容)。当HTTP响应被提交并结束后,request和response对象都会被销毁。

2.控制servlet生命周期

如何加载类,实例化和初始化servlet,调用servlet方法,并使servlet实例能够被垃圾回收。有了容器,我们就不用花精力去考虑这些资源管理垃圾回收之类的事情。当Servlet容器启动时,它会部署并加载所有的web应用。当web应用被加载时,Servlet容器会一次性为每个应用创建Servlet上下文(ServletContext)并把它保存在内存里。Servlet容器会处理web应用的web.xml文件,并且一次性创建在web.xml里定义的Servlet、Filter和Listener,同样也会把它们保存在内存里。当Servlet容器关闭时,它会卸载所有的web应用和ServletContext,所有的Servlet、Filter和Listner实例都会被销毁。

3.多线程支持

为每个servlet请求创建一个线程,servlet运行完成后容器就会自动结束这个线程。

web容器处理http请求过程示意图如下:


以上是关于什么叫web容器以及作用?的主要内容,如果未能解决你的问题,请参考以下文章

Web容器的作用

不同用户访问web项目,这些不同的请求,叫多进程,还是叫啥?

转载web开发中 web 容器的作用(如tomcat)

求教web中间件和web容器的区别,找一个真的懂的人教我谢谢

云原生之Docker容器安装以及入门Docker部署web应用&&云原生基石

Docker-compose容器编排的使用Web项目架构(前台web数据和后台数据库以及负载均衡容器统一部署在一个容器中)