请教一个外行的问题:tomcat既然本身具有Web服务能力,为什么还需要和apache搭配呢?

03-12-17 bjzch

本人刚刚开始了解j2ee,有一个小问题求教:

网上有很多文档说tomcat本身就具有 web server功能,那为什么还要和apache配合使用呢?单纯用tomcat,一身两职:web server + j2ee RI不行吗?

请高手赐教,谢谢!

1
bjzch
2003-12-17 18:07

费了半天劲,在网上找到一篇文档,捎带着讲了一点原因,文档说:

--------------------------------

  设置Tomcat与Apache Web 服务器

  服务器

  到现在为止,我们未讨论作为服务器扩展的Tomcat,只讨论了作为独立运行的服务器.但有一些问题需要说明:

  1. 当处理静态页面时,Tomcat不如Apache迅速.

  2. Tomcat不象Apache一样可配置.

  3. Tomcat不象Apache一样强壮.

  4. 有很多网站已在某一特定web server上投入了很长时间,例如,使用CGI脚本/Server API模组/perl/php…我们不能假设这些遗留下来的东西都会被丢弃.

  基于以上原因,一个现实的网站建议使用一个Web服务器,如Apache,为网站的静态页面请求提供服务,并使用Tomcat作为一个Servlet/JSP插件.

――――――――――――――――――――――――――――――――

我大概理解如下:

1、tomcat确实可以作为独立的web server使用。

2、但是由于tomcat的可配置能力和强壮性不如apache,再加上用户需要继承以前的web 页资源,所以,tomcat就只好放弃了自己的web server能力,转而成为一个专门的app server了。

不知道这样讲对不对?

在网上输入"tomcat,apache"搜索,尽是一些安装文档,一步一步教你怎么装,可是关于基本原理的东西,那怕稍微点一下的都很少,我现在作为一个初学者,深深感到无人指点的情况下,东突西撞的真是不得要领的难处。

初学j2ee,被一堆名词术语淹没了,什么容器、部署、XML、EJB等等,这几天好好琢磨了琢磨,有点自己的理解,请高手指点:

所谓容器,是否可以理解成类似DOS或者WINDOWS这样的操作系统?它为应用程序提供了一个运行环境,所以,操作系统可以理解为应用程序的容器,对不对?

J2EE中的EJB,有点像WINDOWS中的DLL,能承载业务逻辑,但是自己不能主动运行,得需要其他应用程序的调用才能运行,EJB好像也是这么一回事,它没有自己的main方法,所以不能自己运行,只能被TOMCAT之类的容器来调用(当然,TOMCAT也是在客户端请求的情况下才调用EJB的)。

Srvlet呢?可以看成能自主运行的应用程序了,它可以通过TOMCAT之类的容器来调用EJB,就像应用程序通过操作系统调用DLL一样。

我觉得要想学习J2EE,一开始不能一头扎进去搞一大堆的安装,装这个,装那个,整个模型结构没有理解,陷入到安装调试的细节中,只能呛得一头雾水。

jakarta99
2003-12-18 00:01

基本上

@是一 J2EE 基本架的}

J2EE 包含了各式各拥钠I解Q方案的|西

一企I需要什N呢

最重要的就是能蛱峁┒踊纳I行

Web-based 的系y就是能蛲瓿 B2C / B2B / B2E 等等最佳的解Q方案

所以 j2ee 1.3 之後加入了 Webservice 的

更是加了S多玫墓

而你目前W的初步

可以先由立伺服器_始

只要W jsp/servlet 了解如何做出 web-based 的系y

未砜梢猿 ejb, jms, jca, jta 等等分散式的元件W

java 是冻W者比^}s

但是未淼媒^Ρ容^V泛

不你今天是要 mobile, enterprise, 甚至 client application的程式

都是裼孟嗤恼Z法 同拥挠^念去造

F在你了 tomcat 的}

想必你希望 j2ee 慢慢_始

我建h你先研x相P的 tomcat 的熬上Y料

tomcat 是凫 opensource 的 application server

所以很容易去理解他

至於楹斡泻芏嗳 apache + tomcat 磉\作

有N情r的考量

1) 我已存在了一些系y, 例如 php 的程式, 希望能蛟 apache webserver 上面绦

2) apache 盱oB面的速度h凫 tomcat , resposne time 超^ 9 倍左右. 所以我M apache 就渭盱oB面, Ba生的交o tomcat 砭涂梢粤.

有, ejb 必绦性 ejb container, jsp/servlet 是在 servlet container 绦械

碚f, container 是一\行h境]e

jsp/servlet 比^有名的 container 有 tomcat/jetty/resin and etc..

ejb container 比^有名的有 jboss/jOnAS/ 有大_l的 jFox

然商I化的 application server 大多具有 ejb container

不是 ibm websphere , bea weblogic , sun sunone , oracle 9i,10g...... 很多很多

你有空可以到 TheServerSide W站去看一下

Application Server Matrix, 独斫 server 很有助

lyojbuilder
2003-12-19 13:03

我也有个问题想请教,就是我已经配置好了Tomcat和Apache,tomcat下自代的例子只要是jsp就交给tomcat处理,是html就交给apache处理,必须用Apache的端口(不知道大家是不是这样).但问题是:我自己在tomcat下做的jsp网站(目录:d:\tomcat\webapps\mywebapp),就不能和apache结合使用,只能全部使用tomcat处理,如果再用apache的端口,apache就说不能访问我的目录下的jsp文件,这是怎麽回事?请指点

sayor
2003-12-19 13:19

apache处理静态页面的速度要比tomcat快很多,但是apache不是一个web容器,即它没办法处理jsp,servlet。