目录

  • web服务器
  • Servlet
  • web容器
  • Servlet容器
  • web容器作用
  • IOC容器(与前面的容器无关)



什么是容器?

Java中有各种各样的容器,Java中的容器就是装东西用的,直白点说容器就是一段Java程序,能够帮助你管理对象间的关系,而不需要你自行编写程序处理。

容器可以管理对象的生命周期、对象与对象之间的依赖关系。


几个概念:Servlet、Servlet容器、Tomcattomcat和servlet的关系

容器服务器是什么 服务端容器_服务器


1)客户端(通常都是浏览器)访问Web服务器,发送HTTP请求。

2)Web服务器接收到请求后,传递给Servlet容器。

3)Servlet容器加载Servlet,产生Servlet实例后,向其传递表示请求和响应的对象。

4)Servlet实例使用请求对象得到客户端的请求信息,然后进行相应的处理。

5)Servlet实例将处理结果通过响应对象发送回客户端,容器负责确保响应正确送出,同时将控制返回给Web服务器。


web服务器

web服务器: 是装有能够处理具体请求事务的服务器软件(web容器)的Computer。比如最常见的www服务器、mail服务器、计费服务器、ftp服务器等等。
一般是指网站服务器,是指驻留在因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应信息,可以向浏览器等web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。

早期,web技术主要用于浏览静态页面:

容器服务器是什么 服务端容器_servlet_02

然而随着时间发展,用户已经不满足于仅浏览静态页面。用户需要一些交互操作,获取一些动态结果。如果基于HTTP协议实现服务器端软件增强功能太过 复杂,所以需要一些扩展机制来实现用户想要的功能。早期使用的Web服务器扩展机制是CGI(Common Gateway Interface,公共网关接口)。

容器服务器是什么 服务端容器_Java_03


CGI程序在一定程度上解决了用户需求。不过还存在一些不足之处,如CGI程序编写困难,响应时间较长,以进程方式运行导致性能受限。于是1997年,sun公司推出了Servlet技术,作为java阵营的CGI解决方案。

Servlet

Servlet:(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,它由Servlet容器所管理,用于生成动态的内容。 Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。Servlet被编译为平台独立 的字节码,可以被动态地加载到支持Java技术的Web服务器中运行。

根据下面这张图,我们就能知道,servlet在其中承担的作用是controller——控制器,起到对数据进行操作的作用。

容器服务器是什么 服务端容器_Web_04

web容器

web容器: 可以部署多个WEB应用程序的环境,或者说是一种服务程序,是能够支持发布web程序的软件,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,包括weblogic容器、JBoss容器、Tomcat容器 等。一个服务器可以有多个容器。

Tomcat包含servlet容器

Servlet容器

Servlet容器: 全称server applet,意为服务程序。主要作用是给上级容器(Tomcat)提供doGet()和doPost()等方法。其生命周期实例化、初始化、调用、销毁受控于Tomcat容器。 Servlet没有main方法,不能独立运行,它必须被部署到Servlet容器中,由容器来实例化和调用 Servlet的方法(如doGet()和doPost()),Servlet容器在Servlet的生命周期内包容和管理Servlet。在JSP技术 推出后,管理和运行Servlet/JSP的容器也称为Web容器。

容器服务器是什么 服务端容器_servlet_05

web容器作用

web容器作用:

  • 通信支持: 利用容器提供的方法,你能轻松地让servlet与Web服务器对话;
  • 生命周期管理: 容器控制着servlet的生与死。它会负责加载类、实例和初始化servlet、调用servlet方法,并使servlet实例能够被垃圾回收。
  • 多线程支持: 容器会自动地为它接收的每个servlet请求创建一个新的java线程。针对客户机的请求,如果servlet已经运行完相应的HTTP服务方法,这个线程就会结束(也就是会死掉)。
  • 声明方式实现安全: 利用容器,可以使用XML部署描述文件配置(和修改)安全性,而不必将其硬编码写到servlet(或其他)类代码中。
  • JSP支持: 负责把JSP代码翻译成真正的java。

动态web的理解:

  1. web浏览器向web服务器发送get/post的http请求。
  2. Tomcat容器调用doGet/doPost方法向web服务器动态响应,请求资源。
  3. web服务器再向web浏览器作出http回应。

IOC容器(与前面的容器无关)

认识Ioc容器IOC容器IOC底层原理: xml解析、工厂模式、反射机制