Tomcat和IIS的Web服务集成研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:shaoqing5320
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:目前在企业应用级开发领域,J2EE应用极其广泛,在开发中一般采用Tomcat作为Web服务器,该服务器能够良好支持Servlet/JSP,但和windows平台下的IIS服务环境兼容性较差。而windows平台原有的IIS服务器虽然能够良好处理静态页面,但无法接收Servlet/JSP请求。因此这篇文章对IIS和Tomcat的机理进行了研究,通过IIS本身具有的ISAPI筛选器技术,实现来自客户端请求的重定向,将Tomcat和IIS的Web服务共同集成在本机上,以兼顾双方的优势。
  关键词:Tomcat;IIS;ISAPI;Servlet/JSP;JDK;集成;Web服務器
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)36-2761-03
  Research on Web Service Integration of Tomcat and IIS
  YUE Ting
  (Tongji University,Shanghai 201804,China)
  Abstract: Nowadays, J2EE is quite widely used in enterprise application development. In this method, developers always use web server "Tomcat", which is capable of Servlet/JSP but not well compatible in IIS environment of Windows platform. On the other hand, IIS service is accomplished in static HTML page but not able to deal with Servlet/JSP request. Therefore, this paper analyzes the mechanism of Tomcat and IIS, discuss about how to makes use of ISAPI in IIS to do redirection of Servlet/JSP request which leads to the nice integration of Tomcat and IIS.
  Key words: tomcat; IIS; ISAPI; servlet/jsp; JDK; integration; web server
  1 引言
  随着时代的进步,SUN公司的Java2 Enterprise Edition(J2EE)网络技术已经成为了目前使用最广泛的Web应用开发技术,它是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关复杂问题的体系结构,包括客户层技术、网络层技术(Servlet/JSP)、Struts架构、服务器层技术(EJB)、数据事务与安全、打包和部署等,涵盖的领域十分广阔。而在J2EE的开发过程中,需要一个稳定的应用服务器。在通常的情况下,我们使用开源服务器Tomcat来作为web(Servlet/JSP)的开发容器,这也是SUN公司官方推荐的服务器。
  而针对Windows的系统平台,微软公司也开发了一款架设web服务器的工具IIS,即Internet Information Services(网络信息服务),这款工具通过超文本传输协议(HTTP)传输信息,并可通过配置来提供文件传输协议(FTP)和其他服务,如NNTP服务、SMTP服务等。
  由于是官方开发,因此IIS和Windows系统具有天然良好的兼容性,并可以支持系统中大量的基本网络服务,如论坛服务。但是因为设计功能的不同,IIS不支持Servlet/JSP机制,因此不能作为J2EE的网络服务容器。在这种情况下,为了使得J2EE开发平台和windows的网络服务能够同时共存,我们可以试着进行双方的配置整合,将功能有机地集成在一起。
  2 Servlet/JSP机制和Tomcat服务器概述
  Servlet/JSP是J2EE提供的一套跨平台的高效机制,用来作为客户机/服务器的解决方案,有着强大而独特的功能。
  2.1 Servlet介绍
  Servlet是供服务器端加载的程序,在客户端通过超文本传输协议(HTTP)发出请求后,服务器端检查对应Servlet的状态,如果尚未被加载,则服务器将其加载到Java虚拟机并且将请求发给该程序,Servlet接受请求后便执行某种过程作业,然后向服务器返回相应的结果,最后,服务器将结果的应答发送给客户端。
  由于Servlet程序是在服务器上加载和执行,客户端浏览器并不直接和Servlet通信,因此就不会出现那些和Applet机制相关的安全性问题。而且Servlet是用Java编写的,所以一开始就具有平台无关性,具有一次编写就可以随意移植运行(Write Once, Run Anywhere)的特性。除此之外,Servlet还具有以下几个优点:
  运行效率高。在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求只是加载一个轻量级的Java线程进行处理,并且处理请求的数个线程只需要加载一份Servlet类代码,大幅度提高了运行效率。
  扩展性和安全性良好。Servlet程序是用Java语言编写的,因而具备Java的所有优点。Java是一种健壮的、面向对象的编程语言,很容易扩展以适应各种需求。并且在运行时,编写好的Servlet程序是存在于服务器端的,因此从外界运行Servlet程序的唯一方法是通过服务器调用,因此在服务器防火墙的保护下,Servlet程序能够得到高水平的安全性保障。
  成本经济,节省投资。由于Servlet技术的广泛使用,市场上有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,对于其余的现有服务器,即使它不支持Servlet技术,也往往可以免费或通过极少的投资来追加这部分功能。
  2.2 JSP介绍
  在Servlet机制的基础上,J2EE架构同时提供了一种更加简易的JSP(Java Server Pages)机制。JSP是一种脚本语言,它包装了Servlet系统的界面,简化了Java和Servlet的使用难度,同时通过扩展JSP标签(TAG)提供了网页动态执行的能力。在运行时,JSP引擎会按照JSP的语法,将JSP文件转换成Servlet代码源文件,然后调用Java编译器,按照正常Servlet的方式进行编译,最后在服务器载入运行。
  使用JSP技术,开发人员无需了解Servlet机制,也可以使用HTML语法和标签来设计和开发动态网页,并且由于JSP引擎的自动机制,JSP页面在修改之后能立刻看到更新结果,而无需手动重新编译,这样大大地简化了网页的开发流程。同时JSP页面也具有Java的语言特点,几乎可以运行于所有平台,具有极其广泛的市场。
  2.3 Tomcat服务器介绍
  Tomcat是SUN公司官方推荐的Servlet/JSP服务器。它是一个免费开源的Servlet容器,也是Apache组织的Jakarta项目中一个核心项目,不但具有轻量级和灵活嵌入系统的优点,并且可以支持Servlet/JSP的最新规范,因此得到广泛的应用。
  在安装Tomcat服务器之前,系统必须先安装JDK,即Java Develop Kit(Java开发工具包),这是SUN公司免费提供的Java语言的开发包,包含了编写、运行Java程序所需要的全部工具。
  3 Tomcat和IIS的集成配置
  Tomcat本身具有Web服务器的功能,因此可以单独运行,但Tomcat处理静态HTML页面的速度较慢,并且和目前Windows系统的IIS环境下开发的程序兼容性较差,而IIS服务器则不能解析Servlet/JSP页面,因此我们将Tomcat和IIS集成在同一个Web服务器上,这样既能支持强大的Servlet/JSP,又能完全兼容原有IIS环境下开发的各种软件。
  3.1 安装IIS
  如果使用的Windows系统是服务器(Server)版本,如Windows 2000 Server,大多已经自动安装了IIS,因此可以略过这一步。如果使用的是其他版本的Windows系统,则需要首先安装IIS。安装的过程非常简单,将Windows系统的安装盘插入光驱中,然后在系统桌面的控制面板中运行“添加删除程序”,选择“添加/删除Windows组件”,在打开的对话框中选中“Internet信息服务(IIS)”,然后单击“下一步”即可进行安装。注意不同Windows系统的安装盘的IIS版本可能不同,比如Windows 2000安装盘中是IIS 5.0,Windows 2003安装盘中是IIS 6.0。
  3.2 安装和配置JDK
  JDK可以在SUN公司的官方网站上免费下载,目前最新的JDK 1.6版本的安装程序名称为jdk-6-windows-i586.exe,点击运行即可进行安装。接下来需要设置环境变量,在桌面的“我的电脑”图标点击鼠标右键,依次选择“属性”——“高级”——“环境变量”,在上方用户变量的窗口中点击“新建”,新建一个名称为JAVA_HOME的变量,值为JDK的安装目录(默认为C:\Program Files\Java\jdk1.6.0)。然后再按同样方法新建一个名称为CLASSPATH的变量,值为JDK安装目录下lib目录下dt.jar文件的地址(默认为C:\Program Files\Java\jdk1.6.0\lib\dt.jar)和tools.jar文件的地址(默认为C:\Program Files\Java\jdk1.6.0\lib\tools.jar),两个地址之间以分号隔开。最后在用户变量窗口中选择系统变量“PATH”,点击“编辑”,在该变量值的尾部添加JDK安装目录下bin目录地址(默认为C:\Program Files\Java\jdk1.6.0\bin)。完成这些环境变量的设置后,可以试着在命令行(运行——cmd)窗口输入“Java”,如果出现Java命令参数等信息,则表明JDK的安装和配置成功。
  3.3 安装Tomcat
  Tomcat服务器的安装程序可以在apache组织的官方网站上免费下载,目前最新的Tomcat 6.0版本的安装程序名称为apache-tomcat-6_0_10.exe,点击运行即可进行安装。安装完毕后启动Tomcat服务进程,然后在浏览器(如Internet Explorer)中输入“http://localhost:8080/”進行测试,如果出现Tomcat的默认页面,则表示Tomcat服务器和JDK的安装配置已经成功。
  3.4 获取JAKARTA连接器
  为了能够集成IIS和Tomcat服务器,我们可以使用IIS服务管理器中的ISAPI筛选器,该筛选器是IIS对外的一个接口,可以调用各种扩展插件。我们可以在接口上安装一个Tomcat重定向插件,这样IIS在每次得到Servlet/JSP请求时,ISAPI筛选器就能通过ajp13协议,调用外部的该插件,对Servlet/JSP请求重定向至Tomcat服务器。
  使用最为广泛的重定向插件是isapi_redirector.dll,同样可以在apache组织的官方网站上免费下载,下载之后应选择一个合适的位置保存,通常我们会在Tomcat安装目录的conf目录下新建一个connector来保存和集成相关的文件,因此默认地址为C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\connector\isapi_redirector.dll。
  3.5 配置Tomcat服务器
  接下来打开Tomcat安装目录的conf目录下的配置文件Server.xml,可以看到五个嵌套元素:Server,Service,Engine,Host和Context,其中Server级别最高,代表整个Java虚拟机,Service代表虚拟机中的一个服务,Engine代表服务中的一个请求处理机,Host表示一个虚拟主机,Context则表示一个Web应用程序。
  Service元素中的Connector子元素,表示客户端和该服务之间的连接,具有两个常用属性:Port属性指定服务器端创建的端口,并在该端口监听来自客户端的请求,默认为8080。EnableLookups属性指定是否进行DNS查询得到远程客户端的实际主机名,默认为True。
  明确了该元素的数据结构,我们可以编辑该文件,将Service元素层中的第二个Connector元素改为如下内容:
  
  经过这样的配置,Tomcat服务器就会在端口8009监听AJP13请求,并在接受请求后由类org.apache.ajp.tomcat6.Ajp13Connector进行处理。我们随后要相应地配置IIS,使得它用该端口和该协议来发送请求。
  3.6 配置IIS
  按照惯例,IIS的重定向配置文件也会放在Tomcat安装目录下,所以在Tomcat目录的conf目录(默认为C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\)新建两个文本文件,命名为workers.properties和uriworkermap.properties。
  workers.properties文件的正文如下:
  workers.tomcat_home=C:\Program Files\Apache Software Foundation\Tomcat 6.0(这是默认值,请修改为自己的Tomcat安装目录)
  workers.java_home= C:\Program Files\Java\jdk1.6.0(这是默认值,请修改为自己的JDK安装目录)
  worker.list=ServletWorker
  worker.ServletWorker.port=8009(默认8009端口,和Tomcat的配置一致)
  worker.ServletWorker.host=local
  worker.ServletWorker.type=ajp13(协议名称,和Tomcat的配置一致)
  按照文件的配置,IIS将会在需要的时机,将来自客户端的请求通过ajp13协议,8009端口,发给名为ServletWorker的worker。
  接下来uriworkermap.properties文件的正文如下:
  /examples/*=ServletWorker
  /examples/*.jsp=ServletWorker
  /examples/servlet/*=ServletWorker
  其中example是假设的JSP工程名称,在输入时请修改为自己的工程名称,这三句代码分别表示该工程下所有的静态页面文件,所有的JSP页面文件,servlet文件夹下的所有页面文件均由ServletWorker来处理。可以根据不同的需求范围来更改这些代码。
  3.7 修改注册表
  为了让IIS配置生效,我们打开注册表HKEY_LOCAL_MACHINE\SOFTWARE,在下面新建目录Apache Software Foundation\Jakarta Isapi Redirector\1.0,然后添加五个主键:
  Extension_uri=Jakarta/isapi_redirector.dll(Jakarta为接下来要创建的IIS虚拟目录名)
  Log_file= C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\isapi_redirect.log(请根据安装位置修改)
  Log_level=debug
  Worker_file= C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\workers.properties(请根据安装位置修改)
  Worker_mount_file= C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\uriworkermap.properties(请根据安装位置修改)
  3.8 配置ISAPI筛选器
  这是Tomcat和IIS集成的最后一步。打開本机的Internet服务管理器,用右键点击“默认Web站点”,选择“新建”——“虚拟目录”,筛选器的“应用程序名”设置为Jakarta(必须和2.7步的Extension uri吻合),“本地路径”设置为isapi_redirector.dll文件所在的目录(这里为C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\connector),并且将“执行许可”设置为“脚本和可执行程序”。
  新建完毕后,在Internet服务管理器主窗口的目录树中,用右键点击IIS主机节点,选择“属性”,在出现的属性窗口中,在主属性的“WWW服务”区域点击“编辑”,增加新的ISAPI筛选器,筛选器名称为“Jakarta”,可执行文件为“C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\connector\isapi_redirector.dll”。
  最后重新启动IIS,查看WWW服务主属性的窗口,如果配置正确,在ISAPI筛选器子窗口中,新添加的Jakarta筛选器的状态现在应该变为绿色向上的箭头。
  3.9 集成配置测试
  到这里,IIS和Tomcat服务器的集成已经完毕,我们在启动IIS和Tomcat之后,在浏览器里输入http://localhost/index.jsp,如果出现和2.3步相同Tomcat的默认页面,表明这个地址可以不再使用端口8080,而使用缺省的IIS端口80,再通过IIS的筛选器重定向到Tomcat服务器,也即集成的效果已经成功。
  4 结束语
  使用ISAPI技术集成了IIS和Tomcat的Web服务器,既能够处理原有IIS环境下的静态页面请求,又可以接受Servlet/JSP机制的请求,充分发挥该机制运行速度快、安全、跨平台等诸多优势,具有很好的实用价值。
  
  参考文献:
  [1] 蔡剑,景楠.Java Web应用开发:J2EE和Tomcat[M].2版.北京:清华大学出版社,2005:43-250.
  [2] 孙鑫.Servlet/JSP深入详解:基于Tomcat的Web开发[M].电子工业出版社,2008:2-20.
  [3] Microsoft Corpararion.IIS 5.0使用参考手册——IIS 6.0新增功能详解[M].北京:科学出版社,2003.
  [4] 李涧,李爽,杜瑞庆.JSP环境配置[J].现代企业教育,2006,11(2):144-145.
  [5] 陈曦,邹桂章.Tomcat服务器架设技术的探讨[D].广东:广东省计算中心,2003.
  [6] 梁田,倪少权,叶利华.ISAPI在Web服务器中的应用[D].四川:成都信息工程学院学报,2005.
其他文献
朗读以书面语为依据,但由于书面语和口语传播方式不同,传播技巧、方法、效果有着很大差别。因此,朗读不是简单的“见字出声”,需要掌握一定技巧,其中一项重要技巧是以作者心态把握形象性和逻辑性。这种技巧在散文、记叙文等含有大量描写手法的文体的朗读中,显得尤为重要。本文试以统编教材六年级上册《月光曲》为例予以说明。  一、朗读的形象性  形象性是指朗读应透过文字感受到其所代表的客观事物,引起内心的反应,并通
泥塑 42cm×82cm×35cm 2019年  钦斋泥塑创作泥料为四川本土就地取材,許多泥土都是本色呈现,后期不着色或少着色,泥土材料接地气的本性使作品具有平易近人的质朴之美。钦斋泥塑强调作品的在场感,喜好用连环画式的叙事性场景来构图创作。作品大致分为两类:一类作品颇具书卷气。因为历代传承人的文人、诗人身份,他们创作上提倡“艺文相融”“器以载道”;另一类作品散发着浓郁的民俗味道,蜀中川西的地域风
统编教材四年级下册第三单元第一次集中呈现现代诗的教学,同时也是一个综合性学习的特殊单元。统编教材以人文主题和语文要素双线组织单元结构,将语文要素进行了系统编排,加强了阅读、习作、口语交际等板块之间的联系,表达了“重视语文素养,重建语文知识体系,阅读与表达并重”的追求,在单元设计上有了很大的突破。本单元在教材呈现上,采用了“双线并进”的编排策略,一边是以普通单元的形式编排了几篇独立的课文,分别是精读
中韩语言对比研究是中韩文化对比研究的重要内容。进入二十一世纪,我国在此领域的研究取得了长足的进步和发展。中韩语言对比、第二语言习得、偏误分析、中介语等理论的提出,进一步推动了中韩语言对比研究的进程。随着经济全球化的深化,我国与韩国在各方面的交流越来越密切,进一步推动中韩语言对比研究是实现语言应用性研究、促进两国相互理解、推动文化融合的重要内容。  由崔健、孟柱亿主编的《汉韩语言对比研究(3)》是第
摘要:本文介绍了893智能数据采集网络的结构、性能特点以及在电力企业计算机监控网络系统中的应用,讨论了电力企业计算机监控网络系统的基本内容。  关键词:智能前端;数据采集网络;监控管理系统  中图分类号:TP393文献标识码:A 文章编号:1009-3044(2008)33-1303-02  Intelligent Data Collector Network and Apply on Super
摘要:ASP.NET是微软公司推出的基于DotNet平台的网络开发技术,对B/S模式应用的开发提供了强大的支持,该文从源代码级别进入ASP.NET底层,分析ASP.NET运行时模型,揭开ASP.NET应用程序运行的幕后细节。   关键词:ASP.NET;DotNet平台;网络开发;B/S模式应用;运行时模型  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)33-141
摘要:过去的编码系统一些是附加在某个信息系统中,功能不强;一些是C/S模式,束缚了编码应用的推广;一些是B/S模式,业务需多页面刷新,不直观。该文采用Java EE框架结构,引入Ajax弥补多页面刷新的不足,设计了一个适合企业需求的信息分类编码系统。  关键词:企业信息化;Java EE框架;Ajax;信息编码系统  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)36
书名:谈小学语文教学之道  作者:张敏华  出版社:宁波出版社  出版时间:2017年  ISBN:9787552632729  定价:46元  2019年秋季新学期开始,全国中小学语文教学全面使用统编教材。如何解读新教材,如何用好新教材,如何让学生迅速适应新教材,成了教师们不得不面对的问题。在一片迷茫与摸索之中,总要有人率先走出这一片迷雾,比如全国课程改革优秀教研员张敏华老师。作为一名扎根于一线
语言现象是丰富而复杂的,语言内容是博大而广阔的。在语言现象中挖掘语言表达的特点,掌握汉语语句的构式,对于语言的习得与熟练把握是有积极意义的。伴随着我国综合国力的提升,越来越多的外国人对中国、对汉语产生兴趣,也开始将汉语作为第二语言来学习,以期通过语言的学习来了解中国文化。在鼓励、支持外国人习得汉语的过程中,结合汉语语言的一些特点,从汉语构式的角度为教与学的展开提供帮助,不失为一条有效的路径。施春宏
王堂兵  中国书协理事、行業建设委员,四川省书协理事、行草书委员会副主任,雅安市书协主席。