目录
- 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技术主要用于浏览静态页面:
然而随着时间发展,用户已经不满足于仅浏览静态页面。用户需要一些交互操作,获取一些动态结果。如果基于HTTP协议实现服务器端软件增强功能太过 复杂,所以需要一些扩展机制来实现用户想要的功能。
早期使用的Web服务器扩展机制是CGI(Common Gateway Interface,公共网关接口)。
CGI程序在一定程度上解决了用户需求。不过还存在一些不足之处,如CGI程序编写困难,响应时间较长,以进程方式运行导致性能受限。于是1997年,sun公司推出了Servlet技术,作为java阵营的CGI解决方案。
Servlet
Servlet:(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,它由Servlet容器所管理,用于生成动态的内容。 Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。Servlet被编译为平台独立 的字节码,可以被动态地加载到支持Java技术的Web服务器中运行。
根据下面这张图,我们就能知道,servlet在其中承担的作用是controller——控制器,起到对数据进行操作的作用。
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容器。
web容器作用
web容器作用:
- 通信支持: 利用容器提供的方法,你能轻松地让servlet与Web服务器对话;
- 生命周期管理: 容器控制着servlet的生与死。它会负责加载类、实例和初始化servlet、调用servlet方法,并使servlet实例能够被垃圾回收。
- 多线程支持: 容器会自动地为它接收的每个servlet请求创建一个新的java线程。针对客户机的请求,如果servlet已经运行完相应的HTTP服务方法,这个线程就会结束(也就是会死掉)。
- 声明方式实现安全: 利用容器,可以使用XML部署描述文件配置(和修改)安全性,而不必将其硬编码写到servlet(或其他)类代码中。
- JSP支持: 负责把JSP代码翻译成真正的java。
动态web的理解:
- web浏览器向web服务器发送get/post的http请求。
- Tomcat容器调用doGet/doPost方法向web服务器动态响应,请求资源。
- web服务器再向web浏览器作出http回应。
IOC容器(与前面的容器无关)
认识Ioc容器IOC容器IOC底层原理: xml解析、工厂模式、反射机制