2007-02-07 17:42:51逸&瑩

配置支援JSP的環境--Apache+Tomcat

首先,到java.apache.org去下載一個tomcat3.1,tomcat3.2。筆者用的是tomcat3.1。下載的是一個ZIP文件。將它extract到一個目錄下面。比如c:下面。在c盤下面就會出現一個jakatar-tomcat的目錄。你可以將這個目錄改個名字。我將目錄名改為tomcat。現在打開c:tomcatconf目錄下的server.xml文件。找到ContextManager這個tag,你將可以看到:

<Connector className="org.apache.tomcat.service.SimpleTcpConnector">

<Parameter name="handler" value="org.apache.tomcat.service.http.

HttpConnectionHandler"/>

<Parameter name="port" value="80"/>

</Connector>

因為tomcat可以作為一個獨立的伺服器使用,所以有它自己的port號。在這裡可以修改它預設的port號。注意要修改為一個你機器上還沒有被占用的port號。我改成9000。

現在到c:tomcatbin目錄下面,你可以看到一個startup.bat的批處理文件。在執行這個文件前,如果你用的是JDK1.2.1或JDK1.2.2的話,請將JDK_HOMELIBtools.jar這個文件放到classpath中去。

(注:設置classpath的方法:右鍵單擊“我的電腦”  選擇屬性  環境,如果還沒有classpath這個環境變數,就添加一個,如果有了就在它的基礎上修改,加上JDK_HOMELIBtools.jar)

現在可以執行startup.bat這個文件了。(如果在執行時出現out of environment space的提示,就將你的DOS視窗的緩衝區大小開得大些。具體作法:在DOS 視窗的選單中的屬性--> 內存 --> 總共和初始環境改大點)

在執行完後,startup.bat會在另一個視窗開start tomcat的。現在你可以享受一下你的成果了。打開瀏覽器,在地址欄:http://localhost:9000/

然後回車。你應該看到了一只jakatar-tomcat。現在在地址欄鍵入:

http://localhost:9000/examples/servlet/,回車。你應該看到一個servlet的index的頁面,點擊其中的例子servlet看看吧。現在在地址欄鍵入

http://localhost:9000/examples/jsp/,回車。你應該看到一個類似剛才servlet index頁面的一個頁面。點擊jsp的例子看看吧。如果在點擊了一個JSP的例子後出現500的錯誤,如果沒有別的錯誤訊息,在IE5的工具選單  Internet選項  高級,把顯示友好的HTTP錯誤的選項去掉,然後IE就會報出具體的出錯訊息。原因是你沒有將tools.jar放到classpath中去。
現在要將tomcat連接到apache上去了。首先到www.apache.org上去下載一個Apache Web Server,我用的是Apache1.3.12。再到java.apache.org上去下載一個Jserv,我用的是Jserv1.1.1。先安裝Apache Web Server(比如安裝在c:apache目錄下面)。安裝完後需要修改c:apacheconfhttpd.conf文件,找到Servername,修改為你喜歡的名字,找到port,修改為未被占用的通訊埠。再安裝Jserv(比如安裝在c:Jserv目錄下面)。安裝Jserv需要指定JVM所在的目錄,你可以指定JDK_HOMEBIN目錄。需要指定JSDK所在目錄,我指定的是我從java.sun.com上面下載的JSDK安裝後的目錄。(實際上它要找的是servlet.jar這個文件,你可以指定tomcatlibservlet.jar試一試,我並沒有這樣試過)

這時候實際上Apache已經支持Servlet了,但還不支持JSP。所以你需要修改c:apacheconfhttpd.conf文件。用文本編輯器打開httpd.conf,在文件最後加上:Include “Tomcat_Homeconftomcat-apache.conf”(請注意,tomcat-apache.conf這個文件是在tomcat執行後由tomcat自動產生的。所以要先開tomcat,再打開Apache)。

現在先啟動tomcat(c:tomcatbinstartup.bat),當出現了另一個視窗後,啟動Apache(c:apachebinapache.exe或者通過開始選單>程式>Apache Web Server>Start Apache>啟動)。如果此時通過後者啟動Apache,有一個DOS視窗一閃後就消失了,說明對Apache+JServ+tomcat的配置還有問題,應該通過第一種方法啟動Apache,此時你就能在畫面上看到具體的出錯訊息。如果出錯訊息是:apj* : can’t be specified more than once per host。(*號代表一些字串,比如ApJServLogLevel等等),你就要修改c:Jservconfjserv.conf文件,將apj*的相關行註解掉就可以,可能需要註解5-6行。如果Apache也正常啟動的話,現在你可以在地址欄鍵入http://localhost:apache_port/examples/servlet/ 來通過Apache+tomcat調試Servlet,這裡apache_port是Apache的通訊埠號,可以通過修改c:apacheconfhttpd.conf這個文件修改通訊埠號;在地址欄鍵入http://localhost:apache_port/examples/jsp/ 來調試JSP。

如果細心的話,會發現前面測試用的都是examplesjsp目錄。現在就告訴你怎麼建立你自己的目錄。先在c:tomcatwebapps目錄下面建立testdir目錄。在testdir目錄下面建立jsp目錄和classes目錄。現在用文字編輯器打開c:tomcatconf目錄下面的server.xml。在<ContextManager>的結束tag前面加上:
<Context path="/testdir" docBase="webapps/testdir" debug="0" reloadable="true" >

</Context>

然後將c:tomcatwebappstestdirclasses目錄放到classpath這個環境變數中去。用文字編輯器編輯下面這個文件。
<html>

<body>

<%

int i;

for(i=1;i<6;i++){

out.println("<h" + i + ">Hello World</h" + i + ">");

}

%>

</body>

</html>

存為c:tomcatwebappstestdirjsphelloworld.jsp。在地址欄鍵入:

http://localhost:apache_port/testdir/jsp/helloworld.jsp 看看結果吧。

再測試一下Servlet。用文本編輯器編輯下面這個文件。

import java.io.*;

import java.text.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

public void service(HttpServletRequest request,

HttpServletResponse response)

throws IOException, ServletException

{

response.setContentType("text/html");

ServletOutputStream out = response.getOutputStream();

out.println("<html>");

out.println("<head>");

String title = “Hello World”;

out.println("<title>" + title + "</title>");

out.println("</head>");

out.println("<body bgcolor="white">");

out.println("<body>");

out.println("<h1>" + title + "</h1>");

out.println("</body>");

out.println("</html>");

}

}

存為c:tomcatwebappstestdirclassesHelloWorld.java,用javac編譯後,在地址欄鍵入http://localhost:apache_port/testdir/servlet/HelloWorld 看看結果吧。