Apache和JSP的关系问题

zp2007 2006-02-24 10:09:18
我是一个JSP新手,我在书上看到,只要安装了jdk+tomcat+mysql,就可以进行中型网站开发了!但是最近老在很多资料中看到Apache服务器的名词,还说tomcat是Apache的一个“插件”,我是一个传统的C++程序员,对插件这个东西没有概念,我就是想问问老鸟们:插件是什么概念?这个jsp开发是不是jdk+tomcat+mysql就可以了,到底需不需要下在一个Apache?

(我的操作系统是win xp)
...全文
125 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mingxuan3000 2006-02-24
mark
回复
梦想家烟灰 2006-02-24
该是忘记 apache 的时候了。

--三年五载的大概还是忘不了的。呵呵。:)

使用Java API的Tomcat/Weblogic等,其IO处理能力是没法和使用Native API的Apache较一高下的,至少目前而言。反而如果分工合作各司其职,往往都是相得益彰。
回复
梦想家烟灰 2006-02-24
Tomcat和Apache协同工作的原理也很简单,使用Apache作为HTTP请求入口,如果客户端请求的是纯静态资源,那么Apache就自己直接将之搞定了,如果客户端请求的是JSP/Servlet之类的动态程序,那么Apache会根据配置将这种请求通过Socket转发给Tomcat处理,Tomcat处理完毕之后再交回给Apache返回给客户端。jk/jk2的作用是作为Tomcat和Apache的中介(传声筒?)而存在。

缺省地,你会在Tomcat的Server.xml里看到如下声明:
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false"
redirectPort="8443"
debug="0"
protocol="AJP/1.3" />

这里的意思是如果要和Apache(或者IIS)协同工作,那么将使用JK2桥接器,通过AJP/1.3协议传送数据,桥接器端口为8009,转发端口为8443。
回复
doway 2006-02-24
apache 是 web 服务器。
tomcat/weblogic/jboss/websphere/resin 等等称为应用服务器。

很早并没有应用服务器,只有 web 服务器,早期的网页只是现在所说的静态页面。后来有一段时间应用服务器开始起步,开始时是做为 Web 服务器的插件(说扩展可以更容易理解),以处理动态内容。

目前的情况完全不一样了,大多数应用服务器都反对用户将自己做为 Web 服务器的扩展来使用,那样不但结构复杂,性能上也会受到影响(进程间通信的成本)。

该是忘记 apache 的时候了。
回复
梦想家烟灰 2006-02-24
Tomcat本身不是插件,而是如果Tomcat要和Apache需要协同工作的话,需要另一个插件,一般会使用jk2或jk(大概是这个名字)。

Apache是web服务器,只能放静态的html页面。
Tomcat是jsp/Servlet服务器,可以处理动态的页面。

这么说是对的,不过不够严谨,Apache支持多种插件,可以借之支持Perl/PHP/JSP等多种动态页面,Tomcat是JSP/Servlet容器没错,但是同时它也像Apache一样支持所有静态资源,HTML/JPG/TXT等,因为Tomcat对静态资源的处理能力比较弱,Apache对静态资源的处理能力特别强,所以对于大型Web应用往往让二者协同工作,取长补短,可以实现比较高的运行效率。

对于初学者来说,使用Tomcat就足够了,就算使用Apache+Tomcat的方案,那么它对于你来说也是透明的,这种工作在分工明细的公司里会有配置人员搞定(其实简单地要命),不用你过虑。
回复
infowain 2006-02-24
Apache是web服务器,只能放静态的html页面。
Tomcat是jsp/Servlet服务器,可以处理动态的页面。
回复
mingxuan3000 2006-02-24
我是一个传统的C++程序员?多有前途,干吗又来搞这个....
回复
doway 2006-02-24
不需要。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-02-24 10:09
社区公告
暂无公告