Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » 技术文章库
打印话题 寄给朋友 订阅主题 |
作者 | Tomcat的Servlet配制 |
jerryjerry123
发贴: 58 积分: 12 |
于 2005-05-16 21:18
JSP + Servlets 编程环境的建立与实现 // Win2000 Server + Java 2(JDK1.4.0)+ Apache1.3.23 + tomcat-4.0.3 + webapp-module-1.0 篇 // 说明: 目前网络上有各种配置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,如果你己经在使用它了,此步可不要。 二、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来浏览或者是http://localhost:8080/sss.do来浏览,sss是任何字符。就是说*表示任何字符。 此处的*.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/111</url-pattern> </servlet-mapping>来替代,此时就是用路径名和servlet名来浏览该servlet,此处即是localhost:8080/servlet/111,总之<url-pattern></url-pattern>之间的是你访问该servlet的路径。 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.do 两种方式均可看到输出,也就是说*也包括/。 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 看看有什么输出吧! |
话题树型展开 |
人气 | 标题 | 作者 | 字数 | 发贴时间 |
9261 | Tomcat的Servlet配制 | jerryjerry123 | 12141 | 2005-05-16 21:18 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |