信息系统项目管理师_2024年软考学习应考交流_信息系统项目管理师考试

 找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 1981|回复: 2
打印 上一主题 下一主题

Jakarta-Tomcat 简明中文版用户指南第一部分

  [复制链接]

该用户从未签到

升级  30.8%

跳转到指定楼层
楼主
发表于 2006-4-24 08:34:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<p>Jakarta-Tomcat 简明中文版用户指南第一部分 </p><p>本文档提供关于Tomcat的基础信息.主要内容如下:<br/>Tomcat二进制版本安装<br/>与Tomcat相关的脚本的主要内容<br/>与server.xml相关的主要内容,Tomcat的主要配置文件<br/>如何设置Tomcat与宿主web服务器一起工作的说明<br/>如何应用Tomcat配置一个现实中的web站点<br/>希望此文档足以使新用户可以开始使用Tomcat.如找不到某方面的内容请(按以下顺序)<br/>查找Tomcat faq<br/>查找Tomcat包清单<br/>向Tomcat用户邮件列表发出问题<br/>如此疑问的答案不存在,我们鼓励把对疑问的解答放入Tomcat faq或此文档.如对此文档有意见或建议,请发送到Tomcat的邮件列表.</p><p>Getting Started<br/>Tomcat是一个带有jsp环境的servlet容器.servlet容器是一个根据用户的行为可以管理和激活servlet的运行时的shell.<br/>粗略地可以将servlet容器分为如下几类:</p><p>独立的servlet容器<br/>内置有web服务器的一部分.指当使用基于Java的web服务器的情形,例如servlet容器是JavaWebServer的一个部分. 独立的servlet容器是Tomcat的默认模式.<br/>大多数的web服务器并非基于Java,因此,我们可以得出如下两种容器的模式.</p><p><br/>进程内的servlet容器<br/>servlet容器作为web服务器的插件和Java容器的实现.Web服务器插件在内部地址空间打开一个JVM(java virtual machine)使Java容器得以在内部运行.如有某个需要调用servlet的请求,,插件将取得对此请求的控制并将他传递(使用JNI)给Java容器.进程内容器对于多线程,单进程的服务器非常合适并且提供很好的运行速度,但伸缩性有所不足.</p><p><br/>进程外的servlet容器<br/>servlet容器运行于web服务器之外的地址空间且作为web服务器的插件和Java容器的实现的结合.web服务器插件和Java容器 JVM使用IPC机制(通常是TCP/IP)进行通讯.当一个调用servlet的请求到达时,插件将取得对此请求的控制并将其传递(使用IPC等)给Java容器,进程外容器的反应时浠蚪?掏馊萜饕?娌蝗缃?棠谌萜?但进程外容器引擎在许多其他可比的范围内更好(伸缩性,稳定性等).<br/>Tomcat既可作为独立的容器(主要是用于开发与调试)又可作为对现有服务器的附加(当前支持Apache,IIS和Netscape服务器).即任何时候配置Tomcat你都必须决定如何应用他,如选择第二或第三种模式,你还需要安装一个web服务器接口.<br/>Tomcat与Jserv有何区别?Tomcat是Jserv吗?<br/>这是个常见的误解.Jserv是Servlet API2.0兼容并与Apache一起使用的容器.Tomcat是一个完全重写的并与Servlet API2.2和JSP1.1兼容的容器.<br/>Tomcat使用了一些为Jserv而写的代码,特别是Jserv的Apache接口,但这是唯一的相同之处.<br/>怎样安装Tomcat的二进制版本?<br/>非常简单,只需:<br/>下载 zip/tar.gz 任何压缩文件,从<a href="http://jakarta.apche.org/download/binindex.html">http://jakarta.apche.org/download/binindex.html</a>处.<br/>解压缩此文件到某目录(如:foo).将会生成一子目录,名为”tomcat”.<br/>转换到”tomcat”目录设置一新的环境变量(TOMCAT_HOME)指向你安装的tomcat的目录<br/>WIN32平台,键入:<br/>“set TOMCAT_HOME=foo\tomcat”<br/>Unix平台:<br/>如是bash/sh环境, 键入:”TOMCAT_HOME=foo/tomcat;export TOMCAT_HOME”<br/>如是tcsh环境, 键入:”setenv TOMCAT_HOME foo/tomcat”<br/>设置环境变量JAVA_HOME指向你JDK的目录,然后添加JAVA解释器到你的PATH环境变量.<br/>好了!现在可以运行TOMCAT并作为一个独立的Servlet容器(模式一)<br/>启动与关闭Tomcat<br/>使用”bin”目录中的脚本启动与关闭Tomcat.<br/>启动:<br/>uinx:bin/startup.sh<br/>win32:bin\startup<br/>关闭:<br/>unix:bin/shutdown.sh<br/>win32:bin\shutdown<br/>Tomcat目录结构<br/>假设你已将Tomcat解压,你已得到下列目录结构:<br/>目录名--描述 <br/>bin <br/>包含启动/关闭脚本 <br/>conf <br/>包含不同的配置文件,<br/>包括 server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件web.xml<br/>doc<br/>包含各种Tomcat文档 <br/>lib <br/>包含Tomcat使用的jar文件.unix平台此目录下的任何文件都被加到Tomcat的classpath中 <br/>logs <br/>Tomcat摆放日志文件的地方 <br/>src <br/>ServletAPI源文件.先别高兴,这些只有些必须在Servlet容器内实现的空接口和抽象类 <br/>webapps <br/>包含web项目示例 <br/>此外你可以Tomcat会创建如下目录:<br/>work<br/>Tomcat自动生成,放置Tomcat运行时的临时文件(如编译后的JSP文件).如在Tomcat运行时删除此目录.JSP页面将不能运行.<br/>classes<br/>你可以创建此目录来添加一些附加的类到类路径中.任何你加到此目录中的类都可在Tomcat的类路径中找到自身.<br/>Tomcat的脚本<br/>Tomcat是一个Java程序,因此在设置好几个环境变量后即可用命令行的方式运行.然而设置Tomcat使用的每个环境变量和如下的命令行参数乏味且易错.因此,Tomcat开发组提供了一些脚本使启动和关闭Tomcat变得轻松.<br/>注意:这些脚本仅仅是个便利的方法去启动和关闭Tomcat.你可修改他们来定制CLASSPATH,环境变量如PATH,LD_LIBRARY_PATH,等等,只要是生成一个正确的命令行即可.<br/>这些脚本是什么呢?下表列出对一般用户最重要的脚本.<br/>tomcat <br/>主脚本.设置合适的环境变量,包括CLASSPATH,TOMCAT_HOME和JAVA_HOME和用适合的命令行参数启动Tomcat </p><p>startup </p><p>在后台启动Tomcat.”tomcat start”命令的替换方式 </p><p>shutdown </p><p>关闭Tomcat.”tomcat stop”命令的替换方式 </p><p><br/>对用户最重要的脚本是tomcat(tomcat.bat/tomcat.sh).其他Tomcat相关的脚本作为一个简单的面向单任务的指向Tomcat脚本(设置不同的命令行参数等)的入口.</p><p><br/>仔细考察tomcat.bat/tomcat.sh,它按以下步骤运行:</p><p>在Unix下的步骤:</p><p>如未指定,推测 TOMCAT_HOME</p><p>如未指定,推测 JAVA_HOME</p><p>设置CLASS_PATH包含:</p><p>1.${TOMCAT_HOME}/classes目录(如果存在)</p><p>2.${TOMCAT_HOME}/lib的一切内容</p><p>3.${JAVA_HOME}/lib/tools.jar(此jar文件包含工具javac,我们需要javac处理jsp文件.</p><p><br/>运行带有设定Java环境变量的命令行参数的java命令,调入tomcat.home,和org.apache.tomcat.startup.Tomcat 作为启始类.同时也传递命令行参数到org.apache.tomcat.startup.Tomcat ,例如:</p><p><br/>执行start/stop/run 等的操作</p><p>此Tomcat进程使用指向server.xml的路径,</p><p>例如server.xml放置于etc/server_1.xml并且用户意图在后台启动apache,键 入如下命令行:</p><p>bin/tomcat.sh start –f /etc/server_1.xml</p><p>在Win32下的步骤:(略)</p><p><br/>&nbsp;</p>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 顶 踩

该用户从未签到

升级  30.8%

沙发
 楼主| 发表于 2006-4-24 08:34:52 | 只看该作者
由此可见,win32版的tomcat.bat与Unix版的几乎一致.尤其在它不推测TOMCAT_HOME和JAVA_HOME的值,并且不将所有的jar文件放入类路径中.<p><br/>Tomcat的配置文件</p><p>Tomcat的配置基于两个配置文件:</p><p>1.server.xml - Tomcat的全局配置文件</p><p>2.web.xml - 在Tomcat中配置不同的关系环境</p><p><br/>这一部分将讲述如何使用这些文件.我们不会包含web.xml的内部机制,这些内部机制深入到了Servlet API的细节,因此,我们将讨论涵盖servler.xml内容及web.xml在Tomcat关系环境中的用法.</p><p><br/>server.xml</p><p>server.xml是Tomcat的主配置文件.完成两个目标:</p><p>1 提供Tomcat组件的初始配置.</p><p>2 说明Tomcat的结构,含义,使得Tomcat通过实例化组件完成起动及构建自身, 如在server.xml所指定的</p><p>下表描述server.xml种的重要元素:</p><p>Jakarta-Tomcat 简明中文版用户指南第二部分 <br/> </p><p>元素及其描述 </p><p>Server<br/>server.xml文件中最重要的元素.Server定义了一个Tomcat服务器.一般你不用对他担心太多.Server元素能包含Logger和ContextManager元素类型</p><p>Logger<br/>此元素定义一个Logger对象,每个Logger都有一个名字去标识,也有一个纪录Logger的输出和冗余级别(描述此日志级别)和包含日志文件的路径.通常有servlet的Logger(ServletContext.log()处),JSP和Tomcat运行时的Logger.</p><p>ContextManager<br/>ContextManager说明一套ContextInterceptor, RequestInterceptor , Context和他们的Connectors的配置及结构.ContextManager有几个随同提供的特性:<br/>1. 用来纪录调试信息的调试级别 <br/>2. webapps/,conf/,logs/和所有已定义的环境的基本位置.用来使Tomcat可以在TOMCAT_HOME外的其他目录启动. <br/>3. 工作目录的名字</p><p>ContextInterceptor&amp;RequestInterceptor<br/>这些侦听器(interceptors)侦听具体发生在ContextManager中的事件.例如,ContextInterceptor侦听Tomcat的启动及终止事件,RequestInterceptor监视在它服务过程中用户请求需要通过的不同阶段.Tomcat的管理员不必知道太多关于侦听器的知识;另外,开发者应该知道这是如何在Tomcat中实现一个”全局”型的操作(例如安全性及每个请求日志)</p><p>Connector<br/>Connector表示一个到用户的联接,不管是通过web服务器或直接到用户浏览器(在一个独立配置中).Connector负责管理Tomcat的工作线程和 读/写 连接到不同用户的端口的 请求/响应.Connector的配置包含如下信息:</p><p>1.句柄类</p><p>2.句柄监听的TCP/IP端口</p><p>3.句柄服务器端口的TCP/IP的backlog.</p><p>稍后我们将在此文档中描述如何配置Connector.</p><p>Context<br/>每个Context提供一个指向你放置你Web项目的Tomcat的下属目录。每个Context包含如下配置:</p><p>1. Context放置的路径,可以是与ContextManager主目录相关的路径.</p><p>2.纪录调试信息的调试级别</p><p>3.可重载的标志.开发Servlet时,重载更改后的Servlet,这是一个非常便利的特性,你可以调试或用Tomcat测试新代码而不用停止或重新启动Tomcat.要打开重载,把reloadable设为真即可.这虽花费时间但可检测所发生的变化;更重要的事,鉴于,在一个装载类对象装入一个新的servlet时,类装载触发器可能会掷出一些错误.为避免这些问题,你可以设置可重载为假,这将停止重载功能.</p><p><br/>  </p><p>从另一个目录中启动Tomcat</p><p>作为缺省值将使用TOMCAT_HOME/conf/server.xml作为配置文件.缺省配置将使用TOMCT_HOME作为关系环境的基础.</p><p>使用 “-f/你的/目录/server.xml”选项你可改变这种情况,使用另一个服务器配置文件和设置关系环境管理器的目录属性你需要在主目录内设置以下几个文件:</p><p>? 一个 webapps/目录(如果你已生成) – 所有war文件奖杯界压倒此目录而且所有子目录将作为关系环境添加.</p><p>? conf/目录 - 你可保存一个特殊的web.xml文件和其他配置文件</p><p>? logs/ - 所有日志文件将代替TOMCAT_HOME/logs/纪录到此目录中</p><p>? work/ - 关系环境的工作目录</p><p>如server.xml中的ContextManager.home属性有关联,将关联到到当前工作目录.</p><p>web。xml</p><p>关于web。xml和web项目结构(包括目录服务及配置)的详细描述可在Servlet API Spec的第9,10,14章中找到。</p><p>然而有一个与Tomcat有关的小“特性“与web.xml有关。Tomcat可以让用户通过将缺省的web.xml放入conf目录中来定义所有关系环境的web.xml的缺省值.建立一个新的关系环境时,Tomcat使用缺省的web.xml文件作为基本设置和应用项目特定的web.xml(放在应用项目的WEB-INF/web.xml文件)来覆盖这些缺省值.</p><p>设置Tomcat与Apache Web 服务器</p><p>服务器</p><p>到现在为止,我们未讨论作为服务器扩展的Tomcat,只讨论了作为独立运行的服务器.但有一些问题需要说明:</p><p>1. 当处理静态页面时,Tomcat不如Apache迅速.</p><p>2. Tomcat不象Apache一样可配置.</p><p>3. Tomcat不象Apache一样强壮.</p><p>4. 有很多网站已在某一特定web server上投入了很长时间,例如,使用CGI脚本/Server API模组/perl/php…我们不能假设这些遗留下来的东西都会被丢弃.</p><p>基于以上原因,一个现实的网站建议使用一个Web服务器,如Apache,为网站的静态页面请求提供服务,并使用Tomcat作为一个Servlet/JSP插件.</p><p>我们不准备深入的讨论每个不同的配置,我们将:</p><p>1. 涵盖Web服务器的基本行为</p><p>2. 解释需要何种配置</p><p>3. 在Apache上的实例</p><p><br/>Web 服务器操作</p><p><br/>简单说来,web服务器总是等待来自客户端的HTTP请求。当请求到达时,服务器会提供一切必要的内容来满足此请求。加入一个Servlet容器某种程度上会改变此行为。但服务器仍需处理如下因素:</p><p>载入servlet容器接口库并初始化(处理请求之前)。</p><p>当收到一个请求时,检查是否属于某Servlet,如是,则接口库接收此请求并处理。</p><p>另一方面,接口库需要知道他将服务某种请求,通常是基于请求的URL的某种模式和将此请求导向何处。</p><p>当用户想要设置使用虚拟主机的配置时,事情会变得更加复杂,或者想多个开发者在一个服务器上进行开发但使用不同的Servlet容器的JVMs。以下我们将讨论这两个问题。</p><p><br/>必需进行的配置</p><p><br/>应该考虑的是最明显的配置是servlet URL具有对servlet容器中的servlet具有表示的责任。很明显,你必须知道传递什么到Servlet容器。我们仍需提供附加的配置项目到web-server或servlet-container的结合体中.</p><p>l 考虑到Tomcat进程是否可取得,我们仍需提供配置和Tomcat正在监听的TCP/IP 主机名/端口号。</p><p>l 需要告知web服务器接口库的位置(因此我们可以在起始时装入)</p><p>l 需要设置接口内部信息如将日志记录在何处和如何纪录,等等。</p><p>所有此类信息必须出现在web服务器配置里或被接口使用的私有配置文件中。下面将讲述如何在Apache中如何实现这些配置。</p><p><br/></p>

该用户从未签到

升级  30.8%

藤椅
 楼主| 发表于 2006-4-24 08:35:01 | 只看该作者
Apache上的实现<p>这一部分演示如何配置Apache与Tomcat一起工作;并试图解释深入到可能会用到的配置规范。在jserv 安装页上可找到其他信息。<br/>怎样设置 JSP 的虚拟目录<br/>&nbsp;作者:<br/>&nbsp;</p><p>ASP</p><p>#:如果你装的是tomcat3.2可以这样修改</p><p>在你的和下面的一段代码相似的地方添加如下代码</p><p>&lt;Context path="/web" <br/>docBase="d:/www/jsp" <br/>crossContext="true"<br/>debug="0" <br/>reloadable="true" <br/>trusted="false" &gt; <br/>&lt;/Context&gt;</p><p>其中path的值是虚拟目录<br/>docbase的值是你的硬盘的的目录的绝对路径。<br/>环境配置一向是一个比较烦的一件工作!本文的目的就是要轻松为你搞定安装和配置SERVLET和JSP的执行环境。 </p><p>首先,到java.apache.org去下载一个tomcat3.1,tomcat3.2。笔者用的是tomcat3.1。下载的是一个ZIP文件。将它extract到一个目录下面。比如c:\下面。在c盘下面就会出现一个jakatar-tomcat的目录。你可以将这个目录改个名字。我将目录名改为tomcat。现在打开c:\tomcat\conf目录下的server.xml文件。找到ContextManager这个tag,你将可以看到: </p><p>&lt;Connector className="org.apache.tomcat.service.SimpleTcpConnector"&gt; </p><p>&ltarameter name="handler" value="org.apache.tomcat.service.http. </p><p>HttpConnectionHandler"/&gt; </p><p>&ltarameter name="port" value="80"/&gt; </p><p>&lt;/Connector&gt; </p><p>因为tomcat可以作为一个独立的服务器使用,所以有它自己的port号。在这里可以修改它缺省的port号。注意要修改为一个你机器上还没有被占用的port号。我改成9000。 </p><p>现在到c:\tomcat\bin目录下面,你可以看到一个startup.bat的批处理文件。在执行这个文件前,如果你用的是JDK1.2.1或JDK1.2.2的话,请将JDK_HOME\LIB\tools.jar这个文件放到classpath中去。 </p><p>(注:设置classpath的方法:右键单击“我的电脑”à 选择属性à 环境,如果还没有classpath这个环境变量,就添加一个,如果有了就在它的基础上修改,加上JDK_HOME\LIB\tools.jar) </p><p>现在可以执行startup.bat这个文件了。(如果在执行时出现out of environment space的提示,就将你的DOS窗口的缓冲区大小开得大些。具体作法:在DOS 窗口的菜单中的属性--&gt; 内存 --&gt; 总共和初始环境改大点) </p><p>在执行完后,startup.bat会在另一个窗口开start tomcat的。现在你可以享受一下你的成果了。打开浏览器,在地址栏:<a href="http://localhost:9000/">http://localhost:9000/</a> </p><p>然后回车。你应该看到了一只jakatar-tomcat。现在在地址栏键入: </p><p><a href="http://localhost:9000/examples/servlet/">http://localhost:9000/examples/servlet/</a>,回车。你应该看到一个servlet的index的页面,点击其中的例子servlet看看吧。现在在地址栏键入 </p><p><a href="http://localhost:9000/examples/jsp/">http://localhost:9000/examples/jsp/</a>,回车。你应该看到一个类似刚才servlet index页面的一个页面。点击jsp的例子看看吧。如果在点击了一个JSP的例子后出现500的错误,如果没有别的错误信息,在IE5的工具菜单à Internet选项à 高级,把显示友好的HTTP错误的选项去掉,然后IE就会报出具体的出错信息。原因是你没有将tools.jar放到classpath中去。 </p><p>现在要将tomcat连接到apache上去了。首先到<a href="http://www.apache.org/">www.apache.org</a>上去下载一个Apache Web Server,我用的是Apache1.3.12。再到java.apache.org上去下载一个Jserv,我用的是Jserv1.1.1。先安装Apache Web Server(比如安装在c:\apache目录下面)。安装完后需要修改c:\apache\conf\httpd.conf文件,找到Servername,修改为你喜欢的名字,找到port,修改为未被占用的端口。再安装Jserv(比如安装在c:\Jserv目录下面)。安装Jserv需要指定JVM所在的目录,你可以指定JDK_HOME\BIN目录。需要指定JSDK所在目录,我指定的是我从java.sun.com上面下载的JSDK安装后的目录。(实际上它要找的是servlet.jar这个文件,你可以指定tomcat\lib\servlet.jar试一试,我并没有这样试过) </p><p>这时候实际上Apache已经支持Servlet了,但还不支持JSP。所以你需要修改c:\apache\conf\httpd.conf文件。用文本编辑器打开httpd.conf,在文件最后加上:Include “Tomcat_Home\conf\tomcat-apache.conf”(请注意,tomcat-apache.conf这个文件是在tomcat运行后由tomcat自动产生的。所以要先开tomcat,再打开Apache)。 </p><p>现在先启动tomcat(c:\tomcat\bin\startup.bat),当出现了另一个窗口后,启动Apache(c:\apache\bin\apache.exe或者通过开始菜单à 程序à Apache Web Serverà Start Apache启动)。如果此时通过后者启动Apache,有一个DOS窗口一闪后就消失了,说明对Apache+JServ+tomcat的配置还有问题,应该通过第一种方法启动Apache,此时你就能在屏幕上看到具体的出错信息。如果出错信息是:apj* : can’t be specified more than once per host。(*号代表一些字符串,比如ApJServLogLevel等等),你就要修改c:\Jserv\conf\jserv.conf文件,将apj*的相关行注释掉就可以,可能需要注释5-6行。如果Apache也正常启动的话,现在你可以在地址栏键入<a href="http://localhost:apache_port/examples/servlet/">http://localhost:apache_port/examples/servlet/</a> 来通过Apache+tomcat调试Servlet,这里apache_port是Apache的端口号,可以通过修改c:\apache\conf\httpd.conf这个文件修改端口号;在地址栏键入<a href="http://localhost:apache_port/examples/jsp/">http://localhost:apache_port/examples/jsp/</a> 来调试JSP。 </p><p>如果读者细心的话,会发现前面测试用的都是examples\jsp目录。现在就告诉你怎么创建你自己的目录。先在c:\tomcat\webapps目录下面创建testdir目录。在testdir目录下面创建jsp目录和classes目录。现在用文本编辑器打开c:\tomcat\conf目录下面的server.xml。在&lt;ContextManager&gt;的结束tag前面加上: <br/>&lt;Context path="/testdir" docBase="webapps/testdir" debug="0" reloadable="true" &gt; </p><p>&lt;/Context&gt; </p><p>然后将c:\tomcat\webapps\testdir\classes目录放到classpath这个环境变量中去。用文本编辑器编辑下面这个文件。 </p><p>&lt;html&gt; </p><p>&lt;body&gt; </p><p>&lt;% </p><p>int i; </p><p>for(i=1;i&lt;6;i++){ </p><p>out.println("&lt;h" + i + "&gt;Hello World&lt;/h" + i + "&gt;"); </p><p>} </p><p>%&gt; </p><p>&lt;/body&gt; </p><p>&lt;/html&gt; </p><p>存为c:\tomcat\webapps\testdir\jsp\helloworld.jsp。在地址栏键入: </p><p><a href="http://localhost:apache_port/testdir/jsp/helloworld.jsp">http://localhost:apache_port/testdir/jsp/helloworld.jsp</a> 看看结果吧。 </p><p>再测试一下Servlet。用文本编辑器编辑下面这个文件。 </p><p>import java.io.*; </p><p>import java.text.*; </p><p>import java.util.*; </p><p>import javax.servlet.*; </p><p>import javax.servlet.http.*; </p><p>public class HelloWorld extends HttpServlet { </p><p>public void service(HttpServletRequest request, </p><p>HttpServletResponse response) </p><p>throws IOException, ServletException </p><p>{ </p><p>response.setContentType("text/html"); </p><p>ServletOutputStream out = response.getOutputStream(); </p><p>out.println("&lt;html&gt;"); </p><p>out.println("&lt;head&gt;"); </p><p>String title = “Hello World”; </p><p>out.println("&lt;title&gt;" + title + "&lt;/title&gt;"); </p><p>out.println("&lt;/head&gt;"); </p><p>out.println("&lt;body bgcolor=\"white\"&gt;"); </p><p>out.println("&lt;body&gt;"); </p><p>out.println("&lt;h1&gt;" + title + "&lt;/h1&gt;"); </p><p>out.println("&lt;/body&gt;"); </p><p>out.println("&lt;/html&gt;"); </p><p>} </p><p>} </p><p>存为c:\tomcat\webapps\testdir\classes\HelloWorld.java,用javac编译后,在地址栏键入<a href="http://localhost:apache_port/testdir/servlet/HelloWorld">http://localhost:apache_port/testdir/servlet/HelloWorld</a> 看看结果吧。 <br/></p>
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

小黑屋|手机版|Archiver|信息系统项目管理师_软考交流平台. ( 鄂ICP备11002878号-1  公安备案号:42011102001150

GMT+8, 2025-7-6 08:49

Software by Discuz! X3.2

© 2001-2013 SKIN BY DSVUE

快速回复 返回顶部 返回列表