Tomcat下JSP、Servlet和JavaBean環境的配置 經常看到jsp的初學者問tomcat下如何配置jsp、servlet和bean的問題,於是總結了一下如何tomcat下配置jsp、servlet和ben,希望對那些初學者有所協助。 一、開發環境配置 第一步:下載j2sdk和tomcat:到sun官方網站(http://java.sun.com/j2se/1.4.2/download.html)下載j2sdk,注意下載版本為Windows Offline Installation的SDK,同時最好下載J2SE 1.4.2 Documentation,然後到tomcat官方網站(http://www.apache.org/dist/jakarta/tomcat-4/)下載tomcat(下載最新4.1.x版本的tomcat); 第二步:安裝和配置你的j2sdk和tomcat:執行j2sdk和tomcat的安裝程式,然後按預設設定進行安裝即可。 1.安裝j2sdk以後,需要配置一下環境變數,在我的電腦->屬性->進階->環境變數->系統變數中添加以下環境變數(假定你的j2sdk安裝在c:/j2sdk1.4.2): JAVA_HOME=c:/j2sdk1.4.2 classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;(.;一定不能少,因為它代表當前路徑) path=%JAVA_HOME%/bin 接著可以寫一個簡單的java程式來測試J2SDK是否已安裝成功: public class Test{ public static void main(String args[]){ System.out.println("This is a test program."); } } 將上面的這段程式儲存為檔案名稱為Test.java的檔案。 然後開啟命令提示字元視窗,cd到你的Test.java所在目錄,然後鍵入下面的命令 javac Test.java java Test 此時如果看到列印出來This is a test program.的話說明安裝成功了,如果沒有列印出這句話,你需要仔細檢查一下你的配置情況。 2.安裝Tomcat後,在我的電腦->屬性->進階->環境變數->系統變數中添加以下環境變數(假定你的tomcat安裝在c:/tomcat): CATALINA_HOME=c:/tomcat CATALINA_BASE=c:/tomcat 然後修改環境變數中的classpath,把tomat安裝目錄下的common/lib下的(可以根據實際追加)servlet.jar追加到classpath中去,修改後的classpath如下: classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/common/lib/servlet.jar; 接著可以啟動tomcat,在IE中訪問http://localhost:8080,如果看到tomcat的歡迎頁面的話說明安裝成功了。 第三步:建立自己的jsp app目錄 1.到Tomcat的安裝目錄的webapps目錄,可以看到ROOT,examples, tomcat-docs之類Tomcat內建的的目錄; 2.在webapps目錄下建立一個目錄,起名叫myapp; 3.myapp下建立一個目錄WEB-INF,注意,目錄名稱是區分大小寫; 4.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>My Web Application</display-name> <description> A application for test. </description> </web-app> 5.在myapp下建立一個測試的jsp頁面,檔案名稱為index.jsp,檔案內容如下: <html><body><center> Now time is: <%=new java.util.Date()%> </center></body></html> 6.重啟Tomcat 7.開啟瀏覽器,輸入http://localhost:8080/myapp/index.jsp 看到目前時間的話說明就成功了。 第四步:建立自己的Servlet: 1.用你最熟悉的編輯器(建議使用有語法檢查的java ide)建立一個servlet程式,檔案名稱為Test.java,檔案內容如下: package test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Test extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter(); out.println("<html><body><h1>This is a servlet test.</h1></body></html>"); out.flush(); } } 2 .編譯 將Test.java放在c:/test下,使用如下命令編譯: C:/Test>javac Test.java 然後在c:/Test下會產生一個編譯後的servlet檔案:Test.class 3 .將結構test/Test.class剪下到%CATALINA_HOME%/webapps/myapp/WEB-INF/classes下,也就是剪下那個test目錄到classes目錄下,如果classes目錄不存在,就建立一個。 現在webapps/myapp/WEB-INF/classes下有test/Test.class的檔案目錄結構 4 .修改webapps/myapp/WEB-INF/web.xml,添加servlet和servlet-mapping 編輯後的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>My Web Application</display-name> <description> A application for test. </description> <servlet> <servlet-name>Test</servlet-name> <display-name>Test</display-name> <description>A test Servlet</description> <servlet-class>test.Test</servlet-class> </servlet> <servlet-mapping> <servlet-name>Test</servlet-name> <url-pattern>/Test</url-pattern> </servlet-mapping> </web-app> 這段話中的servlet這一段聲明了你要調用的Servlet,而servlet-mapping則是將聲明的servlet"映射"到地址/Test上 5 .好了,重啟動Tomcat,啟動瀏覽器,輸入http://localhost:8080/myapp/Test 如果看到輸出This is a servlet test.就說明編寫的servlet成功了。 注意:修改了web.xml以及新加了class,都要重啟Tomcat 第四步:建立自己的Bean: 1.用你最熟悉的編輯器(建議使用有語法檢查的java ide)建立一個java程式,檔案名稱為TestBean.java,檔案內容如下: package test; public class TestBean{ private String name = null; public TestBean(String strName_p){ this.name=strName_p; } public void setName(String strName_p){ this.name=strName_p; } public String getName(){ return this.name; } } 2 .編譯 將TestBean.java放在c:/test下,使用如下命令編譯: C:/Test>javac TestBean.java 然後在c:/Test下會產生一個編譯後的bean檔案:TestBean.class 3 .將TestBean.class檔案剪下到 %CATALINA_HOME%/webapps/myapp/WEB-INF/classes/test下, 4 .建立一個TestBean.jsp檔案,檔案內容為: <%@ page import="test.TestBean" %> <html><body><center> <% TestBean testBean=new TestBean("This is a test java bean."); %> Java bean name is: <%=testBean.getName()%> </center></body></html> 5 .好了,重啟Tomcat,啟動瀏覽器,輸入http://localhost:8080/myapp/TestBean.jsp 如果看到輸出Java bean name is: This is a test java bean.就說明編寫的Bean成功了。 這樣就完成了整個Tomcat下的jsp、servlet和javabean的配置。接下來需要做的事情就是多看書、多讀別人的好代碼,自己多動手寫代碼以增強自己在這方面開發的能力了。 jvm應填寫到 c:/j2sdk/bin 給你一個簡單的配置:::: JSP環境配置心得 首先要說的是,使用jdk+tomcat完全可以配置我們的jsp伺服器,不再需要其實任何東東,有很多文章介紹了Apache,其實根本用不著,一般的學習調試tomcat完全可以勝任了。 安裝jdk後,tomcat在安裝之前會自動找到jdk的安裝路徑,一路點擊"下一步",經過一段時間的檔案複製,最後"close",完成comcat的安裝。 您最好去下載一個版本較高的tomcat,比如4.1以上的,因為它不需要設定太多的系統變數,右擊"我的電腦",選擇"屬性"->"進階"->"環境變數"->"系統變數",建立一個TOMCAT_HOME,值設定成你的tomcat所在的路徑,比如:D:/Program Files/Apache Group/Tomcat 4.1,配置完成。 從開始菜單中找到tomcat選項,一般開啟順序是:開始->程式->Apache Tomcat 4.1,選擇"Start Tomcat",讓jsp伺服器開始運行,此時會開啟一個類似Dos的視窗,會顯示一些相關的資訊。 如果您使用代理上網,一定要先撤掉代理,不然您的jsp程式永遠也得不到執行。如果不是代理的,這一步就跳過了。 開啟瀏覽器,在地址欄中輸入:http://localhost:8080,如果看到有老虎(我也不知道是老虎還是貓)的畫面,恭喜您,您成功了一半。 先來享受一下成功的喜悅吧,請輸入下面的代碼: <html> <head> <title>First Page</title> </head> <body> <H3>Today is: h <%= new java.util.Date() %> </H3> </body> </html> 將該程式儲存為:First.jsp,放到Tomcat的ROOT目錄下,然後在瀏覽器的地址欄中輸入:http://localhost:8080/First.jsp,(First.jsp跟我們儲存的檔案名稱的大小寫要一致)斷行符號,如果不出意外,應該可以看到形如Today is: h Fri Apr 11 08:32:38 CST 2003 的結果。 注意:ROOT是tomcat的預設虛擬目錄,如果要改成自己的虛擬目錄怎麼辦呢?請繼續往下看吧。 要改成自己的虛擬目錄,就要請出server.xml來了,該檔案是一個設定檔,在Tomcat/conf目錄下,使用任何文本編輯軟體都能開啟它,我們先找到下面一句: <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" useURIValidationHack="false" disableUploadTimeout="true" /> 這裡的port="8080"就是連接埠,我們完全可以用別的連接埠來代替,但不能是被系統佔用的連接埠(0--1023),這裡簡單提一下。 下面我們再往下找,會發現以下的語句: </Context> </Host> 我們就應該找到這兩個語句,如果不懂E文,您就認定這兩個語句好了。然後我們將該語句更改如下: </Context> <Context path="/myjsp" debug="0" docBase="e:/myjsp" reloadable="true"> </Context> </Host> 這裡的path="/myjsp"就是我們就配置的虛擬目錄了,以後在地址欄中輸入http://localhost:8080/myjsp即可。而docBase="e:/myjsp" 則是機器本地路徑,他們通過這個語句形成一個映射關係,其它照抄。 將上面的First.jsp檔案放到e:/myjsp目錄下,輸入http://localhost:8080/myjsp/First.jsp,是不是有一種喜上眉梢的感覺? 在論壇裡我見得最多的就是很多人不知道javaBean檔案放到哪裡,老實說開始我也不知道,更令人不解的是,十個人有九種不同的說法,這更讓我們茫然。其實這問題也不是我們想像的那麼複雜,我們以一個例子說明: 先建立一個java程式,代碼如下: package hall; public class SimpleBean { private String message = "No message specified"; public String getMessage() { return(message); } public void setMessage(String message) { this.message = message; } } 儲存為SimpleBean.java,編譯後會產生一個包,其實就相當於一個目錄,也就是SimpleBean.class會存放在hall目錄中,暫且儲存起來,將來備用。 再輸入以下代碼: <HTML> <HEAD> <TITLE>Reusing JavaBeans in JSP</TITLE> </HEAD> <BODY> <CENTER> <TABLE BORDER=5> <TR><TH CLASS="TITLE"> Reusing JavaBeans in JSP</TABLE> </CENTER> <P> <jsp:useBean id="test" class="hall.SimpleBean" /> <jsp:setProperty name="test" property="message" value="Hello WWW" /> <H1>Message: <I> <jsp:getProperty name="test" property="message" /> </I></H1> </BODY> 儲存在我們剛才建立的虛擬目錄e:/myjsp下面,並命名為:BeanTest.jsp。 現在我們應該將hall(包)目錄放在哪兒呢?別急,我們先在e:/myjsp下建立一個檔案夾WEB-INF,然後再在WEB-INF下建立一個classes檔案夾,最後將hall目錄放到classes下,當然,hall下的位元組碼檔案SimpleBean.class也一併要移過來,而SimpleBean.java就和BeanTest.jsp放到同一目錄吧(可以不需要放的,自己試試)。 好了,大功告成了,重新啟動機器(如果您試了好多次都不行,這一步一定要做),在瀏覽器中輸入:http://localhost:8080/myjsp/BeanTest.jsp,您看到了什嗎?呵,別告訴我您什麼都沒看到,那肯定是您設定的問題了。 好了,文章寫完了,我也只是一隻菜鳥,所以有寫的不準備的地方請多多指教。祝您jsp之旅一路順風!!! Java學習 - 技術文章中心 初學者問的諸如:《怎樣配置環境變數》《怎樣運行Servlet》啊?這樣的問題太多了,現在我寫一個初學者入門必讀,以便對初學者有指導作用! 首先是下載工具: 我建議初學者用Editplus+JDK,我覺得如果用例如JB,Eclipse,JCreator,雖然剛開始的時候比較方便,但是確使初學者門不知道怎樣配置環境變數, 從而難以達到知其然,知其所以然的地步 可以通過如下地址下載: Editplus(最新版本是v2.11):http://count.skycn.com/softdown.php?id=3641&url=http://sc-http.skycn.net/down/epp211a_cn.exe(要照註冊碼就自己找吧,網上很多的) JDK(最新版本是Java2sdk1_4_2):http://count.skycn.com/softdown.php?id=3116&url=http://sc-http.skycn.net/down/j2sdk-1_4_2-windows-i586.exe(這是For Windows) 然後就是安裝JDK,我是把它裝到從c:/JDK目錄下面: 然後就是CLASSPATH的問題了: 正如作業系統利用PATH來搜尋可執行程式一樣,Java運行環境也會遍曆CLASSPATH來尋找類,即便是HelloWorld這樣簡單的程式,JVM也會遍曆 CLASSPATH定義的每一個路徑,直到找到相應的檔案為止。 相信大家用的系統不是2k就是XP,然後就應當如下設定Path: 我的電腦->屬性->進階->環境變數 然後在環境變數的Path後面追加: C:/JDK/bin;.;C:/JDK/lib 也可以這樣配置:C:/JDK/bin;.;C:/JDK/lib/dt.jar;C:/JDK/lib/tools.jar ★記住:環境變數中的 . 切記不能少,它表示當前路徑,如果少掉出現的錯誤等會就說! dt.jar是關於運行環境的類庫,tools.jar是關於一些工具的類庫 如果沒有配置:C:/JDK/bin,則會出現 " javac´ 不是內部或外部命令,也不是可啟動並執行程式或批次檔。"這樣的錯誤。 然後下面就該寫程式了: 首先是(HelloWorld.java),開啟Editplus,建立一個Java檔案,請照著如下輸入,要一字不漏,並且分清大小寫: public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello,World!"); } } 然後把這個檔案儲存(ctrl + s)到HelloWorld.java,記住大小寫一定要分清,是HelloWorld.java不是helloworld.java或者其它的 下面就該運行了,開始->運行->cmd 在控制台中把目錄切換到目前的目錄: javac HelloWorld.java java HelloWorld 你就會在控制台上看見輸出的Hello,World!(沒出來?我把電腦吃了:)) javac是編譯命令,它把HelloWorld.java編譯成HelloWorld.class java就是解釋命令,JVM把HelloWorld.class解釋執行. 在這個時候: 1。如果出現Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld 那就是你在環境變數中沒有加上那個.(dot) 2。如果出現Exception in thread "main" java.lang.NoSuchMethodError: main 或者HelloWorld.java:1: Public class helloworld must be defined in a file called "HelloWorld.java". 那就是你沒有分清大小寫寫入這個HelloWorld,或者儲存得時候沒有儲存為HelloWorld.java 這個名字一定要跟public class的名字一樣 對於環境變數的問題就說到這裡,下面我先所說怎麼在Editplus裡面編譯和運行,在Tools->參數設定->配置使用者工具 1.添加工具(添加應用程式) 菜單文字:Compile Java Program 程式:C:/JDK/bin/javac.exe 參數:檔案名稱 初始目錄:檔案目錄 2.添加工具(添加應用程式) 菜單文字:Run Java Program 程式:C:/JDK/bin/java.exe 參數:檔案名稱(不含副檔名) 初始目錄:檔案目錄 工具組名稱可以隨便添,比如Debug Java Program 然後在Tools的下拉式功能表中,你就會看見Compile Java Program以及Run Java Program這兩個選項,以後你就可以利用ctrl + 1編譯和ctrl +2運行程式了 下面就討論Servlet的運行: 首先要運行Servlet,則需要JSP/Servlet container,我建議初學者用Tomcat Tomcat(最新版本5.0):http://cvs.apache.org/builds/jakarta-tomcat-5/nightly/jakarta-tomcat-5-bin-20030725.zip 然後把這個壓縮包解壓到: C:/Tomcat 然後再配置環境變數: 添加三個系統變數: JAVA_HOME: C:/JDK TOMCAT_HOME: C:/Tomcat CLASSPATH: %JAVA_HOME%/lib;%TOMCAT_HOME%/lib Tomcat的環境變數就配置完畢了,下面檢驗Tomcat是否能夠運行: 在控制台中轉到C:/Tomcat/bin這個目錄,運行startup,然後回出現一個視窗,連跳一大串東西,最後表示Server已經運行 在瀏覽器中輸入http://localhost:8080,出現歡迎介面,則表示Tomcat沒問題了 然後和上面一樣,寫入你的第一個Servlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><head><title>"); out.println("This is my first Servlet"); out.println("</title></head><body>"); out.println("<h1>Hello,World!</h1>"); out.println("</body></html>"); } } 然後照樣用javac HelloWorld.java來編譯這個檔案,如果出現無法import javax.servlet.* 那麼就是應該把C:/Tomcat/common/lib裡面的servlet.jar(根據實際來看)檔案拷貝到C:/JDK/jre/lib/ext中,再次編譯,就沒有問題了! 然後在Tomcat目錄裡面的C:/Tomcat/webapps/ROOT裡面按如下的檔案結構: ROOT/index.html ROOT/welcom.jsp ROOT/WEB-INF/lib/MyServlet.jar(如果你的servlet的.class打成了.jar檔案,則放在lib下面) ROOT/WEB-INF/classes/HelloWorld.class(把上面產生的HelloWorld.class檔案放在這個裡面) 然後在瀏覽器中輸入http://localhost:8080/servlet/HelloWorld,於是Server眾望所歸的報錯了:Error 404--Not Found 怎麼回事呢? Servlet必須使用C:/Tomcat/webapps/ROOT/WEB-INF這個目錄下面的web.xml檔案進行註冊,用EP開啟這個web.xml檔案, 在裡面加入 <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/servlet/helloworld</url-pattern> </servlet-mapping> 這樣的結構 <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> 表示指定包含的servlet類. 而以下的結構 <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/servlet/HelloWorld</url-pattern> </servlet-mapping> 表示指定HelloServlet應當映射到哪一種URL模式。 在修改web.xml完畢過後,重新啟動Server,然後再輸入http://localhost:8080/servlet/HelloWorld,那麼偌大一個Hello,World!等著你呢,恭喜你 擺平了:) |