//////////////////////////////////////////////////////////////////////////////////////////////
// JSP + Java Servlets 编程环境的建立与实现〈一〉 //
// //
// Win2000 Server + Java 2(JDK1.4.0)+ Apache1.3.23 + tomcat-4.0.3 + webapp-module-1.0 篇 //
// //
//////////////////////////////////////////////////////////////////////////////////////////////
// //
// 作者:josser chai (现己改为 Abner Tsai) //
// 联系地址:abnertsai@sina.com 或 josserchai@yahoo.com //
// 2002.3.7 //
//声明: //
// 本人提供此文件只供学习之用,任何个人和组织都可以使用。同时,若你在使用过程中发现有比 //
//些方法更好、更简单的方法,烦请E-mail给我一份。多谢!同时,烦请任何人在转贴本文件内容时,请//
//保持本文件声明。 //
//////////////////////////////////////////////////////////////////////////////////////////////
// //
//修定说明: //
// 本人于2002.6.11又对此文章进行修改和增加了部分内容,增加的内容主要是: //
// 如何设置并运行自己的JSP和Servlet目录和程序,同时由于有许多网友写信给我说在安装过程 //
// 中出现了错误,没有实现,由于本人工作太忙,有许多网友的信我都没有回,请见谅。以后一//
// 一定尽量做到。同时修改了安装时设置classpath的部分,使之更加简捷。 //
// //
// //
//////////////////////////////////////////////////////////////////////////////////////////////
说明:
目前网络上有各种配置JSP编程的方法,如使用Jserv+Apache+Tomcat、JSDK+IIS等。但做为个人学习
之用,本人首推Apache+Tomcat。但目前网络上有许多配置的方法,大多数很麻烦,如使用mod_jk等。而且
那些方法用在此处最新的发行版软件上都不适用(本人试过,你可试试,注意在windows系列中,若和
Tomcat4.0结合的话,Apache1.3.23是最稳定的版本,Apache1.3.6或Apache2.0都会出问题)。
Java 2 (jdk1.4.0-b92)是sun 公司发行的<<最新版>>的Java编译器。下载地址为:www.sun.com/j2se/1.4/
Tomcat-4.0是Apache组织最新发行的支持JSP的Web服务器。下载地址为:
http://jakarta.apache.org/builds/jakarta-tomcat/release/
Apache1.3.23-win32是Apache组织发行了支持window 98/NT/2000的最稳定的Web服务器。下载地址为:
http://www.apache.org/dist/httpd/
webapp-module-1.0是Apache组织写的连接Apache和Tomcat较好的一种支持接口。下载地址为:
http://www.apache.org/dist/httpd/
win2000 (family) Server 就不用说明了吧。//呵呵,如果不知道的话,就不要往下看了。
配置方法:
一、安装win2000,如果你己经在使用它了,此步可不要。
二、A:下载Java2(jdk1.4.0),下载后的文件名为:j2sdk-1_4_0-win.exe。
双击运行,按默认安装到c:\j2sdk1.4.0目录下。jre将自动安装到
C:\Program Files\Java\j2re1.4.0下,Jre是运行Java程序必需的支持环境。
B:安装好后,需要设置路径了:
方法如下:点击“我的电脑”右键--属性--高级--环境变量,在“系统变量”中
新建"JAVA_HOME"值为:C:\j2sdk1.4.0
注:下面前面带//的行与下下面带//的行选择一个做即可,即二者只需做一次即可以了.
//新建:CLASSPATH值为:
//C:\j2sdk1.4.0\lib\dt.jar;C:\j2sdk1.4.0\lib\tools.jar;C:\j2sdk1.4.0\lib\htmlconverter.jar;C:\Program Files\Apache Tomcat 4.0\common\lib\servlet.jar
//注意要连着写,用“;”隔开;
//新建:JAVA_OPTS,值为空(什么也不写)
//新建:JAVA_ENDORSED_DIRS,值为:C:\Program Files\Apache Tomcat 4.0\bin;C:\Program Files\Apache Tomcat 4.0\common\lib
//注意要连着写,用“;”隔开;
//新建:_RUNJAVA,值为:C:\j2sdk1.4.0\bin\java
//新建:_RUNJAVAW,值为:C:\j2sdk1.4.0\bin\javaw
//新建:_RUNJDB,值为:C:\j2sdk1.4.0\bin\jdb
//以上这建的几个变量是以编译jsp和Servlets时所需要用的
然后,在此处双击path变量,在后面加上:;C:\j2sdk1.4.0\bin,以便在其它地方可以编译java文件。
C:测试JDK安装成功:
在C:\j2sdk1.4.0下建一个myjava目录,然后把C:\j2sdk1.4.0\demo\applets\Clock下的
clock.java和example1.html 拷到myjava目录下,然后执行:
>javac clock.java
>appletviewer example1.html
就可以看到弹出一个走动的时钟了,此时表明测试applet成功。
然后测试java application
把下面的程序用记事本记入一个名字test.java的文件中,注意扩展名为.java。
public class test
{
public static void main(String args[])
{
System.out.print("hello world ,JDK setup successful!\n");
}
}
把此test.java文件放入myjava目录中,然后执行:
>javac test.java
>java test
就可以看到打出一行"hello world ,JDK setup successful!"文字,此时表明JDK就安装好了。
三、A:安装Tomcat-4.0,下载后的文件名字为:
jakarta-tomcat-4.0.3.exe,直接运行它并按它默认的目录安装到
C:\Program Files\Apache Tomcat 4.0下面。
B:配置TOMCAT路径:
1:点击“我的电脑”右键--属性--高级--环境变量,在“系统变量”
新建"CATALINA_HOME"值为:C:\Program Files\Apache Tomcat 4.0
//2:找到C:\Program Files\Apache Tomcat 4.0\bin\setclasspath.bat文件,把其中所有的%BASEDIR%
// 换成%CATALINA_HOME%
// 并找到其中的set CLASSPATH一项,改为:
// set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\htmlconverter.jar;%CATALINA_HOME%\common\lib\servlet.jar
// setclasspath.bat文件是tomcat提供的一个设置库文件的批处理文件,它可以测试你的运行环境的
// classpath是否正确。对它修改后的内容应如下:
if not "%JAVA_HOME%" == "" goto gotJavaHome
echo The JAVA_HOME environment variable is not defined
echo This environment variable is needed to run this program
goto end
:gotJavaHome
if exist "%JAVA_HOME%\bin\java.exe" goto okJavaHome
echo The JAVA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okJavaHome
if not "%CATALINA_HOME%" == "" goto gotBasedir
echo The CATALINA_HOME environment variable is not defined
echo This environment variable is needed to run this program
goto end
:gotBasedir
if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okBasedir
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okBasedir
rem Set the default Java options for all scripts
set JAVA_OPTS=
rem Set the default -Djava.endorsed.dirs argument
set JAVA_ENDORSED_DIRS=%CATALINA_HOME%\bin;%CATALINA_HOME%\common\lib
rem Set standard CLASSPATH
rem Note that there are no quotes as we do not want to introduce random
rem quotes into the CLASSPATH
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\htmlconverter.jar;%CATALINA_HOME%\common\lib\servlet.jar
rem Set standard command for invoking Java.
rem Note that NT requires a window name argument when using start.
rem Also note the quoting as JAVA_HOME may contain spaces.
set _RUNJAVA="%JAVA_HOME%\bin\java"
set _RUNJAVAW="%JAVA_HOME%\bin\javaw"
set _RUNJDB="%JAVA_HOME%\bin\jdb"
:end
//若对批文件指令有一点了解的,可以很容易看明白上面的代码.
//以后在编译jsp,或servlet 或java文件时,总要先运行以上文件才能正确编译
注:上面前面带//的行与上上面带//的行选择一个做即可,即二者只需做一次即可以了.
C:配置Tomcat的配置文件,在C:\Program Files\Apache Tomcat 4.0\conf\server.xml中,此处不配置即可,若想配置,在下面再配它。
D:测试Tomcat安装成功:打开IE,在地址栏中输入:http://localhost:8080就可以看到Tomcat的页面了。
或输入http://xxx.xxx.xx.xxx:8080其中xxx.xxx.xx.xxx为你的win2000的IP地址。
E:如何配置Tomcat使它可以运行自己的JSP文件和Java Servlet,下面将详细说明:
1:配置Tomcat的server.xml文件使它支持自己的JSP文件。
用记事本打开conf下面的server.xml文件,找到其中的:
............
<!-- Tomcat Root Context -->
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->
<!-- Tomcat Manager Context -->
<Context path="/manager" docBase="manager"
debug="0" privileged="true"/>
<!-- Tomcat Examples Context -->
<Context path="/examples" docBase="examples" debug="0" reloadable="true" crossContext="true">
...........
几行。然后在上面
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->后面加上以下几行:
<Context path="/myjsp" docBase="ROOT/myjsp" debug="0" reloadable="true">
</Context>
这样就在webapps目录(Tomcat的默认页面目录)下面的ROOT目录(Tomcat默认的页面根目录)下建了一个放自己JSP文件的目录myjsp,当然,在做以上几步之前,
你必须首先在ROOT目录下建一个空的myjsp目录。若想多加几个属于自己的JSP目录,则在上面用同样的方面添加即可。
2:测试自己的JSP文件
在myjsp目录中建一个文件名为:HelloWorld.jsp,用记事本编辑使其内容为:
<html>
<body bgcolor="white">
<%
String Msg="Welcome to Abner's JSP world!";
out.print("Hello World!");
%>
<h2><%=Msg%></h2>
</body>
</html>
保存文件,起动TOMCAT服务器,然后在浏览器中输入http://xxx.xxx.xxx.xx:8080/myjsp/HelloWorld.jsp即可看到输出了。
或输入http://xxx.xxx.xxx.xx:8080/myjsp/即可以浏览目录,然后点击文件即可。注xxx.xxx.xxx.xx是你的IP地址,也可是localhost。
注意:文件名是大小写区别的。
3:设置使Tomcat运行自己的Servlet
在ROOT下面的WEB-INF目录下建一个classes目录,然后用记事本打开ROOT下面WEB-INF目录中的web.xml
把web.xml的内容在<web-app>和</web-app>之间增加内容,使之为如下所示的web.xml内容:
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<description>
This servlet plays the "Hello World Example" role.
just a Hello World program!
</description>
<servlet-class>hello</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout> <!-- 30 minutes -->
</session-config>
</web-app>
以上的web.xml即是对servlet进行的最简单的声明,它声明了一个叫hello的servlet,用做下面我们测试用.
web.xml中
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>的几行是声明在浏览器中以servletname.do来浏览该servlet,此处可用localhost:8080/hello.do来浏览。
此处的*.do是任意设置的,也可以设置为*.pl等。
也可用
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*</url-pattern>
</servlet-mapping>来替代,此时就是用servlet名来浏览该servlet,此处即是localhost:8080/hello
还可以用
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>来替代,此时就是用路径名和servlet名来浏览该servlet,此处即是localhost:8080/servlet/hello
4:测试自己的servlet
在WEB-INF下面的classes目录中建一个名为hello.java的文件,输入它的内容如下:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class hello extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void destroy()
{
super.destroy();
}
public void service(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException
{
resp.setContentType("text/html");
PrintWriter out=new PrintWriter(resp.getOutputStream());
out.println("<html>");
out.println("<head><title>helloworldExample</title></head>");
out.println("<body>");
out.println("Hello! This is My first Servlet program!");
out.println("</body>");
out.println("</html>");
out.close();
}
}
然后到DOS下,进入classes目录中,运行:
>javac hello.java
即可看到在classes目录下产生一个hello.class文件,若此处编译有问题,则请检查上面设置classpath和path时是否正确设置。
然后在浏览器中输入http://xxx.xxx.xxx.xx:8080/hello.do来看到该servlet运行的结果了。
其中xxx.xxx.xx.xxx为你的IP地址。
至此你就配置好了自己的jsp 和 servlet运行环境了。
下面讲如何和Apache联接起来使用。
四、A:安装Apache ,去下载一个Apache安装文件,下载后的文件名为:
apache_1.3.23-win32-x86-no_src.exe,直接运行它并按它默认的目录安装到
C:\Program Files\Apache Group\Apache下面。
注意:在安装此版本的Apache时,系统会自动找到你的Servername(你的计算机名),并自动设置端口
号为80,并要求你填写administrator的联系E-mail地址,一切默认即可。
B:配置Apache,用记事本打开C:\Program Files\Apache Group\Apache\conf下的http.conf文件,
找到: #Listen 3000
#Listen 12.34.56.78:80
两行,把前面的#号去掉,把以上两行改为:
Listen 80
#Listen xxx.xxx.xx.xxx:80
其中xxx.xxx.xx.xxx为你的IP地址。然后找到port一行,并确认它后为:80;然后找到
ServerName一行,并确认它后面跟的是不是你的计算机名如:worker16.soft.com(注意此处名称要搞
清,下面还要用到),其中worker16为你的计算机标识名,soft.com为你的win2k所在的域名。
C:到此,你的Apache就好了,测试它:在IE中输入:http://xxx.xxx.xx.xxx看看是不是出现了Apache默认的目录
页面。
五、用mod_webapp把Apache和Tomcat结合起来,使Apache支持JSP功能。
A:去www.apache.org把mod_webapp for windows下载回来,下载回来的文件是:
webapp-module-1.0-tc40-windows.zip。把它解压缩到一个目录如test中。
B:把test目录中的libapr.dll拷到C:\Program Files\Apache Group\Apache下面,注意此目录是Apache安
装的目录。此目录下同时还有lib、libexec、bin、logs等目录,即libapr.dll要放到Apache安装的根
目录下。
C:把test目录中的mod_webapp.so文件拷到C:\Program Files\Apache Group\Apache\modules下面。
D:用记事本打开C:\Program Files\Apache Group\Apache\conf\http.conf文件,在文件的"最后面"加上
以下几行:
LoadModule webapp_module modules/mod_webapp.so
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
E:用记事本打开C:\Program Files\Apache Tomcat 4.0\conf\server.xml文件,找到文件最后面的以下几行:
<!-- Define an Apache-Connector Service -->
<Service name="Tomcat-Apache">
<Connector className="org.apache.catalina.connector.warp.WarpConnector"
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true" appBase="webapps" acceptCount="10" debug="0"/>
<!-- Replace "localhost" with what your Apache "ServerName" is set to -->
把上面的Service name="Tomcat-Apache"一行中的“Tomcat-Apache”改为你的计算机名:
即上面设置的worker16.soft.com。改后的上面几行应为:
<!-- Define an Apache-Connector Service -->
<Service name="worker16.soft.com">
<Connector className="org.apache.catalina.connector.warp.WarpConnector"
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true" appBase="webapps" acceptCount="10" debug="0"/>
<!-- Replace "localhost" with what your Apache "ServerName" is set to -->
存盘。到此为止,就把Tomcat和Apache联接起来了。
六、1:测试Apache是否持JSP
打开IE,在地址栏中输入:http://xxx.xxx.xx.xxx/myjsp/HelloWorld.jsp
就可以看到页面,运行其中的例子,就可以看到JSP运行的结果了。
2:测试Apache是否持servlets
打开IE,在地址栏中输入:http://xxx.xxx.xx.xxx/hello.do
就可以看到页面,运行其中的例子,就可以看到servlets运行的结果了。
到此为止,一个编写JSP的系统环境就配置好了。是不是很容易,一切只要默认安装,然后小改一
部分,就一切搞定了。如果对于个人学习用,可以只安装Tomcat就可以了,即不进行上面的第四和第五步。
七:补充说明:
1:在运行自己的Servlet时,若改动了.java源程序,需要重新编译,并且需要重新启动Tomcat和Apache。
在需要时,还需要重新设置web.xml文件。在Tomcat和Apache配全使用时,需先启动Tomcat,再启动Apache才行。
2:在上面设置web.xml时,还可以向servlet传参数,具体如何做,请参考Tomcat的说明文件。
3:在上面提供的web.xml程序中采用:
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.do</url-pattern>
配置时,在访问时用http://xxx.xxx.xxx.xx:8080/hello.do和http://xxx.xxx.xxx.xx:8080/servlet/hello
两种方式均可看到输出,本人不知为何原因?你在使用过程中若找到原因,烦请告知我:abnertsai@sina.com
多谢!
4:补充说明如何配置Tomcat的用户和使用基于WEB的远程管理工具
请用记事本打开Tomcat安装目录下的conf目录下的tomcat-users.xml文件,可以看到如下内容:
<!--
NOTE: By default, no user is included in the "manager" role required
to operate the "/manager" web application. If you wish to use this app,
you must define such a user - the username and password are arbitrary.
-->
<tomcat-users>
<user name="tomcat" password="tomcat" roles="tomcat" />
<user name="role1" password="tomcat" roles="role1" />
<user name="both" password="tomcat" roles="tomcat,role1" />
</tomcat-users>
找到行 <user name="tomcat" password="tomcat" roles="tomcat" />
把roles的值改为manager,即:roles="manager"
保存文件,重新启动TOMCAT,在浏览器中输入http://xxx.xxx.xxx.xx:8080/manager/command
这里command代表的是管理程序的名字,Tomcat4.0支持install,list,roload,remove,
sessions,start,stop等七个程序,每个程序都有自己的参数。至于如何调用这些程序,
请查阅Tomcat的Tomcat Manager Application说明。
例输入:http://xxx.xxx.xxx.xx:8080/manager/list
看看有什么输出吧!