孫庚(javagen@gmail.com)
軟件工程師
2004-10-22
[文章摘要]詳細介紹了tomcat在windows上的配置和基本使用,適合初學(xué)者。
關(guān)鍵詞: tomcat 基礎
1. 系統環(huán)境:windows2000。
2. 需要軟件:
Tomcat安裝程序,這里我用的是jakarta-tomcat-4.1.30-LE-jdk14.exe
JDK安裝程序,這里我用的是j2sdk-1_4_2_04-windows-i586-p.exe
3. 先安裝JDK:
安裝過(guò)程很簡(jiǎn)單,這個(gè)JDK版本很霸道,沒(méi)有提示我安裝到哪個(gè)路徑,直接就裝在C:\j2sdk1.4.2_04了,不過(guò)沒(méi)有關(guān)系。
4.安裝Tomcat:
也很簡(jiǎn)單,剛開(kāi)始讓你確認JDK安裝的目錄,估計不會(huì )認錯,點(diǎn)確認就可以了。選了安裝路徑就下一步安裝,在裝到98%的時(shí)候他會(huì )提示你輸入Tomcat的超級管理員密碼,輸入,下一步。在此要保證你機器的8080端口和8005端口不被其他服務(wù)占用。
到現在,你的Tomcat已經(jīng)可以運行起來(lái)了,你可以去[開(kāi)始]菜單的程序里面找到“Apache Tomcat 4.1“程序組。點(diǎn)里面的”Start Tomcat“,彈出一個(gè)cmd窗口,內容如下:
Starting service Tomcat-StandaloneApache Tomcat/4.1.30-LE-jdk14
2004-10-27 17:45:29 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config=‘org.apache.struts.util.LocalStrings‘, returnNull=true
2004-10-27 17:45:29 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config=‘org.apache.struts.action.ActionResources‘, returnNull=true
2004-10-27 17:45:30 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config=‘org.apache.webapp.admin.ApplicationResources‘, returnNull=true
Starting service Tomcat-Apache
Apache Tomcat/4.1.30-LE-jdk14
關(guān)閉Tomcat用[開(kāi)始]->程序->Apache tomcat->stop tomcat
好了,基本配置結束。
你可以去看看tomcat安裝目錄(我的tomcat的安裝目錄在c:\tomcat),目錄結構和功能簡(jiǎn)要如下:
bin 包含啟動(dòng)/關(guān)閉腳本和一下系統性的運行腳本
common 包含tomcat的一些包文件,以后用到其他的包可以直接放進(jìn)去,如連接oracle的jdbc驅動(dòng)等。
conf 包含不同的配置文件, 包括 server.xml(Tomcat的主要配置文件)和為不同的Tomcat配置的web應用設置缺省值的文件web.xmllogs 日至文件
doc 包含各種Tomcat文檔
lib 包含Tomcat使用的jar文件.unix平臺此目錄下的任何文件都被加到Tomcat的classpath中
server 放了tomcat 通過(guò)web方式管理系統的程序,可通過(guò)http://loaclhost:8080/admin訪(fǎng)問(wèn)
shared (暫時(shí)還不知道)
temp 用于jvm放臨時(shí)文件
webapps 包含tomcat的例程和歡迎頁(yè)面,可通過(guò)http://loaclhost:8080/訪(fǎng)問(wèn)
5. 建立第一個(gè)項目
如果你在安裝Tomcat過(guò)程中在選擇安裝那些組建時(shí)選擇默認安裝,那么tomcat將自動(dòng)給你放進(jìn)去一些例程,加上tomcat用于web管理的兩個(gè)項目,你到Tomcat的webapps目錄,你會(huì )看到:
C:\tomcat\webapps>dir
Volume in drive C has no label.
Volume Serial Number is 8C08-1B74
Directory of C:\tomcat\webapps
2004-10-27 10:22 <DIR> .
2004-10-27 10:22 <DIR> ..
2004-01-25 21:36 697 admin.xml
2004-10-24 20:16 <DIR> examples
2004-01-25 21:36 435 manager.xml
2004-10-24 20:16 <DIR> ROOT
2004-10-24 20:16 <DIR> tomcat-docs
2004-10-24 20:16 <DIR> webdav
2 File(s) 1,132 bytes
6 Dir(s) 2,025,648,128 bytes free
可以看到Tomcat已經(jīng)建立了一些項目,如admin.xml,manager.xml,root目錄等,怎么方式還不一樣呀?又有xml文件,又有目錄,下面我來(lái)介紹tomcat配置項目的幾種方式。
Tomcat默認的項目目錄就是webapps,就相當于IIS的web根目錄,配置項目有幾種方式(記得配置好了要重新啟動(dòng)tomcat):
方式一,在webapps下直接建立目錄,如你想建立一個(gè)項目在http://localhost:8080/FristProject/上訪(fǎng)問(wèn),你可以直接在這個(gè)目錄下建立FristProject文件夾;
方式二,在webapps下建立xml文檔,如你想建立FristProject這個(gè)項目,可以在這個(gè)目錄下建立FristProject.xml,然后編輯這個(gè)文檔如下:
<Context path="/FristProject" docBase="e:\javaweb" ebug="0" privileged="true"></Context>
Path=””放你想在http://localhost:8080上要訪(fǎng)問(wèn)這個(gè)項目的路徑,這里寫(xiě)成/FristProject就是要在http://localhost:8080/FristProject上訪(fǎng)問(wèn)這個(gè)項目。
DocBase=””放你項目文檔的本地路徑,這里寫(xiě)成了e:\javaweb(這個(gè)目錄在你重新啟動(dòng)tomcat之前應該是已經(jīng)存在的);
方式三,編輯tomcat的安裝目錄下的conf/server.xml,找到</host>標簽,在</host>上面建立自己的項目,如下:
<!-- Tomcat Root Context -->
<!-- <Context path="" docBase="ROOT" debug="0"/> -->
……
<!-- start my frist project -->
<Context path="/FristProject" docBase="e:\javaweb" ebug="0" privileged="true"></Context>
<!-- stop my frist project -->
</Host>
……
以上的配置工作很簡(jiǎn)單,很多的參數都沒(méi)有寫(xiě),建議大家看看tomcat的配置文檔,如出現錯誤所指向的文件,默認首頁(yè)等,這里就不介紹了。
重新啟動(dòng)tomcat后你可以在你的本地路徑(docBase所指向的目錄)建立一個(gè)index.html文件,內容略,看看 http://localhost:8080/FristProject/index.html能否打開(kāi),如果可以正常瀏覽,說(shuō)明沒(méi)問(wèn)題了。
自己的項目建立好了,很簡(jiǎn)單吧?
6. 跑跑Jsp:
在你建立好的本地路徑這里是e:\javaweb建立index.jsp,編輯它:
<html>
<body>
<title>FristJsp</title>
<%String aa = "my frist jsp";%>
<%=aa%>
<br>
<center> Now time is: <%=new java.util.Date()%> </center>
</body>
</html>
保存后,在http://localhost:8080/FristProject/index.jsp ,看看能不能訪(fǎng)問(wèn)?正確的應該是:
my frist jsp
Now time is:(你的系統當前時(shí)間)
看看你的tomcat安裝目錄下的work\Standalone\localhost\FristProject下,應該有兩個(gè)文件:
index_jsp.class
index_jsp.java
因為tomcat會(huì )在第一次運行jsp的時(shí)候編譯.jsp文件,放在work下。
7. 配配JavaBean:
tomcat對jsp以外的java程序就不是自動(dòng)編譯了,如:javabean,servlet都不行,這里先介紹如何配置編譯環(huán)境:
右鍵點(diǎn)[我的電腦]->屬性->高級->環(huán)境變量,系統變量一欄點(diǎn)[新建]變量名:CLASSPATH變量值:.\;C:\j2sdk1.4.2_04\lib\dt.jar;C:\j2sdk1.4.2_04\lib\tools.jar;C:\tomcat\common\lib\servlet.jar(其中C:\j2sdk1.4.2_04用你的jdk安裝路徑,c:\tomcat寫(xiě)你tomcat的安裝路徑)保存,再建立一個(gè):變量名:Path變量值:.\;C:\j2sdk1.4.2_04\bin(其中C:\j2sdk1.4.2_04為你jdk安裝路徑)如果你path變量已經(jīng)建立,就編輯他,加上;C:\j2sdk1.4.2_04\bin,保存。之后重新啟動(dòng)計算機使環(huán)境變量生效。
在你FristProject的本地目錄下建立WEB-INF\classes\com,我的是E:\javaweb\WEB-INF\classes\com,在com下建立TestBean.java,編輯內容如下:
package com;
public class TestBean
{
public String getName()
{
String aa;
aa = "Javagen";
return aa;
}
}
然后進(jìn)入command狀態(tài):
C:\Documents and Settings\Administrator>e:
E:\>cd \javaweb\WEB-INF\classes\com
E:\javaweb\WEB-INF\classes\com>javac TestBean.java
E:\javaweb\WEB-INF\classes\com>
好了編譯結束,你可以看到在E:\javaweb\WEB-INF\classes\com下多了TestBean.calss這個(gè)文件。
在E:\javaweb\下建立testbean.jsp文件,編輯如下:
<jsp:useBean id="TestBean" class="com.TestBean" scope="page" />
<html>
<body>
<center> my name is: <%=TestBean.getName()%> </center>
</body>
</html>
好了,訪(fǎng)問(wèn)你的http://localhost:8080/FristProject/testbean.jsp,看看?
友情提示:在tomcat下使用javabean必須放在classes/包名/,包名可以是任何英文(tomcat對這個(gè)有規范的),不能在classes下直接放javabean文件!這個(gè)是我血的教訓。
8. 玩玩Servlet:
在E:\javaweb\WEB-INF\classes\com\下建立文件HelloWorld.java,編輯如下:
package com;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World!</h1>");
out.println("</body>");
out.println("</html>");
}
}
進(jìn)入cmd窗口:
E:\javaweb\WEB-INF\classes\com>javac TestBean.java
E:\javaweb\WEB-INF\classes\com>
再建立E:\javaweb\WEB-INF\web/xml,編輯如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>
<display-name>Fristproject</display-name>
<description>Fristproject </description>
<!-- servlet -->
<servlet>
<servlet-name>HelloWorld</servlet-name>
<display-name>HelloWorld</display-name>
<servlet-class>com.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>
其中:
<servlet>聲明一個(gè)servlet
<servlet-name>HelloWorld</servlet-name> servlet的名字
<display-name>HelloWorld</display-name> servlet的運行名
<servlet-class>com.HelloWorld</servlet-class> servlet的路徑
</servlet>
<servlet-mapping> 在應用上聲名servlet的
<servlet-name>HelloWorld</servlet-name> servlet的名字
<url-pattern>/HelloWorld</url-pattern> servlet的運行路徑 就是http://localhost:8080/FristProject/HelloWorld
</servlet-mapping>
重新啟動(dòng)tomcat
在http://localhost:8080/FristProject/HelloWorld看看?
9. 總結:
本文中有兩條主線(xiàn):
jdk的配置和java環(huán)境變量的配置:
在安裝好jdk后,一些基于jdk的程序會(huì )自動(dòng)尋找jdk路徑,以便調用java的各個(gè)包,比方說(shuō):tomcat,eclipse等,另有些程序不能自己去找到j(luò )dk路徑,所以就要在環(huán)境變量中配置,如:path中加入jdk\bin的路徑,classpath中寫(xiě)入運行程序的包路徑等,這些在我們編輯javabean和servlet時(shí)已經(jīng)用到了(一些javaIDE會(huì )自動(dòng)編譯你的.java文件,如Jbuilder,eclipse,resion等)。
tomcat的配置:
關(guān)鍵是配置web.xml(用于對某個(gè)tomcat項目進(jìn)行配置)和server.xml(對tomcat整體配置)兩個(gè)文件。
對于每個(gè)具體實(shí)現,會(huì )有不同的節點(diǎn)加進(jìn).xml文件去(這些xml節點(diǎn)并不一定是tomcat本身的).
要學(xué)習java就要不斷和xml打交道,建議多了解一下xml的資料.
參考資料:
Tomcat中文手冊
http://www.linuxdby.com/articlesdisplay.php?newsid=63
2004.11.19第三次修改
作者信息
姓名: 孫庚
聯(lián)系方式: javagen@gmail.com
簡(jiǎn)介: 軟件工程師,熟悉linux oracle php ,J2EE研習者。
BLOG:
www.donews.net/tssungeng/ (原創(chuàng )作品,轉載請注明作者)