精华内容
下载资源
问答
  • 主要介绍了web 容器的设计如何实现的相关资料,本文旨在介绍如何设计一个web容器,只探讨实现的思路,并不涉及过多的具体实现。把它分解划分成若干模块和组件,每个组件模块负责不同的功能,需要的朋友可以参考下
  • 主要介绍了web容器中实例化spring相关配置解析,具有一定借鉴价值,需要的朋友可以参考下
  • Web容器(一):Web容器简介

    千次阅读 多人点赞 2019-06-30 12:12:36
    Jetty》-开篇词 | 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开发中 web 容器的作用(如tomcat)

    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容器解析

    千次阅读 2019-03-10 12:53:04
    web容器和web服务器的区别和联系 一、简述web服务器功能。 web服务器主要作用是处理客户请求,并作出响应。当浏览器发送一个HTTP请求到web服务器,web服务器解析请求,在内部做处理,返回一个HTTP响应给浏览器,...

    目录:

    • 简述web服务器功能
    • web服务器的限制
    • 辅助应用servlet
    • web容器的作用
    • web容器和web服务器的区别和联系

    一、简述web服务器功能。

       web服务器主要作用是处理客户请求,并作出响应。当浏览器发送一个HTTP请求到web服务器,web服务器解析请求,在内部做处理,返回一个HTTP响应给浏览器,浏览器解析此响应,并作出相应动作(例如:显示HTML页面,展示图片等等。)
    在这里插入图片描述
       浏览器和web服务器之间主要是通过http协议来进行交互。这里我们暂不讨论http协议,大家只需要知道它是一种网络通信的规范就可以了。但请求流(http请求)和响应流(http响应)的一些关键要素我们是必须要知道的,因为这涉及到了前后端交互。

    http请求的关键要素:

    • 请求方法(get、post等)
    • 资源请求路径(URL)
    • 请求参数

    http响应的关键要素:

    • 状态码(404、302等)
    • 响应内容类型(text、html等)
    • 响应内容(图片、文本等)

    二、web服务器的限制

       web服务器擅长提供静态页面。静态页面只是原封不动的呆在目录中,服务器找到静态页面,并把它原封不动的传回给客户,每个客户看到的东西都一样。但如果想要提供动态页面和动态数据,例如,淘宝网站中实时更新的商品,不同用户中购物车中的商品,在结算后写入数据库的数据等等。web服务器就显得有些力不从心了,这时就需要一个辅助应用,能够生成动态页面,而且这个应用能与web服务器通信,并且能够和后端java语言进行交互,从而从数据库存取数据。这个辅助应用就是servlet。

    三、辅助应用servlet

       servlet是sun公司提供的一门用于开发动态web资源的技术,我们一般把实现了servlet接口的java类也称之为servlet。在MVC设计模式中,servlet扮演着C(控制器)的角色,当客户请求到来,进入到servlet,servlet调用M(业务逻辑)从数据库中存取数据,并返回页面或参数给浏览器。
       但servlet也需要帮助。当请求到来时,必须有人加载、初始化和实例化Servlet,或者创建或分配一个新的线程处理这个请求,调用servlet的doGet()、doPost()方法。并需要有人创建servlet必须的参数HTTPServletRequest和HTTPServletResponse。当请求处理结束后,有人销毁servlet,管理着servlet的生命周期。这个人就是web容器。

    四、web容器

       servlet没有main()方法,它们受控于另一个Java应用,这个Java应用称为容器。
       Tomcat就是这样一个容器,如果web服务器应用(如Apache)得到一个指向某servlet的请求(而不是其他请求,如请求一个普通的静态页面),此时服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器,要由容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法,如doGet()和doPost()。

    容器能提供什么?
    (1) 通信支持
       利用容器提供的方法,你能轻松地让servlet与web服务器对话。无需自己建立ServerSocket、监听端口、创建流等等。容器知道自己与web服务器之间的协议,所以你的servlet不必担心web服务器(Apache)和你自己的web代码之间的API。你要考虑的只是如何在servlet中实现业务逻辑。
    (2)生命周期管理
       容器控制着servlet的生与死。它会负责加载类、实例化和初始化servlet、调用servlet方法、并使servlet对象能够被垃圾回收。有了容器的控制,你就不必考虑太多的资源管理了。
    (3)多线程支持
       容器会自动为它接受的每个servlet创建一个新的线程。针对客户的请求,如果servlet已经运行完相应的HTTP服务方法,这个线程就会结束(也就是会死掉)。这并不是说不用考虑线程安全性,还是会遇到同步问题的。不过,由服务器创建和管理多个线程来处理多个请求,这样确实能让你少做很多工作。
    (4)声明方式实现安全
       利用容器,可以使用xml部署描述文件来配置(和修改)安全性,而不必将其硬编码写到servlet(或其他类代码中)。不用去修改你的java源文件,也不用重新编译,你就能管理和修改安全性配置。
    (5)JSP支持
       JSP能提供动态页面,jsp会被翻译为java代码,写入到响应流中,web服务将响应对象转换为HTTP响应并返回给浏览器,浏览器解析HTTP响应,进而形成动态页面。而web容器负责将jsp翻译为java代码。

    容器如何处理请求?
    如下图所示:

    在这里插入图片描述
    图解分析:
    (1)用户点击一个链接,其URL指向一个servlet而不是静态页面。
    (2)请求到达web服务器,web服务器识别该请求为servlet请求,将请求送到web容器。
    (3)容器识别出该请求要的是一个servlet,所以容器创建2个对象HTTPServletRequest和HTTPServletResponse。
    (4)容器根据请求中的URL找到正确的servlet,为这个请求创建或分配一个线程,并把请求对象和响应对象传给这个线程。
    (5)容器调用servlet的service()方法。根据请求的不同类型,service()会调用doGet()或doPost()方法。
    (6)doGet()或doPost()方法生成动态页面或数据,并把动态页面或数据写入到响应对象。
    (7)线程结束,容器将响应对象转换为一个HTTP响应,把它发回给浏览器,然后删除请求和响应对象。

    五、web容器和web服务器的区别和联系

       我们常常将web容器和web服务器和概念和作用混合,对这2个应用总是很模糊。web容器(Tomcat)和web服务器(Apache)都可以作为一个独立的应用。web服务器擅长处理HTTP服务,但它不能处理动态页面并和数据库进行交互。这些功能web容器都可以做到,但web容器没有web服务器更擅长处理HTTP服务,所以常见的HTTPweb服务器应用经常会结合使用Apache和Tomcat,充分发挥2者的长处,Apache作为HTTPweb服务器,Tomcat作为web容器。这就是为什么我们下载的tomcat的全名为“ apache-tomcat-版本号 ”的原因所在。

    展开全文
  • 几种常见web 容器比较

    万次阅读 2018-10-25 22:32:08
    web 容器比较 tomcat jboss resin weblogic websphere glassfish Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。- ...

    web 容器比较 tomcat jboss resin weblogic websphere glassfish

    1. Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。-

    2. Jboss作为Java EE应用服务器,它不但是Servlet容器,而且是EJB容器,从而受到企业级开发人员的欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。-

    3. Resin也仅仅是一个Servlet容器,然而由于它优秀的运行速度,使得它在轻量级Java Web领域备受喜爱,特别是在互联网Web服务领域,众多知名公司都采用其作为他们的Java Web应用服务器,譬如163、ku6等。-

    在商用应用服务器里主要有:Weblogic、Websphere,其中Weblogic我也使用过很长一段时间,当时也只用其当Servlet容器,然而就在同等条件下,在性能及易用性等方面,要比Tomcat优秀很多。-

    4.glassfish是Sun公司推出的Java EE服务器,一个比较活跃的开源社区,不断的通过社区的反馈来提高其的可用性,经过glassfish v1 glassfish v2 到今天的glassfish v3 ,它已经走向成熟.Glassfish是一个免费、开放源代码的应用服务,它实现了Java EE 5,Java EE 5 平台包括了以下最新技术:EJB 3.0、JSF 1.2、Servlet 2.5、JSP 2.1、JAX-WS 2.0、JAXB 2.0、 Java Persistence 1.0、Common Annonations 1.0、StAX 1.0等.-

    支持集群,通过内存中会话状态复制,增强了部署体系结构的可用性与可伸缩性,它对集群有着很好的支持,可以简单到通过添加机器,就可轻松的提高网站的带负载能力,在解析能力方面,它对html的吞吐能力与apache服务器不分上下,就是tomcat所不能比的,支持目录部署,热部署,解决了tomcat对热部署能力的缺陷.在版本方面做的更加人性化,有开发时用的简化版,专门用于部署web项目的版本,还要完全符合j2ee标准的版本.-

    WebLogic、WebSphere、JBOSS、Tomcat之间的区别

    1:产品介绍:

    weblogic

      WebLogic是美国bea公司出品的一个application server确切的说是一个基于j2ee架构的中间件。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

    webSphere

      WebSphere是 IBM 的集成软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的集成软件。

    JBoss

    JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3.0的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与TomcatJetty绑定使用。2006年,Jboss公司被Redhat公司收购。

    Tomcat

    Tomcat是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

    2:价位不同:

    JBoss与Tomcat的是免费的。

    WebLogic与WebSphere是收费的,而且价格不菲。

    3:开源性不同:

         JBoss与Tomcat的是完全开源的,而其他两个不是。

    4:对技术的支持:

          Tomcat不支持EJB,JBoss是实现了EJB容器,再集成了Tomcat。

    WebLogic与WebSphere都是对业内多种标准的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web应用系统的实施更为简单,并且保护了投资,同时也使基于标准的解决方案的开发更加简便。 

    5:扩展性的不同:

    WebLogic和WebSphere都是以其高扩展的架构体系闻名于业内,包括客户机连接的共享、资源 pooling以及动态网页和EJB组件群集。

    6:应用范围的区别:

    Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

    WebLogic和WebSphere是商业软件,功能齐全强大,主要应用于大型企业的大型项目。

    JBOSS 主要应用于EJB服务的中小型公司。

    7:商业服务和技术支持的区别:

    因为JBoss和Tomcat都是开源免费的,所有它俩也就没有任何商业服务和技术支持,而WebLogic和WebSphere的技术文档和相关服务还是很到位,如果你的服务器哪一天出问题了,只要你能出的起钱,他们的技术工程师立刻就能出现在你面前。

    8:安全性问题

    因为JBoss和Tomcat都是开源的,所以它们的安全性相对来说比较低,万一应用服务器本身有什么漏洞,你是没办法向Apache索赔的。

    而WebLogic和WebSphere其容错、系统管理和安全性能已经在全球数以千记的关键任务环境中得以验证。

    9:与数据库的紧密结合性:

    如果硬件成本比软件成本高许多,那不如使用weblogic/Websphere。其中的道理太简单了,为什么电信/银行/移动之类的公司使用Oracle或DB2数据库,而不选用mysql。单靠tomcat是无法支持那么多的并发量,有钱的话还是选择商业产品。

     

    tomcat,Jboss,weblogic容器的作用

    Apache:全球应用最广泛的http服务器,免费,出自apache基金组织  
    Tomcat:应用也算非常广泛的web服务器,支持部分j2ee,免费,出自apache基金组织  
    JBoss:开源的应用服务器,比较受人喜爱,免费(文档要收费)  
    Weblogic:应该说算是业界第一的app   server,全部支持j2ee1.4,  对于开发者,有免费使用一年的许可证。

    Jboss也支持j2ee
    JBoss和WebLogic都含有Jsp和Servlet容器,也就可以做web容器,
    JBoss和WebLogic也包含EJB容器,是完整的J2EE应用服务器

    Tomcat 只能做jsp和servlet的container

    Jboss内嵌Tomcat...  处理静态页面Jboss的速度要比较快。
    Jboss作为应用服务器,而Tomcat做web服务器。

    一、Tomcat
    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,它是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

    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服务器。

    Tomcat 最新版本是4.0x.4.0x与3.x的架构不同,而是重新设计的。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。

    与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。

    在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。

    Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。

    另外,Tomcat提供Realm支持。Realm类似于Unix里面的group.在Unix中,一个group对应着系统的一定资源,某个group不能访问不属于它的资源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。Tomcat提供三种Realm,1:JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。2:JNDIRealm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息。3:MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm.通过Realm我们可以方便地对访问某个应用的客户进行验证。

    在Tomcat4中,你还可以利用Servlet2.3提供的事件监听器功能,来对你的应用或者Session实行监听。Tomcat也提供其它的一些特征,如与SSL集成到一块,实现安全传输。还有Tomcat也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。说到这里我们要介绍一下通常所说的应用服务器(如WebLogic)与Tomcat有何区别。应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时也支持Jsp和Servlet.而Tomcat则功能没有那么强大,它不提供EJB等支持。但如果与JBoss(一个开源的应用服务器)集成到一块,则可以实现J2EE的全部功能。既然应用服务器具有Tomcat的功能,那么Tomcat有没有存在的必要呢?事实上,我们的很多中小应用不需要采用EJB等技术,Jsp和Servlet已经足够,这时如果用应用服务器就有些浪费了。而Tomcat短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择Tomcat.

    基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make.你需要写一个build.xml文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包成WAR.事实上,在很多应用服务器的发布中都包含了Ant.另外,在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便。

    Tomcat也可以与其它一些软件集成起来实现更多的功能。如与上面提到的JBoss集成起来开发EJB,与Cocoon(Apache的另外一个项目)集成起来开发基于Xml的应用,与OpenJMS集成起来开发JMS应用,除了我们提到的这几种,可以与Tomcat集成的软件还有很多。

    二、Jboss

    JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器。因为JBoss代码遵循LGPL许可,你可以在任何商业应用中免费使用它,而不用支付费用。JBoss支持EJB 1.1和EJB 2.0 EJB3.0的规范,它是一个管理EJB的容器和服务器。类似于Sun's J2SDK Enterprise Edition(J2EE),JBoss的目标是一个源代码开放的J2EE环境。但是JBoss核心服务仅是提供EJB服务器。JBoss不包括serverlers/JSP page 的WEB容器,当然可以和Tomcat或Jetty绑定使用。

    JBoss还具有如下六大优点:

    1、JBoss是免费的,开放源代码J2EE的实现,它通过LGPL许可证进行发布。

    2、JBoss需要的内存和硬盘空间比较小。

    3、安装非常简单。先解压缩JBoss打包文件再配置一些环境变量就可以了。

    4、JBoss能够"热部署",部署BEAN只是简单拷贝BEAN的JAR文件到部署路径下就可以了。如果没有加载就加载它;如果已经加载了就卸载掉,然后LOAD这个新的。

    5、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。

    6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。

    JBoss的安装和配置可以直接拷贝使用,但是要改动 %JBoss-HOME%\bin\run.bat里JAVA-HOME的设置,改成本机JDK的目录。运行run.bat来启动JBoss

    关闭JBoss:关闭JBoss的 DOS 窗口或按"CTRL + C"。

    JBoss的目录结构
    1、bin:开始和停止JBoss的地方。
    其中有两个主要的批处理文件:run.bat和shutdown.bat。要启动JBoss只要执行run.bat文件即可
    ;要停止JBoss必须执行shutdown.bat。
    注意,shutdown.bat文件直接执行并不会自动停止JBoss,它必须要输入参数,参数意义如下:
    h显示帮助信息;D设置系统属性;-停止处理选项;s停止用JNDI URL指定的远程服务;n通过制定
    JMX名字来停止服务;a适配到指定的JNDI名称的远程服务;u指定用户名称;p指定用户密码;S停
    止服务器;e从虚拟机退出;H暂停。
    一般,我们使用S选项来停止服务器。即执行shutdown.bat -S。
    2、docs:放置JBoss的例子、测试脚本和各种脚本配置文件的DTD。
    3、lib:放置JBoss所需要的部分jar包文件。
    4、client:放置EJB客户端运行时所需要的jar包。
    5、server:放置各启动类型的服务器端EJB配置所需要的文件等。
    6、backup
    以80端口服务
    修改这个文件: {%JBOSS_HOME%}\server\default\deploy\jbossweb-tomcat41.sar\META-
    INF\jboss-service.xml
    在"8080"的配置后加入以下代码
    <!-- A HTTP/1.1 Connector on port 80 -->
    < Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="80" minProcessors="5" maxProcessors="100"
    enableLookups="true" acceptCount="10" debug="0"
    connectionTimeout="20000" useURIValidationHack="false"/>
    重新启动JBoss就OK了
    JBoss的启动过程
    设置环境变量 JBOSS_CLASSPATH (可以自己加上安全管理器和xml解析器)
    a) %JBOSS_CLASSPATH%;
    b) %JAVA_HOME%/lib/tools.jar;
    c) run.jar
    d) ../lib/crimson.jar;
    设置启动参数JAXP(xml解析器和相应工厂)
    启动
    设置配置信息
    读取配置文件JBoss.properties,保存在系统属性中(System.properties)
    设置缺省属性jboss.home和java.security.auth.login.config
    创建MBeanServer.的实例:
    把配置文件和补丁文件所在的目录指定给特定的远程类加载器Mlet
    加载保存配置文件(mlet会自动在配置文件目录中查找)
    初始化并启动MBean
    配置服务ConfigurationService
    加载配置文件
    保存配置
    服务控制ServiceControl
    初始化服务程序(init方法)
    启动服务程序(start方法)
    在JBOSS中发布文件
    1、制作JSP的war部署文件
    用"jar cvf hello.war index.jsp main.jsp"的方式生成把index.jsp和main.jsp文件加入到
    hello.war中。把生成的hello.war拷贝到jboss安装目录\server\default\deploy\下,部署成功
    。用"http://localhost:8080/hello/"或"http://localhost:8080/hello/index.jsp"这两个地址
    进行测试。
    2、制作Servlet的war部署文件
    A、用"javac -classpath "%CLASSPATH%;%jboss_home%
    \server\default\lib\javax.servlet.jar" HelloWorld.java"的形式编译HelloWorld.java(这
    是一个Servlet)得到HelloWorld.class
    B、写一个web.xml配置文件
    代码如下:
    <?xml version="1.0" encoding="UTF-8"?>
    < !DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
    < web-app>
    < servlet>
    < servlet-name>HelloWorld</servlet-name>
    < servlet-class>hello.HelloWorld</servlet-class>
    < /servlet>
    < servlet-mapping>
    < servlet-name>HelloWorld</servlet-name>
    < url-pattern>/HelloWorld</url-pattern>
    < /servlet-mapping>
    < /web-app>
    每个标记必须小写,否则会出错。
    C、先在c:\servlet下建立一个web-inf目录,在目录中放入web.xml文件。
    D、在web-inf目录下建立一个classes目录,放入编译好的HelloWorld.class文件
    E、在c:\servlet下执行jar cvf hello.war *.*,很快就生成了一个名为hello.war的文件,接着
    把hello.war复制到jboss的安装目录\server\default\deploy\下完成部署。
    3、也可以不打包,把文件放在deploy下的同名文件夹下也可以。比如原来是制作成hello.war文
    件,可以建立一个名称为hello.war的文件夹,把要发布的文件拷贝到这个目录底下也可以发布成
    功。


    补充

    1、JBoss的默认端口是8080

    2、对于NT和Win2000系统如果你要安装NT或Win2000服务的话,可以把JBoss加在系统服务中,避免你每次需要到JBoss目录下运行run.bat命令,只是当系统启动时,自动启动JBoss服务器。

    三、Weblogic

    WebLogic是美国bea公司出品的一个application server确切的说是一个基于j2ee架构的中间件,webserver是用来构建网站的必要软件用来解析发布网页等功能,它是用纯java开发的。weblogic本来不是由bea发明的,是它从别人手中买过来,然后再加工扩展。目前weblogic在世界application server市场上占有最大的份额,其他还有象IBM的websphere,免费的tomcat、resin等中间件。

    BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

    BEA WebLogic Server拥有处理关键Web应用系统问题所需的性能 、可扩展性和高可用性。

    与BEA WebLogic Commerce ServerTM配合使用, BEA WebLogic Server可为部署适应性个性化电子商务应用系统提供完善的解决方案。

    BEA WebLogic Server具有开发和部署关键任务电子商务Web应用系统 所需的多种特色和优势,包括:

    1)领先的标准

    对业内多种标准的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web应用系统的实施更为简单,并且保护了投资,同时也使基于标准的解决方案的开发更加简便。

    2)无限的可扩展性

    BEA WebLogic Server以其高扩展的架构体系闻名于业内,包括客户机连接的共享、资源pooling以及动态网页和EJB组件群集。

    3)快速开发

    凭借对EJB和JSP的支持,以及BEA WebLogic Server 的Servlet组件架构体系,可加速投放市场速度。这些开放性标准与WebGain Studio配合时,可简化开发,并可发挥已有的技能,迅速部署应用系统。

    4)部署更趋灵活

    BEA WebLogic Server的特点是与领先数据库、操作系统和Web服务器 紧密集成。

    5)关键任务可靠性

    其容错、系统管理和安全性能已经在全球数以千记的关键任务环境中得以验证。

    6)体系结构

    BEA WebLogic Server是专门为企业电子商务应用系统开发的。企业电子商务应用系统需要快速开发,并要求服务器端组件具有良好的灵活性和安全性,同时还要支持关键任务所必需的扩展、性能、和高可用性。BEA WebLogic Server简化了可移植及可扩展的应用系统的开发,并为其它应用系统和系统提供了丰富的互操作性。

    凭借其出色的群集技术,BEA WebLogic Server拥有最高水平的可扩展 性和可用性。BEA WebLogic Server既实现了网页群集,也实现了EJB组件群集,而且不需要任何专门的硬件或操作系统支持。网页群集可以实现透明的复制、负载平衡以及表示内容容错,如Web购物车;组件群集则处理复杂的复制、负载平衡和EJB组件容错,以及状态对象(如EJB实体)的恢复。

    无论是网页群集,还是组件群集,对于电子商务解决方案所要求的可扩展性和可用性都是至关重要的。共享的客户机/服务器和数据库连接以及数据缓存和EJB都增强了性能表现。这是其它Web应用系统所不具备的

     

     

     

     

     

     

     

     

     

     

     

     

    Websphere:
    这是ibm公司的网上的信息。更详细的信息可以访问网站:
    http://www-306.ibm.com/software/cn/websphere/
    WebSphere 产品家族和解决方案
    业务整合整合服务器提供了一套用于应用程序整合和业务流程自动化的中央基础设施。
    应用服务器应用服务器提供了运行互操作应用程序的平台。
    IBM Support for Apache Geronimo 
    IBM Support for Apache Geronimo
    从 Apache Software Foundation 提供一个开源 J2EE 应用服务器
    WebSphere Application Server   WebSphere Application Server
    为基础消息传递流和应用程序提供一个经济有效的整合基础平台
    WebSphere Application Server - Express
    为动态的随需应变应用程序提供 J2EE 和 Web 服务 
    WebSphere Application Server Community Edition
    WebSphere Application Server Community Edition V1.1 是 IBM 支持的基于开源的应用服务器。
    WebSphere Extended Deployment   WebSphere Extended Deployment
    WebSphere Extended Deployment V6.0 创建了随需应变的基础设施,此基础设施跨事务和长期运行两种工作负载。
    WebSphere Real Time   WebSphere Real Time
    提供可预测的响应时间
    WebSphere Remote Server   WebSphere Remote Server
    IBM WebSphere Remote Server V6.0 是领先的面向服务的架构(SOA)平台,可用于专门为存储级设备和应用程序提供集成和支持的远程托管分布式环境,无论过去、现在还是未来。
    WebSphere Remote Server for Retail
    为远程环境提供完整的集成应用服务器、数据库和消息传递平台
    数据和信息管理信息和数据管理软件提供了对任何环境中数据的存储、访问和分析。
    移动技术、语音技术和企业访问无线、普及和语音软件支持无线设备和移动设备之间的数据交换和语音交互。
    组织生产力门户与协作生产力软件提供即时消息传递、网上会议、协作门户和基于角色的环境。
    网络网络软件在用户和应用程序之间提供了集成的目录、连通性和安全性。
    软件开发软件开发工具用于设计和构建应用程序,支持开发和部署过程。
    门户 – 商务 – 个性化门户、商务和个性化软件支持业务开发、员工和客户环境。


    Weblogic:
    这是bea公司的网上的信息。更详细的信息可以访问网站:
    http://www.bea.com.cn/products/beawebLogic/index.jsp
    BEA WebLogic平台包括BEA WebLogic Server?、BEA WebLogic Portal?、BEA WebLogic Integration?、BEA WebLogic Workshop?、BEA JRockit?,是开发人员用服务来支持其应用程序的一流的应用程序平台套件。
    BEA WebLogic Server
    BEA WebLogic Server 是具有可伸缩性的企业级 Java Platform Enterprise Edition (Java EE) 应用程序服务器。WebLogic Server 基础结构支持多种类型的分布式应用程序的部署,也是生成基于 Service Oriented Architectures (SOA) 的应用程序的理想的基础。SOA 是一种设计方法论,其目标是最大限度地重复使用应用程序服务。
    WebLogic Server 完全实现了 Sun Microsystems Java EE 5.0 规范,提供了一组标准的 API 以用于创建分布式的 Java 应用程序,这些应用程序可访问多种服务,如数据库、消息传递服务和与外部企业系统的连接。最终用户客户端可使用 Web 浏览器客户端或 Java 客户端访问这些应用程序。请参阅编程模型。
    除了实现 Java EE 之外,WebLogic Server 可使企业在一个可靠、安全、具有高可用性和可伸缩性的环境中部署关键任务应用程序。当出现硬件故障或其他故障时,企业可通过这些功能配置 WebLogic Server 实例群集以分配负载并提供额外的容量。新的诊断工具允许系统管理员监视和调整已部署的应用程序的性能和 WebLogic Server 环境自身。还可以将 WebLogic Server 配置为自动监视和调整应用程序吞吐量而无需人工干预。广泛的安全功能会保护对服务的访问、保持企业数据安全和防止恶意攻击。
    BEA WebLogic Portal
    BEA WebLogic Portal 8.1简化了自定义门户的生产和管理,使用户能够利用共享的服务环境以最低的复杂性和最少的工作推广变更。
    BEA WebLogic Integration
    BEA WebLogic Integration 8.1提供了将其他情况下的两个完全不同的活动(应用程序集成和应用程序开发)融合为一个统一的业务整合解决方案。
    BEA JRockit 5.0 JDK
    使用BEA JRockit 5.0 Java Development Kit (JDK),Java开发人员能够将应用程序更快、更高效地部署到生产中,并以最少的配置获得最佳的性能。BEA WebLogic Express? 10.0
    BEA WebLogic Express 10.0 是一款功能强大、经济实惠的 Servlet 引擎,能够在最短时间内启动,并在 WebLogic? 产品系列上运行。使用 WebLogic Express 可以快速地开发和启动动态网站和基本 Web 应用程序,从而为您提供市场上最可靠的生产就绪部署。



    这是代理商的网上的信息:
    地址:http://www.soft366.com/research.asp?searchsoft=BEA%20WebLogic
    BEA WebLogic Platform
    您需要利用已有的IT资源获得竞争优势吗?通过让IT部门以逐个项目为基础全程参与应用基础结构建设,BEA Weblogic Platform简化了企业计算,能够更好地满足业务部...
    市场价:¥1800000元
    会员价:¥1000000元

       BEA WebLogic Portal
    在理想化的世界中,用户的每个门户8都应该能够快速构建,而且完全根据其访问者的要求量身定做。现在,BEA Weblogic Portal简化了定制门户的生产和管理,使用户...
    市场价:¥1140000元
    会员价:¥862524元

       BEA WebLogic Integration
    面对ERP、CRM、遗留应用、业务用户、供应链、合作伙伴,您怎样才能把所有内容清晰地加以整合?BEA WebLogic Integration 8.1 通过单一的解决方案,将业务流程管...
    市场价:¥1240000元
    会员价:¥940000元
       BEA WebLogic Server
    WebLogic Server 9.0 是迄今为止发布的最卓越的BEA应用服务器。它与J2EE 1.4完全兼容,通过交付高可靠性的、永不宕机的、可量测的、针对关键任务的整合解决方案...
    市场价:¥200000元
    会员价:¥160000元

    IBM WebSphere Application Server Processor License
    Websphere Enterprise Edition 市场价:¥200000元
    会员价:¥160000元

       WEBSPHERE APPLICATION SRVR NETWORK DEPLOYMENT PROCESSOR LIC
    Websphere ND Edition 市场价:¥300000元
    会员价:¥210000元


    Websphere:
    按照cpu和核数计算的。
    Weblogic:
    按照物理cpu数量计算。

    服务:
    Websphere:
    三种:
    1、 产品自带的电话支持。
    2、 现场支持,需要额外付费购买。
    3、 找总代级的代理商。
    Weblogic:
    两种:
    4、 电话。
    5、 邮件。
    没有现场支持。
    费用计算方式:产品报价的18%。

    首先,他们的共同之处是都是支持JSP的服务器软件。  
       
      不同之处:  
    Tomcat:是Apache   Group   Jakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码是可以免费获得的,不足之处是它的配置十分麻烦,弄不好连Apche都会摊掉,而且有一些安全性的问题没有解决,初学者可以用它来调试JSP文件,但是用作商业应用的服务器就不太妥当了。  

    BEA WebLogic Sever:是一款十分强大的服务器软件,配置比较简单,而且对JSP的扩展十分强大,附带了数据库的JDBC驱动程序,支持JHTML,是目前市场占有率最高的服务器,目前最新版本是6.1版,价格很贵,不过嘿嘿.....有破解版哦:)  

    IBM WebSphere Application Server:是IBM的产品,功能很强大,而且有IBM的开发工具相配套,开发Web程序十分方便,不过价格上万元。
    ~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~

    Boss、Geronimo及Tomcat比较分析

    文章来源中国IT实验室收集整理 作者佚名 更新时间2008-2-22 保存本文 保存本文  推荐给好友 推荐给好友  收藏本页 收藏本页

        在开源的Java应用服务器领域,像JBoss、Tomcat及Apache的Geronimo,他们不仅仅是商业领域的领跑者,同时是技术领域的先行者。当然,所有的Java EE应用服务器的实现不尽相同,但其很多方面具有一定程度的可比性。本文对JBoss4.2、Geronimo 2及Tomcat 6三种开源的Java EE应用服务器,就他们的特性、部署及性能等方面进行一一比较。
    一、        前言
    当企业级的Java应用程序需要真正的应用部署时,Java EE应用服务器是必不可少的工具。研究表明,除了商业的应用服务器之外,开源的Java EE应用服务器开始成为很多Java企业级应用的最佳选择。而JBoss、Tomcat及Apache的Geronimo是其中最主流的开源Java EE应用服务器。而这三者中,尽管JBoss和Tomcat并非100%的实现了Java EE 5标准,但这二者占有的市场份额相对比较大。Geronimo是对Java EE 5标准100%的实现,正在快速的发展。如果读者想在Java EE领域找份像样的工作,对这三种开源的应用服务器应该达到比较熟悉的程度,并能在一定程度上进行比较区分。
    在本文中,对这三种主流的应用服务器,就其特性、部署及性能等方面进行比较。分析了他们各自的特色对该应用服务器的重要性,当然,也提供了一些如何选择适合项目的服务器的原则及建议。

    二、        特性比较
    表1就JBoss 4.2、Tomcat 6及Geronimo 2的特性进行全面的比较。请注意,表中用到的“部分支持”表述,表明该应用服务器并非完全的支持,需要安装一些额外包。而其中的“原则上支持”表述,表明该应用服务器需要第三方的安装包的支持。注:三种应用服务器均在Linux、Solaris、Windows及Mac OS X上进行过测试。
    表1.Java EE应用服务器特性比较

    特性
    JBoss 4.2
    Geronimo 2
    Tomcat 6
    Java EE 5一致性
    部分支持
    完全支持
    部分支持
    支持EJB 3.0
    支持
    支持
    原则上支持
    JSP2.1和Servlet2.5
    支持
    支持
    支持
    JSF1.2
    支持
    支持
    原则上支持
    客户化插件
    支持
    支持
    不支持
    业务规则引擎
    原则上支持
    原则上支持
    原则上支持
    Hibernate3.x
    支持
    原则上支持
    原则上支持
    集群
    支持
    支持
    部分支持
    Eclipse IDE
    支持
    支持
    支持
    当读者的应用需要比较特殊的扩展,或是想与Java EE 5最贴近时,那么,Geronimo 2是最佳的开源Java EE应用服务器选择。尽管JBoss 4.2与Sun的Java EE标准在实现上有一定的出入,但JBoss 4.2 team提供了许多与Java EE标准很符合的技术,同时也扩充了Java EE 5的标准范围。而Tomcat 6本身就是一种轻量级的解决方案,所以它不并包括Java EE 5的所有特性,或是在JBoss及Geronimo中所提供的特性,但正是由于它的轻量级,才使它对内存的占有量比较少,并且比其它两种服务器运行起来更快。
    1.Java EE 5一致性
    Sun公司的Java EE 5标准是一种行业标准,而作为这种标准的实现,开源的Java EE 5应用服务器应该与其尽量的保持一致,因此Java EE 5的一致性是一个很重要的指标。在这三种开源的实现中,Geronimo是实现得最好,与Java EE 5标准最贴近的应用服务器。JBoss 4.2支持绝大部分Java EE 5的特性,当然,不久即将发布的JBoss 5将完全支持Java EE 5的所有特性。而Tomcat一般看成是JSP/servlet的容器,仅仅支持Java应用服务器的基本特性。

    2.支持EJB3
    EJB(Enterprise JavaBeans)是指能在Java EE服务器部署的Java组件。它通常将一些业务功能打包成可重用的组件。新发布的EJB3提供了许多新功能,解决了旧版本中许多问题。JBoss 4.2及Geronimo 2均支持EJB3。Tomcat 6本身并不支持EJB3,但Apache OpenEJB项目可以使Tomcat支持EJB3,据称Tomcat可以运行一种嵌入式的JBoss EJB3容器。

    3.支持JSP 2.1/Servlet2.5
    对JSP/servlet的支持是绝大部分Java服务器应提供的最基本功能。JSP2.1和Servlet2.5是Java EE 5对JSP/servlet的升级功能。JBoss 4.2、Geronimo 2及Tomcat 6均支持JSP/servlet这一特性。

    4.支持JSF 1.2
    JSF(Java Server Faces)是一种在Java EE应用部署的组件式架构。提供基本的Web开发的用户界面。与请求驱动的MVC(Model-View-Controller)的架构不同的是,JSF采用了组件驱动的模式。就目前的JSF1.2而言,JBoss 4.2及Geronimo 2都有很好的支持,而运行在Tomcat 6时有不少的问题待解决。

    5.支持客户化插件
    客户化插件支持,意味着可以在原有应用服务器功能的基础上,开发新的功能,并能很好的协同使用。在JBoss中使用MBeans(managed beans)来处理插件开发。而Geronimo也采用类似的处理方式,只是名称不一样,叫GBeans。这些客户的Beans为开发及部署客户资源时,提供一系列统一的接口。

    6.支持业务规则引擎
    几乎所有的应用程序都是建立在一系列业务规则之上,或称之为业务逻辑。而业务规则引擎组件则能帮助管理与简化业务逻辑编程。一般的编程过程中,程序员最常见的逻辑有如if/then逻辑。而有了业务规则引擎,则可以实现许多更加智能的业务逻辑。Drools作为一种业内很流行、标准化的业务规则引擎,在JBoss 4.2、Geronimo 2及Tomcat 6中均可得到支持。Geronimo完全支持Drools,而JBoss支持Drools的历史最久,已达三年之久,并使JBoss/Drools成为了一种非常有市场竞争力的业务规则解决方案。

    7.支持Hibernate 3.x
    Hibernate为Java编程提供了强有力的关系/对象模型(ORM,Object-relational mapping)。Hibernate可以将面向对象的模型映射为关系型数据库,这对Java开发来说是最有吸引力的。Hibernate作为一种开源的软件,最早就是由于JBoss的一个团队所开发(Gavin King)。当然,JBoss 4.2、Geronimo 2及Tomcat 6均支持Hibernate 3。

    8.支持JBoss Seam
    JBoss Seam是一种著名的应用框架,集成了众多的Java及Web技术,例如Ajax、JSF、Java Portlets、BPM(Business-process management)等技术。Seam是JBoss的项目,理所当然,JBoss 4.2自然支持它,同样Geronimo 2也支持JBoss Seam。据JBoss Seam的开发团队称,Tomcat可以通过使用JBoss嵌入式EJB 3容器来支持JBoss Seam。

    9.支持集群
    集群通过并行在多台服务器运行同样的服务,从而大大的提高应用的吞吐量,达到所谓的高负荷的效果。由于采用了数台服务器同时运行,所以当其中的某台服务暂时或死机时,对客户不会造成服务停止,从而达到业务的可持续。集群极大的提高了企业级的Java应用的性能、吞吐量等能力。
    JBoss 4.2、Geronimo 2及Tomcat 6均以同样的方式来支持集群。JBoss在集群层使用及时复制的方式来达到集群的目的。而Geronimo所发布的集群,还处于测试阶段,需要时间的考验,如果有兴趣,可以与Apache基金组织联系。

    10.              支持Eclipse IDE
    Eclipse是目前最流行的Java开发工具,自然,与Eclipse的集成是众多Java EE 5应用服务器应该提供的功能。JBoss、Geronimo及Tomcat均支持与Eclipse整合。特别地,JBoss还有自己的Eclipse版本,称为Red Hat Developer Studio,目前正处于测试的阶段。利用Geronimo提供的工具,可以省去手工配置XML文件的烦琐。同时,数据库连接池工具都可以自动的下载所需要的数据库连接驱动。

     

    三、        部署
    这三种应用服务器的安装均十分简单。在相关的网站上下载zip或tar包进行解压,唯一需要配置的是设置JAVA_HOME环境变量(不过一般均有配置)。注意,在Linux/Unix系统下,需要先发送chmod命令。
    1.Geronimo
    对Geronimo 2来说,进行配置及部署Java应用程序非常的简单,特别是通过它提供的Web控制台更加简单。Geronimo控制提供了许多简单的功能来帮助开发人员进行应用程序的配置。可以进行数据库的连接池测试及安全设置或配置等。

     

    Tomcat、Weblogic、Jboss、WebSphere之间的区别和联系 - zhuzhu - 津津计较

     

     

    图1.Geronimo控制台

    2.JBoss
    JBoss 4.2有非常漂亮的Web管理控制台,但它所提供的管理功能及特性与Geronimo不尽相同。首先看到的是JBoss的状态及其监测信息,但并没有提供部署功能。而部署Java应用时,只需要将它复制到default/deploy文件夹下面,JBoss会自动的检测到它并进行相关的快速部署。当然,也可以通过修改配置jboss-service.xml来进行客户应用程序所在目录的映射。

     

    Tomcat、Weblogic、Jboss、WebSphere之间的区别和联系 - zhuzhu - 津津计较
     

     

    图2.JBoss控制台
    3.Tomcat
    Tomcat 6不愧为一款快速的轻量级的应用服务器。它的控制台提供了基本的部署功能。可以通过Tomcat的控制台进行服务的启动/停止及WAR包的deploy/undeploy操作。当然也提供了Tomcat的运行状态及监测信息,同时有很好的用户授权系统。

     

    Tomcat、Weblogic、Jboss、WebSphere之间的区别和联系 - zhuzhu - 津津计较

     

    图3.Tomcat控制台

     

    四、        性能
    就可靠性而言,性能应该是所以的应用服务器所应该提供的最重要的特性。在本文中,笔者做了一个小实验,使用JSP页面及编译好的servlet来测试应用服务器所能处理的用户会话个数以及所能连接的用户数量。当然,实际的Java应用是更加复杂的,而本实验中的JSP页面及servlet是比较简单的,主要用于测试Web应用服务器的稳定性、可靠性及速度。
    使用的测试机器为:双核-64位 CPU,4G的内存,在实验中,让第一种应用服务器运行到1200000个会话。当然,这些会话不并是同时连接。

    Tomcat、Weblogic、Jboss、WebSphere之间的区别和联系 - zhuzhu - 津津计较
     Tomcat、Weblogic、Jboss、WebSphere之间的区别和联系 - zhuzhu - 津津计较 

    图4.多Session测试JSP页面结果


    图5.多Session测试servlet结果
    测试所用的代码量只有区区的几百行,为了准确起见,笔者对三种服务器使用了相同之处的配置。当然,如果采用实际的Java应用程序来测试时,所得到的数据结果图会有一定的出入,但大概的趋势会一致。
    JBoss 4.2的表现不如Geronimo2,毕竟Geronimo 2所采用的实现技术及思想都是最新的。正如图所示,Tomcat 6的性能最好,因为Tomcat 6本身就是为JSP/servlet量身定做的Java EE 5应用服务器。相比起JBoos或Geronimo需要20秒进行启动的长时间,Tomcat仅仅需要3秒钟。
    五、        小结
    在本文中,笔者比较了主流的Java EE应用服务器的特性、部署及性能方面的内容,特性方面的比较应该有利于读者选择更加适合自己项目的Java EE应用服务器,做到有目的性的选择服务器,从而达到适合的效果。
    同时,笔者测试比较了商用或开源的Java应用服务器,发现商业的Java应用服务器不一定比开源的好,反而在商业的应用服务器(如Sun的Java应用服务器或BEA的WebLogic)中的Bug比开源的的应用服务器更多些。
    JBoss、Geronimo及Tomcat是快速可靠的可用于处理部署大规模的Java企业级应用的服务器。特别值得一提的是,很多的高性能Java服务器技术都是从这些开源的应用服务器中总结与借鉴过来,而不是从那些商业的应用服务器中发展而来。


    tomcat: Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat由Apache-Jakarta子项目支持并由来自开放性源代码Java社区的志愿者进行维护。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。做为web容器轻量小巧,如果你不是使用ejb开发,那就可以用它,快速方便。 


    jboss:JBoss服务器是一种优秀的J2EE服务器,和BEA的Weblogic,IBM的Websphere属于同类产品, JBoss的优势在于具有良好的性价比,实现了所有j2ee的规范和api,支持的标准新,版本快,有开放源码的所有优点,支持热deploy,适合开发环境,尤其是大的团队开发,deploy会拖掉整个团队的效率。文档太少。启动快。   
    JBoss为完全开放源码的免费软件,而且具有良好的运行效率和可靠性,因此已经得到越来越多的J2EE应用开发者的青睐。 

    他其中的web容器就是用tomcat,不过支持了ejb,速度慢一些,不适合开发阶段,可以用于真实运行环境(免费)。 


    weblogic: WebLogic 是一套基于JAVA功能强大的电子商务套件,提供了许多功能强大的中间件以方便编程人员编写的JSP、SERVLET 等电子商务应用,可以为企业提供一个完整的商务应用解决方案。不适合开发阶段,太慢了,适合于运行环境(收费)。

    展开全文
  • web服务器、Web中间件和Web容器的区别

    万次阅读 多人点赞 2018-11-25 20:36:21
    我们经常会被Web服务器、Web容器和Web中间件这三个概念搞混。因为我们常见的很多网站要么是由IIS搭建,要么是由Apache、Tomcat、Ngnix搭建。所以,我们会把他们都叫成是Web服务器,因为他们都提供了Web服务,可以让...

    目录

    Web服务器

    中间件

    容器

    总结

    Web开发的选择


    我们经常会被Web服务器、Web容器和Web中间件这三个概念搞混。因为我们常见的很多网站要么是由IIS搭建,要么是由Apache、Tomcat、Ngnix搭建。所以,我们会把他们都叫成是Web服务器,因为他们都提供了Web服务,可以让我们通过http协议访问到。但是又有很多地方会说Tomcat是Servlet容器,而又有很多地方会说Tomcat是Web中间件!那么,他们到底是Web服务器还是容器,还是Web中间件呢???

    怀着这个问题,我查遍了网上所有的资料,终于把这几个概念好好的整理了一下。

    Web服务器

    广义的web服务器(Web Server):提供web服务的软件或主机,即Web服务器软件或装有Web服务器软件的计算机。例如:IIS、apache、nginx等。Web服务器可以处理 HTTP 协议,响应针对静态页面或图片的请求,进行页面跳转,或者把动态请求委托其它程序(它的扩展、某种语言的解释引擎(php)、Web容器)。

    所以,我们可以把 IIS、Apache、Nginx、Tomcat等都称为Web服务器,因为他们都提供了web服务。

    中间件

    中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力 。容器就是中间件的一种。

    Web中间件就是提供web应用软件和系统软件连接的软件的一个总称。

    我们来看看J2EE提出的背景:

    1、企业级应用框架的需求:在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服务。这些服务性的软件系列统称为中间件。

    2、 为了通用必须要提出规范,不然无法达到通用:在上面的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA技术的一系列标准。

    并且中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。

    所以说我们可以把Tomcat、Weblogic、Jboss等叫做Web中间件。

    相关文章:Web中间件

    容器

    容器:容器是中间件的一种,作为操作系统和应用程序之间的桥梁,给处于其中的应用程序组件提供一个环境,使应用程序直接跟容器中的环境变量交互,而不必关注其它系统问题。例如:tomcat(servlet容器),Jboss(EJB容器)。这些容器提供的接口严格遵守J2EE规范中的web application 标准。

    web容器:我们把遵守J2EE规范标准的web服务器就叫做J2EE中的web容器。处理 web服务的容器,例如tomcat(servlet容器),IIS(asp容器)。web容器用于给处于其中的应用程序组件(ASP、JSP)提供一个环境,是中间件的一个组成部分,它实现了对动态语言的解析。比如tomcat可以解析jsp,是因为其内部有一个servlet容器。

    EJB容器(Enterprise java bean ):更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

    WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而 EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如servlet不用关心http的细 节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。

    所以说,我们也可以把 IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)等叫做Web容器

    总结

    通过上面的解释,不知道你有没有搞清楚这几者之间的区别!其实,对于这些名词,也并没有一个十分清楚的概念说这个就是属于这个,而不能属于那个。他们之间很多是包含关系。

    web服务器:IIS、Apache、Nginx、Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish、Lighttpd等
    web中间件:Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish等
    web容器:IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)

    所以应该是  web服务器>web中间件>web容器

    Web开发的选择

    • 一般本地开发的话,小项目,或者是个人开发建议的话,php使用apache、asp使用IIS、jsp使用tomcat
    • 大型的项目就用 jboss 或 webloigc
    • 大项目或者商业项目一般采用:weblgoic/webshere,其他的还有 jboss、glasshfish 等

    相关文章:Web中间件



     

    展开全文
  • 常见的Web容器

    千次阅读 2020-04-22 13:59:41
    1. Apache Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是目前世界上使用最广泛的一种web server...Apache是用C语言开发的基于模块化设计的web应用,总体上看起来代码的可读性...
  • 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 好记性不如烂笔头,从网上搜罗了一...
  • Web容器Web服务器及常见的Web容器有哪些?  一、引言  首先来理解一下简单的一个请求发送到响应的过程。 首先,客户端,通常是浏览器或者一些应用发送请求到你的服务器地址,比如访问你的Url或者其他的东西。而...
  • 一、web容器 1.web容器的介绍 web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求。实际上,Web容器是一种服务程序,给处于其中的应用程序组件提供环境,...
  • servlet容器,web容器,spring容器,springmvc容器的区别

    千次阅读 多人点赞 2019-05-03 21:42:40
    web容器中有servlet容器,spring项目部署后存在spring容器和springmvc容器。其中spring控制service层和dao层的bean对象。springmvc容器控制controller层bean对象。servlet容器控制servlet对象。项目启动是,首先 ...
  • Spring容器 SpringMVC容器 web容器的关系

    千次阅读 多人点赞 2019-05-29 17:21:43
    web容器中有servlet容器,spring项目部署后存在spring容器和springmvc容器。其中spring控制service层和dao层的bean对象。springmvc容器控制controller层bean对象。servlet容器控制servlet对象。项目启动是,首先 ...
  • SpringBoot内置web容器及配置

    千次阅读 2018-07-12 07:35:05
    前言在学会基本运用SpringBoot同时,想必搭过SSH、SSM等开发框架的小伙伴都有疑惑,SpringBoot在spring的...正文使用SpringBoot时,首先引人注意的便是其启动方式,我们熟知的web项目都是需要部署到服务容器上,例...
  • web容器用于给处于其中的应用程序组件(ASP、JSP)提供一个环境,是中间件的一个组成部分,它实现了对动态语言的解析。 中间件 是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在...
  • web容器的加载过程

    千次阅读 2018-03-20 11:07:52
    web容器的加载过程:Web应用由Tomcat实例添加到Tomcat中,即由Tomcat管理一个新添加的Context容器。前面已经提到一个Web应用对应一个Context容器,也就是Servlet运行时的Servlet容器。 启动web项目后,web容器首先...
  • 文章目录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 容器间的关系图 ...
  • Web容器原理】web容器设计(1)

    千次阅读 2016-07-07 10:24:46
    开发一个web容器涉及很多不同方面不同层面的技术,例如通信层的知识,程序语言层面的知识等等,且一个可用的web容器是一个比较庞大的系统,要说清楚需要很长的篇幅,本文旨在介绍如何设计一个web容器,只探讨实现的...
  • Web服务器(软件): Apache http server, 这个它的网址,... 替代者有Nginx Web容器: tomcat, http://tomcat.apache.org/whoweare.html, 实现的是JSP,Servlet,提供了环境让...
  • Web容器启动Spring

    千次阅读 2019-02-01 17:16:47
    当Tomcat启动的时候,通过BootStrap的main方法启动,加载tomcat包下的类,读取包下的配置文件,读取Web.xml配置文件,创建ServletConfig对象,从而创建ServletContext对象,整个web容器的上下文对象,可以初始化参数等 ...
  • 为了更好地了解并实现Web容器的安全管理,笔者以两篇博客的篇幅来介绍,即:《Web容器安全管理(上)——Java EE的安全概念》 和 《Web容器安全管理(下)——容器基本身份验证》。上篇博客已经介绍了Java EE安全的...
  • 使用 Kubernetes 和 Tomcat 实现 Web 应用的容器化部署
  • Web容器的作用

    千次阅读 2017-04-20 20:29:23
    在eclipse中创建web项目时,会选择一个target runtime,意思就是在什么上面运行,也就是运行时的web容器。我们常用的Tomcat就是一种web容器。简单来说,web容器也就是servlet容器。主要有以下作用: 1.通信支持 通过...
  • 转载自...1、什么是服务器? 2、Web服务器,Web容器和应用服务器的区别?3、Apache和Tomcat的区别?4、都是服务器,那么我们经常还听到Nginx这样的服务器,和Apache的区别? 1、什么是服务器 ...
  • Web容器的理解?

    千次阅读 2018-07-18 12:30:58
    什么是Web容器Web容器是一种服务程序,给处于其中的应用程序组件提供环境,使其直接跟容器中的环境变量交互,不必关注其它系统问题。主要由应用服务器来实现,如Tomcat、JBoss、Weblogic、WebSphere等。 Web...
  • SpringBoot深入(一)--SpringBoot内置web容器及配置

    万次阅读 多人点赞 2018-03-28 19:56:02
    原因是SpringBoot除了高度集成封装了Spring一系列框架之外,还封装了web容器,SpringBoot启动时会根据配置启动相应的上下文环境,查看EmbeddedServletContainerAutoConfiguration源码可知( 这里SpringBoot启动过程...
  • Java web应用中如何判断Web容器类型

    千次阅读 2017-07-26 10:47:55
    问题背景:最近在开发一个人行的项目,由于不同的商行所使用的WEB容器不一样,导致同样的代码在不同的容器中运行的效果不一样。因此想在代码中添加容器判断,从而让应用自动选择不同的实现。 问题描述:开发阶段...
  • 简单迅速的web容器 简单迅速的web容器 简单迅速的web容器 简单迅速的web容器
  • SpringBoot嵌入式Web容器

    千次阅读 2018-08-16 12:12:07
    传统的Servlet容器有Eclipse Jetty,Apache Tomcat。 Eclipse Jetty Jetty作为Eclipse基金会的一部分,是一个开源的项目。它是一个纯粹的基于Java的网页服务器和Java Servlet容器。支持静态动态内容。 特性: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 570,178
精华内容 228,071
关键字:

web容器