本文記錄 Tomcat 6.0 在 Windows 環境下的完整安裝、環境變數配置、自訂 Web 應用目錄建立、JSP 測試、Servlet 開發與註冊全流程。
假設 JDK 安裝於 C:\jdk1.4.2
| 變數 | 值 |
|---|---|
| JAVA_HOME | C:\jdk1.4.2 |
| CLASSPATH | .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar |
| PATH | %JAVA_HOME%\bin |
public class Test {
public static void main(String[] args) {
System.out.println("This is a test program.");
}
}
編譯執行:javac Test.java && java Test,輸出測試字串即成功。
假設 Tomcat 安裝於 C:\Tomcat
| 變數 | 值 |
|---|---|
| CATALINA_HOME | C:\Tomcat |
| CATALINA_BASE | C:\Tomcat |
| TOMCAT_HOME | C:\Tomcat |
修改 CLASSPATH,附加 Servlet API:
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar
啟動 Tomcat,瀏覽 https://localhost:8080 見歡迎頁即成功。
%CATALINA_HOME%\webappsmyappmyapp\WEB-INF(大小寫敏感)myapp\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"
"https://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>
myapp\index.jsp:<html><body><center>
Now time is: <%=new java.util.Date()%>
</center></body></html>
https://localhost:8080/myapp/index.jsp 顯示時間即成功myapp\WEB-INF\classes\test\HelloWorld.java:package test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<html><head><title>This is my first Servlet</title></head><body>");
out.println("<h1>Hello, World!</h1>");
out.println("</body></html>");
}
}
javac HelloWorld.java(若缺 servlet-api.jar 請複製至 JDK/jre/lib/ext)HelloWorld.class 放入 myapp\WEB-INF\classes\test\web.xml 註冊 Servlet:<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>test.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
https://localhost:8080/myapp/HelloWorld 即可看到輸出WEB-INF、web.xml、classes 目錄名稱區分大小寫WEB-INF/classes/套件名/ 對應目錄servlet-api.jar 需在編譯期可見,執行期由容器提供