-
Web容器
2016-09-25 10:59:22目录 1.Java Web相关概念 ...2.Web容器的作用 主要参考文章: http://www.cnblogs.com/yezhaohui/archive/2013/05/21/3091931.html http://www.cnphp6.com/archives/51094 好记性不如烂笔头,从网上搜罗了一...目录
主要参考文章:
http://www.cnblogs.com/yezhaohui/archive/2013/05/21/3091931.html
http://www.cnphp6.com/archives/51094好记性不如烂笔头,从网上搜罗了一些个人觉得写的比较好,而且比较重要的Java Web相关概念,汇总如下。
1.Java Web相关概念
1.1中间件
所谓中间件指的是提供系统软件和应用软件之间连接的软件,中间件处在操作系统、网络、数据库等系统软件层之上,应用软件层之下,其作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。这样设计的好处是:将应用程序运行环境与操作系统分离,从而使应用程序开发者不必再考虑诸多的系统通信问题,而直接关注该应用程序的功能实现。我们常说到的容器的概念其实就是中间件的一种。
J2EE提出的背景:
1、企业级应用框架的需求:在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次在开发中都由开发人员来完成的话,势必将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服务,这些服务性的软件系列统称为中间件。
2、 为了通用必须要提出规范,不然无法达到通用,在上面的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA技术的一系列标准。
目前常见的中间件角色:
Apache的Tomcat、IBM公司的WebSphere、BEA公司的WebLogic、Kingdee公司的Apusic都属于中间件。并且中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。
1.2容器
容器其实就是一种中间件,常见的有:WEB容器(WEB服务器)、EJB容器、应用服务器。
WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,JSP容器和SERVLET容器。使JSP,SERVLET直接跟容器中的环境变量接口交互,不必关注其它系统问题。主要由WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。
EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。
WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是实现了与外界环境的交互,从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。
应用服务器:作为服务器执行共享业务应用程序的底层的系统软件。
支持J2EE的应用服务器:
WEBSPHERE、WEBLOGIC、JBOSS、ORACLE APPLICATION SERVER、SUN ONE APPLICATION SERVER 等。
2.Web容器的作用
#1,通信支持
利用容器提供的方法,你可以轻松的让servlet与web服务器进行通信,而不用创建serverSocket去监听某个端口,创建流等,容器知道和web服务器之间的协议,servlet不用去关心web服务器和web代码之间的API,只需要将重点放在业务逻辑上面。
#2,生命周期管理
容器控制着servlet的生与死,容器控制servlet的加载,实例化和初始化以及确保servlet能被正常回收,总之不用太多考虑资源管理。
#3,多线程管理
容器自动地为每一个servlet请求创建一个java线程,针对客户的请求,如果servlet已经运行完了Http相应的服务方法后,这个线程就可以被kill掉了,但是这并不意味着我们在写servlet的时候不用考虑同步问题了,只是容器帮我们创建和管理多个线程来处理多个请求而已。
#4,声明方式实现安全
利用容器,可以使用web.xml部署描述来配置安全性,而不用硬编码在servlet中。
#5,jsp支持
容器将jsp代码翻译成java代码。
Web容器处理请求工作流程
-
web容器
2012-08-11 17:54:36web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以多个容器 Tomcat 很受...web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以多个容器
Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。 -
web 容器
2012-08-27 16:02:10所谓的服务器,广义上讲有很多的概念,硬件角度上说就是一台高性能的Computer...很多时候人们常把诸如Tomcat、IIS、Weblogic 也称之为web服务器, 这对初学者很容易造成混淆,其实这些只是用于开发、集成、部署和管理W所谓的服务器,广义上讲有很多的概念,硬件角度上说就是一台高性能的Computer。我们通常指的服务
器其实应该是装有能够处理具体请求事务的服务器软件的Computer。比如最常见的www服务器、mail服务
器、计费服务器、ftp服务器等等。很多时候人们常把诸如Tomcat、IIS、Weblogic 也称之为web服务器,
这对初学者很容易造成混淆,其实这些只是用于开发、集成、部署和管理Web应用、网络应用和数据库应
用的应用服务器软件。
那么web容器有该如何理解呢?通俗的讲web容器就是能够支持发布web程序的软件。
b/s结构下,以常见的自来水供水系统为例来说,整个web系统好比完整的供水系统,用户只需要有水龙头(Broswer),水管相当于计算机网络(network),自来水公司的供水系统(即Server),其中的压力水罐
就是容器(Container)了。
Tomcat是Apache-Jarkarta的一个子项目,是一个开放式源码,免费支持JSP和Servlet技术的容器,它同时又是一个Web服务器软件.由于很多初学者都是用Tomcat作开发的,所以总体上有一个明确的把握还是有
必要的。
servlet容器的主要任务是管理servlet的生命周期。而你说的web容器更准确的说应该叫web服务器,它是来管理和部署web应用的。还有一种服务器叫做应用服务器,它的功能比web服务器要强大的多,因为它可以部署EJB应用,可以实现容器管理的事务,一般的应用服务器有weblogic和websphere等,它们都是商业服务器,功能强大但都是收费的。web容器最典型的就是tomcat了,Tomcat是web容器也是servlet容器。
-
Web容器(一):Web容器简介
2019-06-30 12:12:36Jetty》-开篇词 | Java程序员如何快速成长 + 01_Web容器学习路径 Web容器 Web技术的发展史 早期的Web应用主要用于浏览新闻等静态页面,HTTP服务器(比如Apache、Nginx)向浏览器返回静态HTML,浏览器负责解析HTML,...本文参照:极客时间-《深入拆解 Tomcat & Jetty》-开篇词 | Java程序员如何快速成长 + 01_Web容器学习路径
Web容器
Web技术的发展史
早期的Web应用主要用于浏览新闻等静态页面,HTTP服务器(比如Apache、Nginx)向浏览器返回静态HTML,浏览器负责解析HTML,将结果呈现给用户。
随着互联网的发展,我们已经不满足于仅仅浏览静态页面,还希望通过一些交互操作,来获取动态结果,因此也就需要一些扩展机制能够让HTTP服务器调用服务端程序。
于是Sun公司推出了Servlet技术。你可以把Servlet简单理解为运行在服务端的Java小程序,但是Servlet没有main方法,不能独立运行,因此必须把它部署到Servlet容器中,由容器来实例化并调用Servlet。
而Tomcat和Jetty就是一个Servlet容器。为了方便使用,它们也具有HTTP服务器的功能,因此Tomcat或者Jetty就是一个“HTTP服务器 + Servlet容器”,我们也叫它们Web容器。
其他应用服务器比如JBoss和WebLogic,它们不仅仅有Servlet容器的功能,也包含EJB容器,是完整的Java EE应用服务器。从这个角度看,Tomcat和Jetty算是一个轻量级的应用服务器。在微服务架构日渐流行的今天,开发人员更喜欢稳定的、轻量级的应用服务器,并且应用程序用内嵌的方式来运行Servlet容器也逐渐流行起来。
Web容器与Spring、Web应用等的关系
Servlet技术是Web开发的原点,几乎所有的Java Web框架(比如Spring)都是基于Servlet的封装,Spring应用本身就是一个Servlet,而Tomcat和Jetty这样的Web容器,负责加载和运行Servlet。你可以通过下面这张图来理解Tomcat和Jetty在Web开发中的位置。
Web容器作用
Web容器处理流程
1.client点击一个URL,其URL指向一个servlet
2.容器识别出这个请求索要的是一个servlet,所以创建两个对象:httpservletrequest、httpservletresponse
3.容器根据请求中的URL找到对应的servlet,为这个请求创建或分配一个线程,并把两个对象request和response传递到servlet线程中
4.容器调用servlet的service()方法。根据请求的不同类型,service()方法会调用doGet()或者doPost()方法
5.doGet()方法生成动态页面,然后把这个页面填入到response对象中
6.线程结束,容器把response对象转换成http响应,传回client,并销毁response和request对象
Web容器涉及的知识点
Tomcat和Jetty作为工业级的中间件,它们的设计非常优秀,比如面向接口编程、组件化、骨架抽象类、一键式启停、对象池技术以及各种设计模式,比如模板方法、观察者模式、责任链模式等。
Web容器如何学习?
操作系统基础
Java语言其实是对操作系统API的封装,上层应用包括Web容器都是通过操作系统来工作的,因此掌握相关的操作系统原理是我们深刻理解Web容器的基础。
对于Web容器来说,操作系统方面你应该掌握它的工作原理,比如什么是进程、什么是内核、什么是内核空间和用户空间、进程间通信的方式、进程和线程的区别、线程同步的方式、什么是虚拟内存、内存分配的过程、什么是I/O、什么是I/O模型、阻塞与非阻塞的区别、同步与异步的区别、网络通信的原理、OSI七层网络模型以及TCP/IP、UDP和HTTP协议。
《UNIX环境高级编程》。
Java语言基础
Java的基础知识包括Java基本语法、面向对象设计的概念(封装、继承、多态、接口、抽象类等)、Java集合的使用、Java I/O体系、异常处理、基本的多线程并发编程(包括线程同步、原子类、线程池、并发容器的使用和原理)、Java网络编程(I/O模型BIO、NIO、AIO的原理和相应的Java API)、Java注解以及Java反射的原理等。
此外你还需要了解一些JVM的基本知识,比如JVM的类加载机制、JVM内存模型、JVM内存空间分布、JVM内存和本地内存的区别以及JVM GC的原理等。
《Java核心技术》、《Java编程思想》、《Java并发编程实战》和《深入理解Java虚拟机:JVM高级特性与最佳实践》等。
Java Web开发基础
具备了一定的操作系统和Java基础,接下来就可以开始学习Java Web开发,你可以开始学习一些通用的设计原则和设计模式。这个阶段的核心任务就是了解Web的工作原理,同时提高你的设计能力,注重代码的质量。我的建议是可以从学习Servlet和Servlet容器开始。
Web框架的本质是,开发者在使用某种语言编写Web应用时,总结出的一些经验和设计思路。很多Web框架都是从实际的Web项目抽取出来的,其目的是用于简化Web应用程序开发。
以Spring框架为例,给你讲讲Web框架是怎么产生的。Web应用程序的开发主要是完成两方面的工作。
•设计并实现类,包括定义类与类之间的关系,以及实现类的方法,方法对数据的操作就是具体的业务逻辑。
•类设计好之后,需要创建这些类的实例并根据类与类的关系把它们组装在一起,这样类的实例才能一起协作完成业务功能。
Spring框架就是对Servlet的封装,Spring应用本身就是一个Servlet,而Servlet容器是管理和运行Servlet的,因此我们需要先理解Servlet和Servlet容器是怎样工作的,才能更好地理解Spring。
-
编写简单的Web容器TomDog(揭Web容器面纱)
2018-10-12 15:29:12从事Java Web编程的朋友都知道,一个web应用的组成必须要有web.xml,因为这个是web应用程序的入口,通常我们会选择一种Web容器来发布我们的Web项目,比如Tomcat、Weblogic等容器服务程序。 这些程序都遵从一个标准... -
Web容器Web服务器及常见的Web容器有哪些?
2018-12-15 09:28:29Web容器Web服务器及常见的Web容器有哪些? 一、引言 首先来理解一下简单的一个请求发送到响应的过程。 首先,客户端,通常是浏览器或者一些应用发送请求到你的服务器地址,比如访问你的Url或者其他的东西。而... -
web服务器、Web中间件和Web容器的区别
2018-11-25 20:36:21我们经常会被Web服务器、Web容器和Web中间件这三个概念搞混。因为我们常见的很多网站要么是由IIS搭建,要么是由Apache、Tomcat、Ngnix搭建。所以,我们会把他们都叫成是Web服务器,因为他们都提供了Web服务,可以让... -
servlet容器,web容器,spring容器,springmvc容器,dubbo容器之间区别
2020-03-18 21:30:00文章目录1 各个容器1.1 Web容器1.2 Servlet容器1.3 Servlet容器和ServletContext的关系1.4 Spring容器和SpringMVC容器1.5 spring与springmvc容器区别1.6 dubbo容器与spring,springmvc容器区别2 容器间的关系图 ... -
servlet容器,web容器,spring容器,springmvc容器的区别
2019-05-03 21:42:40web容器中有servlet容器,spring项目部署后存在spring容器和springmvc容器。其中spring控制service层和dao层的bean对象。springmvc容器控制controller层bean对象。servlet容器控制servlet对象。项目启动是,首先 ... -
web容器解析
2019-03-10 12:53:04web容器和web服务器的区别和联系 一、简述web服务器功能。 web服务器主要作用是处理客户请求,并作出响应。当浏览器发送一个HTTP请求到web服务器,web服务器解析请求,在内部做处理,返回一个HTTP响应给浏览器,... -
Servlet容器和Web容器
2015-09-01 13:53:54Web容器,负责管理和部署Web应用,其本身可能具备Servlet容器组件;如果没有,一般能将第三方Servlet容器作为组件整合进Web容器。 1.Web容器好比电视机,Servlet容器好比VCD。 没有Servlet容器,你也可以用Web容器... -
Web容器、Servlet容器、Spring容器、SpringMVC容器之间的关系
2019-10-31 10:39:21web容器(web服务器)主要有:Apache、IIS、Tomcat、Jetty、JBoss、webLogic等,而Tomcat、Jetty、JBoss、webLogic同时也是servlet容器,或者说他们还包含了servlet容器。没有servlet容器,你也可以用web容器直接... -
Servlet容器与Web容器
2017-02-04 15:01:33web容器更准确的说应该叫web服务器,它是来管理和部署 web应用的。还有一种服务器叫做应用服务器,它的功能比web服务器要强大的多,因为它可以部署EJB应用,可以实现容器管理的事务,一般的应用服务器 有weblogic和... -
【Web容器原理】web容器设计(1)
2016-07-07 10:24:46开发一个web容器涉及很多不同方面不同层面的技术,例如通信层的知识,程序语言层面的知识等等,且一个可用的web容器是一个比较庞大的系统,要说清楚需要很长的篇幅,本文旨在介绍如何设计一个web容器,只探讨实现的... -
web容器,spring容器,MVC容器介绍
2017-12-08 16:23:00对于一个web 应用,其部署在web 容器中,web 容器为其提供一个全局的上下文环境(ServletContext ),为其后面的spring IoC 容器提供宿主环境 -
web容器,servlet容器,spring容器,springmvc容器的联系
2020-02-03 23:55:25关系图 借鉴网上看到的一张图,来源于: ...web容器中有servlet容器,spring容器,springmvc容器。 servlet容器保存 Servlet对象。 springmvc容器保存 Controller对象。 spring容器保存 Service、Dao对象。 spring容... -
spring容器,springMVC容器和web容器的区别
2018-10-12 11:43:42Tomcat(web容器)是管理servlet对象的地方,而spring和springMVC是管理bean对象的地方,更进一步的讲,spring是管理service和dao的容器,springMVC是管理controller的容器。其次,spring容器和springMVC容器是父子... -
关于Web容器,servlet容器和web应用的关系
2018-08-20 18:14:24web容器:负责管理和部署web应用,其本身可能具备servlet容器组件;如果没有,一般能将第三方servlet容器作为组件整合进web容器。 没有servlet容器,你也可以用web容器直接访问静态页面,比如安装一个apache等,但是... -
Undertow web容器
2019-07-23 23:55:34Undertow web容器一、Undertow 介绍二、使用undertow2.1、依赖添加2.2、在启动类,配置undewtow-server bean2.3、对比Tomcat启动日志输出2.4、对HTTP 2.0的支持2.5、配置undertow三、undertow 的深入 一、Undertow ... -
一句话理解web容器、Tomcat容器、Servlet容器
2019-05-30 13:41:53一句话理解web容器、Tomcat容器、Servlet容器 兴哥码记 18-04-2709:37 Tomcat容器属于web容器的一种,web容器还包括weblogic容器、JBoss容器等;而Tcomcat、webLogic等包含servlet容器。 个人的一句话理解,有... -
web容器启动spring容器
2016-10-15 13:11:30spring容器是如何在web应用中得到应用的,web容器又是如何以及何时启动spring容器的呢?web.xml中配置 <!---①从类路径下加载spring配置文件-> <param-name>contextConfigLocation clas -
Web容器 与Spring容器 启动
2016-11-21 17:04:20web容器 与 Spring容器启动顺序与关系 -
servlet容器和web容器
2015-10-16 08:42:561. web容器好比 电视机 servlet容器好比 VCD 没有VCD你可以看电视,对吧,但是有了VCD没有电视机,你从哪看起?:) 没有servlet容器,你也可以用web容器直接访问静态页面,比如安装一个apache等,但是如果要显示jsp... -
servlet容器与web容器区别
2017-05-22 16:25:45而你说的web容器更准确的说应该叫web服务器,它是来管理和部署web应用的。还有一种服务器叫做应用服务器,它的功能比web服务器要强大的多,因为它可以部署EJB应用,可以实现容器管理的事务,一般的应用服务器有... -
Web服务器 sevlet容器 Web容器的区别
2013-04-18 21:03:32servlet容器,负责管理servlet生命周期。... 应用服务器,其功能远远大于web容器,因为它可以部署EJB应用,可以实现容器管理的事务,一般的应用服务器有weblogic和websphere等,它们都是商业服务器,功能强
-
海南大学java web考试题.pdf
-
数据库系统概论复习题.pdf
-
Halcon学习之五:有关图像的定义域的函数.doc
-
Halcon学习之边缘检测函数.doc
-
2021-01-22
-
具体考虑要不要给你打电话
-
vue element-ui在el-popover中加入form表单的问题
-
3H3geoserver.rar
-
【数据分析-随到随学】量化交易策略模型
-
【2021】Python3+Selenium3自动化测试(不含框架)
-
apache-maven-3.6.3-bin.zip
-
Halcon学习之一:查询图像参数.doc
-
Java虚拟机执行子系统(class文件结构与字节码指令、类加载机制、执行引擎)
-
Linkis 0.11.0 发布,新增 ElasticSearch 与 Presto 引擎
-
Day04-数据分析实战-论文种类分类(DataWhale)
-
2021最新Kubernetes(k8s)集群实战精讲
-
数据类型转换、运算符、方法入门
-
【数据分析-随到随学】数据分析建模和预测
-
云计算基础-Linux系统管理员
-
通信原理不挂科-6-数字带通传输系统.pdf