【Jsp精品源码栏目提醒】:以下是网学会员为您推荐的Jsp精品源码-tomcat安装与配置 - 技术总结,希望本篇文章对您学习有所帮助。
第1章 Tomcat的安装与配置 Tomcat可以运行Servlet和
JSP是一个小型的轻量级应用服务器它性能稳定、扩展性好、
源码开放是开发中小型Web应用系统的首选。
本章首先介绍Tomcat服务器特点、层次结构、应用处理流程及发展史然后讲述Tomcat的安装、设置和测试接着介绍Tomcat目录结构、常用配置平台、控制和管理程序等最后设计一个不需数据库支持的简单聊天室。
1.1 Tomcat简介 Tomcat是Sun的JSWDKJava Server Web Development Kit中的Servlet容器属于Apache软件基金会Apache Software Foundation的Jakarta项目中的一个核心项目由Apache、Sun和其他一些公司和个人共同开发而成。
Tomcat既是一个开放
源码、免费支持
JSP和Servlet技术的容器同时又是一个Web服务器软件受到了Sun公司的大力推荐和支持。
因此Servlet和
JSP的最新规范都可以在Tomcat的新版本中得到实现。
与传统桌面应用程序不同Tomcat中的应用程序是一个WARWeb Archive文件它是许多文件构成的一个压缩包包中的文件按照一定目录结构来组织不同目录中的文件也具有不同的功能。
部署应用程序时只需要把WAR文件放到Tomcat的webapp目录下Tomcat会自动检测和解压该文件。
JSP文件第一次执行时要先由Tomcat将其转化为Servlet文件然后编译所以速度会慢一些但后继执行时速度会很快。
Tomcat既是一个Servlet容器又是一个独立运行的服务器像IIS、Apache等Web服务器一样具有处理HTML页面的功能。
但它处理静态HTML文件的能力并不是太强所以一般都是把它当作
JSP/Servlet引擎通过适配器Adapter与其他Web服务器软件如Apache配合使用。
此外Tomcat还可与其他一些软件集成起来实现更多功能例如与JBoss集成起来开发EJB、与OpenJMS集成起来开发JMS应用、与CocoonApache的另外一个项目集成起来开发基于XML的应用等。
Tomcat是一个小型的轻量级应用服务器运行时占用系统资源小、扩展性好、支持负载平衡与邮件服务等开发应用系统中的常用功能并且不断改进和完善。
Tomcat适用于中小型系统和并发访问用户不太多的场合是开发和调试
JSP程序的首选。
先进的技术、稳定的性能、
源码开放和免费获取的机制使得Tomcat深受Java爱好者的喜爱并得到了许多软件开发商的认可成为目前相当流行的Web应用服务器。
1.1.1 Servlet简述 谈起Tomcat就不能不说Servlet如果没有Servlet的应用需求就没有Tomcat的产第1章 Tomcat的安装与配置 ·3· 生。
Servlet小服务程序是一个与协议无关的、跨平台的Web组件它基于Java技术开发由Servlet容器所管理。
和运行在客户端浏览器中的Applet小应用程序相似Servlet运行在服务器端可以动态地扩展服务器的功能并采用“请求—响应”模式提供Web服务。
Servlet的主要功能是交互式地浏览和修改数据生成动态Web内容。
Servlet是平台独立的Java类即按照Servlet规范编写的Java类所以具有Java语言的所有优点如良好的可移植性及安全性等。
Servlet被编译为平台中立的字节码可以被动态地加载到支持Java技术的Web服务器中运行就如同Applet对客户端一样区别在于Servlet运行并不需要图形用户界面。
Java Servlet具有如下优点 1Servlet可以和其他资源数据库、文件、Applet和Java应用程序等交互把生成的响应内容返回给客户端。
如果需要还可以保存“请求—响应”过程中的信息。
2服务器采用Servlet可以完全授权对本地资源的访问Servlet自身也会控制外部 用户的访问数量及访问性质。
3Servlet可以从本地硬盘或者通过网络从远端硬盘来激活。
4通过Servlet Tag技术可以在HTML页面中动态调用Servlet。
5Servlet可以是其他服务的客户端程序。
6通过链接技术一个Servlet可以调用另一个或一系列Servlet来成为它的客户端。
7Servlet API与协议无关。
1.1.2 Tomcat与Servlet之间的关系 当初在Apache开发时还未出现Servlet的概念所以Apache不能内置支持Servlet。
实际上除了Apache其他许多Web服务器软件都不能直接支持Servlet。
为了支持Servlet通常要单独开发程序这种程序一般称为服务器小程序容器Servlet Container有时也叫做服务器小程序引擎Servlet Engine。
它是Web服务器或应用程序服务器的一部分用于在发送的请求和响应之上提供网络服务解码基于MIME的请求格式化基于MIME的响应它在Servlet的生命周期内包容和管理Servlet是一个实时运行的外壳程序。
运行时由Web服务器软件处理一般请求并把Servlet调用传递给“容器”来处理。
Tomcat就是满足这种需要的
JSP/Servlet引擎是Sun公司的
JSP/Servlet的官方实现。
按照工作模式的不同Servlet容器可以分为以下3类 1独立运行的Servlet容器 在这种模式下Servlet容器作为构成Web服务器的一部分而存在。
当使用基于Java的Web服务器时就属于这种情况。
这种方式是Tomcat的默认模式然而大多数Web服务器并不是基于Java的所以就产生了下面的两种其他类型。
2内置的Servlet容器 Servlet容器由Web服务器插件和Java容器两部分组成。
采用这种方式时Web服务器插件需要在某个Web服务器内部地址空间中打开一个JVMJava虚拟机在此JVM上程序员突击——Tomcat原理与Java Web系统开发 ·4· 加载Java容器并运行Servlet。
如果客户端调用ServletWeb服务器插件首先获得此请求的控制并将它传递使用JNI技术给Java容器然后Java容器把此请求交给Servlet来处理。
这种方式运行速度较快并且能够提供良好的性能适用于单进程、多线程服务器但是在伸缩性方面存在不足。
3外置的Servlet容器 采用这种方式时Servlet容器运行在Web服务器外部地址空间。
先由Web服务器插件在某个Web服务器外部地址空间打开一个JVMJava虚拟机然后加载Java容器来运行Servlet。
Web服务器插件和JVM之间使用IPC进程间通信机制通常是TCP/IPSockets。
如果客户端调用ServletWeb服务器插件首先获得此请求的控制并将它传递使用IPCs技术给Java容器然后Java容器把此请求交给Servlet来处理。
这种方式对客户端请求的处理速度不如内置Servlet那样快但是在其他方面如可伸缩性、稳定性等具有优势。
Tomcat属于Servlet容器其工作模式也分为上述3种所以Tomcat既可被用作独立运行的Servlet引擎便于开发和调试又可作为一个需要增强功能的Web服务器如当前的Apache、IIS和Netscape服务器插件。
在配置Tomcat之前就需要确定采用哪种工作模式工作模式1比较简单直接安装Tomcat即可工作模式2和3有些复杂除了安装Tomcat、Web服务器之外还需要安装连接两者的中间连接件。
【专家提示】在本书中如果没有特殊说明Tomcat运行都采用独立运行的Servlet容器 方式。
Java Servlet API是Servlet容器和Servlet之间的接口它定义了Servlet的各种方法还定义了Servlet容器传送给Servlet的对象类其中最重要的是请求对象ServletRequest和响应对象ServletResponse。
这两个对象都是由Servlet容器在客户端调用Servlet时产生的Servlet容器把客户请求信息封装在ServletRequest对象中然后把这两个对象都传送给要调用的ServletServlet处理完后把响应结果写入ServletResponse然后由Servlet容器把响应结果发送到客户端。
Tomcat服务器接收客户端请求并作出响应的完整过程如图1-1所示。
客户端 Tomcat Web服务器 HTTP请求 Servlet容器 Servlet实例 ServletRequest ServletResponse ① ② HTTP响应 提示3页空白处是无用的请跳过阅读吧-----------------It博客 提示3页空白处是无用的请跳过阅读吧------------ 第1章 Tomcat的安装与配置 ·5· 提示3页空白处是无用的请跳过阅读吧------------ 程序员突击——Tomcat原理与Java Web系统开发 ·6· 第1章 Tomcat的安装与配置 ·7· 程序员突击——Tomcat原理与Java Web系统开发 ·8· 第1章 Tomcat的安装与配置 ·9· 程序员突击——Tomcat原理与Java Web系统开发 ·10· 文档收集整理均为itboke所贡献--要学习更多知识请到it博客学习-------------------www.itboke.net 图1-1 Tomcat服务器响应客户请求过程 其中①处表示Web服务器接收到客户端发出的HTTP请求后转发给Servlet容器同时把控制返回Servlet容器②处表示Servlet容器把响应对象ServletResponse中的处理结果转发给Web服务器通知Web服务器以HTTP响应的方式把结果发送到客户端同时把控制返回Web服务器。
1.1.3 Tomcat层次结构 Tomcat服务器由一系列可配置组件构成其中核心组件是Catalina Servlet容器它是其他所有Tomcat组件的顶层容器。
Tomcat各组件之间存在的层次关系如图1-2所示。
ServerServiceConnectorEngineHostContext 图1-2 Tomcat层次关系 【专家提示】Tomcat的组件可以在ltTOMCAT_HOMEgtconfserver.xml文件中进行配置每个Tomcat组件在server.xml文件中对应一种配置元素。
在XML文件的代码中这些组件之间关系如下所示 ltServergt ltServicegt ltConnector/gt ltEnginegt ltHostgt ltContextgt lt/Contextgt lt/Hostgt lt/Enginegt 第1章 Tomcat的安装与配置 ·11· lt/Servicegt lt/Servergt 上述各组件将Tomcat分成若干层Server层、Service层、Engine层、Host层、Context层各层通过数据管道PipeLine交互如图1-3所示。
上述各层对应组件及其在Tomcat服务器中的作用如下 1Server层 对应Server组件逻辑上表示整个Tomcat即整个Catalina Servlet容器。
它处于Tomcat顶层可以包含一个或多个Service层。
Tomcat提供了该层接口的一个默认实现所以通常不需要用户自己去实现。
Connector Server Service Connector Connector Engine Mapper Host Context Context PipeLine 图1-3 Tomcat的层次结构 2Service层 对应Service组件是包含在Server层中的一个逻辑功能层。
它包含一个Engine层以及一个或多个连接器Connector。
Service组件将一个或多个Connector组件绑定到Engine层上Connector组件侦听端口获得用户请求并将请求交给Engine层处理同时把处理结果发给用户从而实现一个特定的实际功能。
Tomcat提供了Service接口的默认实现所以通常也不需要用户定制。
3Engine层 对应Engine组件该层是请求分发处理层可以连接多个Connector。
它从Connector接收请求后解析出可以完成用户请求的URL根据该URL可以把请求匹配到正确的Host上当Host处理完用户请求后Engine层把结果返回给适合的连接器再由连接器传输给用户。
该层的接口一般不需要用户来定制特殊情况下用户可以通过实现该接口来提供自定义的引擎。
4Host层 对应Host组件该层表示一个虚拟主机一个Engine层可以包含多个Host层每个程序员突击——Tomcat原理与Java Web系统开发 ·12· Host层可以包含一个或多个Context层对应不同的Web应用。
因为Tomcat给出的Host接口的实现类StandardHost提供了重要的附加功能所以用户通常不需要定制Host。
5Context层 对应Context组件该层代表某个虚拟主机上的实际目录或一个WAR即单个Web应用程序它运行在特定的虚拟主机中使用最为频繁。
一个Host层包含多个Context层每一个Context都有唯一的路径Host层接到请求后根据用户请求的URL将请求定位到Context层。
第1章 Tomcat的安装与配置 ·13· 1.1.4 Java Web应用处理 充当Java Web的容器是Tomcat服务器最主要的功能。
Java Web在Sun的Java Servlet规范中定义如下Java Web应用由一组Servlet、HTML页、类以及其他可以被绑定的资源构成。
它可以在各种供应商提供的实现Servlet规范的Web应用容器中运行。
由此定义可知在Java Web应用中可以包含Servlet、
JSP、类、静态文档和配置信息等。
每个Web应用都对应唯一的ContextServlet容器为每个运行的Java Web应用创建唯一的ServletContext对象该对象被同一个Web应用中的所有组件所共享。
假设有3个Web应用分别为HelloWorld、Counter和TableList它们对应的主页URL分别如下 HelloWorldhttp://localhost1:8080/HelloWorld/index.html Counterhttp://localhost1:80/Counter/index.
jsp TableListhttp://localhost2:8086/TableList/index.
jsp 3个用户分别访问上述3个地址则Tomcat服务器各个组件响应用户请求的过程如 图1-4所示其中每个Context容器对应唯一的Java Web应用。
用户1 用户2 用户3 Server Service Connector 8080端口 Connector 80端口 Connector 8086端口 Local Host2 ContextHelloWorld Local Host1 Engine index.html ContextCounter ContextTableList index.
jsp Index.
jsp 图1-4 Tomcat服务器各组件响应用户请求过程 1.1.5 Tomcat发展 随着Sun公司发布的Servlet/
JSP规范不断完善和升级Tomcat的版本也逐步更新。
Tomcat版本和Servlet/
JSP规范之间的对应关系如表1-1所示。
程序员突击——Tomcat原理与Java Web系统开发 ·14· 表1-1 Tomcat版本和Servlet/
JSP规范 Tomcat版本 Servlet/
JSP规范 6.0.14 2.5/2.1 5.5.x 2.4/2.0 4.1.27 2.3/1/2 其中Tomcat目前的最新版本是Tomcat 6.0.14它支持最新的J2SE标准、执行效率高、使用方便、发展前景良好所以本书围绕Tomcat 6.0.14展开讲述。
1.2 Tomcat的安装 本节将介绍Tomcat工作环境的安装、基本的启动与停止方法、JDK的安装与JVM性能调整、二进制版本的Tomcat安装以及从源代码安装Tomcat最后讲解如何启动、停止和自动启动Tomcat并进行安装的测试。
1.2.1 安装准备 在安装Tomcat之前必须先安装JDK。
JDK的全称是Java Development Kit是Sun公司免费提供的Java语言的软件开发工具包其中包含Java虚拟机JVM。
编写好的Java源程序经过编译可形成Java字节码只要安装了JDK就可以利用JVM解释这些字节码文件从而保证了Java的跨平台性。
在平台兼容性方面JDK作为解释字节码文件并据此调用操作系统API实现对应功能的Java虚拟机与操作系统类型和平台位数密切相关因此存在不同类型的版本而Tomcat也具有上述特征所以需要预先下载JDK和Tomcat这两个软件的版本和下载地址如下 JDK选择Sun官方网站提供的JDK-6U1下载网址为https://sdlc5e.sun.com/ECom/ EComActionServletjsessionid6C6B460AC2EF83F7FF253E51D5B5BA1C。
用户访问上述网址需要注册注册后就可以根据自己的计算机平台配置选择合适版本。
如果使用32位Windows系统那么选择下载 Windows Offline Installation build 06Multi-language jdk-6u2-windows-i586-p.exe 如果使用32位Linux系统那么选择下载 Linux RPM in self-extracting file build 05 jdk-6u2-linux-i586-rpm.bin 如果使用64位Windows系统那么选择下载 Windows x64 executable build 05 jdk-6u2-windows-amd64.exe 如果使用64位Linux系统那么选择下载 第1章 Tomcat的安装与配置 ·15· Linux x64 RPM in self-extracting file build 05 jdk-6u2-linux-amd64-rpm.bin Tomcat选择apache - tomcat 6.0.14下载网址为http://tomcat.apache.org/download-60.cgi。
在如图1-5所示的下载页面中Binary Distributions二进制发行版下方有若干组下载项每组下载项有两个不同的版本对应不同的操作系统其中zip是Windows平台下运行版本tar.gz是Linux平台下运行版本。
其中Core组和Administration Web Application组必须下载这两组分别对应Tomcat核心安装包和控制平台包其他组内容可以根据需要来决定是否下载。
图1-5 Tomcat下载页面 本书内容都基于32位Windows系统所以JDK选择jdk-6u1-windows-i586-p.exeTomcat选择apache- tomcat 6.0.14.zip和apache- tomcat 6.0.14-admin.zip。
对于Windows操作系统tomcat 6.0.14提供了两种安装文件一个文件为apache-tomcat 6.0.14.exe另一个文件为apache-tomcat 6.0.14.zip。
apache-tomcat 6.0.14.exe是可运行的安装程序读者只需要双击这个文件即可开始安装Tomcat。
在安装过程中安装程序会自动搜寻JDK和JRE的位置并把Tomcat服务加入到Windows操作系统的服务中同时在“开始”→“程序”菜单中加入Tomcat服务器管理菜单。
apache-tomcat 6.0.14.zip是一个压缩包只需要把它解压到本地硬盘即可这种方式既适合Windows系统下的安装也适用于其他操作系统例如Linux系统所以下面主要介绍apache-tomcat 6.0.14.zip的安装与Tomcat运行环境的设置。
1.2.2 JDK安装及设置 1双击jdk-6u1-windows-i586-p.exe弹出如图1-6所示界面。
单击“接受”按钮进程序员突击——Tomcat原理与Java Web系统开发 ·16· 入下一步。
图1-6 执行安装程序 2选择安装内容及路径如图1-7所示。
其中中间列表是要安装的可选功能单击每个可选功能左边的按钮将弹出下拉菜单其选项内容包括“此功能将安装在本地硬盘驱动器上”、“此功能及所有子功能将安装在本地硬盘驱动器上”、“现在不安装此功能”和“此功能将不可用”系统默认均为第一个选项。
3安装JRE如图1-8所示。
图1-7 选择安装内容及路径 图1-8 设置JRE安装内容及路径 【专家提示】系统默认安装路径是C:Program FilesJavajdk1.6.0_02若想安装到其他路 径可单击右边的“更改A…”按钮选择其他安装路径。
建议将JDK安装在C盘根目录下即JDK的安装目录是C: jdk1.6.0_02。
设置好安装内容及路径后单击“下一步N”按钮即在选择的安装路径下开始安装所选的内容。
第1章 Tomcat的安装与配置 ·17· JRE是Java Runtime Environment的缩写是Java运行环境即Java平台。
和第二步界面相似中间列表是要安装的可选功能系统默认的都是第一个选项。
下面是系统安装路径默认是C:Program FilesJavajre1.6.0_02若想安装到其他路径可单击右边的按钮选择其他安装路径JRE按照默认路径安装即可。
设置好安装内容及路径后单击“下一步N”按钮即可在选择的安装路径下安装所选的内容。
安装完毕后弹出如图1-9所示界面提示JDK安装完成。
图1-9 安装完成 安装完成后可以发现系统存在两套JRE一套位于ltJDK安装目录gtjre目录下即C:jdk1.6.0_02jre另一套位于C:Program FilesJavajre1.6.0_02目录下后面这套比前面那套少了Server端的JVM把前面那套Server端的JVM复制过来后两者效果一样。
其实在上述步骤中的第二步已经安装了JDK和JRE第一套第三步安装的是第二套JRE。
安装两套JRE的原因是JDK是基于DOS界面的Java程序集成开发环境而JRE是Java程序运行的必备平台即所谓的JVM。
安装两套JRE就是在机器上安装了两个JVM它们都可以运行Java程序。
Java应用程序可以分为两种一种是JDK目录中的应用程序另一种是根据各种应用需要开发的一般Java程序。
它们执行时分别使用不同的JRE可以减少搜索时间利用JRE并行运行的特点来提高程序执行速度所以C:jdk1.6.0_02jre下的JRE运行JDK目录中的应用程序而C:Program FilesJavajre1.6.0_02下的JRE运行一般Java应用程序。
安装完成后需要重新启动计算机然后设置环境变量步骤如下 1右击“我的电脑”在弹出的快捷菜单中选择“属性”命令打开“系统属性”对话框选择“高级”选项卡单击“环境变量”按钮打开“环境变量”对话框如图1-10所示。
2单击“系统变量”选项区域中的“新建”按钮打开“新建系统变量”对话框变量名设置为JAVA_HOME变量值设置为C:jdk1.6.0_02如图1-11所示此变量值为JDK安装目录所在位置。
程序员突击——Tomcat原理与Java Web系统开发 ·18· 图1-10 “环境变量”对话框 图1-11 “新建系统变量”对话框 3再新建一个系统变量变量名设置为classpath变量值设置为C:jdk1.6.0_02lib C:jdk1.6.0_02libtools.jar此变量值表示搜索Java类的路径该路径中包含一些Jar归档文件或者相应的目录Java程序执行时往往会从classpath中选择并添加自己需要的类路径。
设置时需要注意变量值最前面的“.”表示当前路径不可以省略不同值之间用“”隔开。
4选中“系统变量”面板中的Path变量然后单击“编辑”按钮在弹出的“编辑系统变量”对话框中在变量值的最后添加C:jdk1.6.0_02bin此变量设置一些常用目录该目录中的文件在任何地方都可以直.