本文詳細記錄 Java Web 三層架構(表現層、業務邏輯層、數據訪問層)的開發環境搭建全過程,涵蓋 JDK、Tomcat、SQL Server 的安裝與配置、環境變量設置、Tomcat 虛擬目錄配置、數據庫連接池配置,最後通過一個簡單的 JSP 測試頁面驗證三層架構是否通順。雖然示例使用的是較早期版本(JDK 1.4.2、Tomcat 5.0.28),但核心配置思路對理解 Java Web 基礎架構仍有參考價值。
本教程使用 JDK 1.4.2(現已過時,實際開發請使用 JDK 8/11/17+ 長期支援版)。
https://dlc.sun.com/jdk/j2sdk-1_4_2_07-windows-i586-p.exe使用 Tomcat 5.0.28,安裝版或解壓版均可。現代項目建議使用 Tomcat 9/10。
推薦 MySQL,但本文因課程設計需求採用 SQL Server(個人版或開發版)。連接 SQL Server 需要三個 JDBC 驅動 JAR 包(文件名以 ms 開頭),可從此處下載:
https://www.jb51.net/softs/234055.html
假設安裝路徑為 C:\jdk,在「系統變量」中新增/修改:
JAVA_HOME=C:\jdk
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
PATH=%JAVA_HOME%\bin;%PATH%
驗證: 打開 CMD 輸入 java -version 與 javac -version,顯示版本號即成功。
建議安裝至 D:\tomcat。Tomcat 5.0.x 無需額外環境變量即可運行,但若需編譯 Servlet,需將 Tomcat 的 servlet-api.jar 和 jsp-api.jar 加入 CLASSPATH:
TOMCAT_HOME=D:\tomcat
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%TOMCAT_HOME%\common\lib\servlet-api.jar;%TOMCAT_HOME%\common\lib\jsp-api.jar
PATH=%JAVA_HOME%\bin;%TOMCAT_HOME%\bin;%PATH%
將下載的三個 SQL Server JDBC 驅動 JAR 放入 %TOMCAT_HOME%\common\lib 目錄。
啟動 Tomcat(開始菜單 → Tomcat → Monitor Tomcat → Start Service),瀏覽器訪問 https://localhost:8080/,出現貓咪頁面即成功。
sa 用戶設置密碼(練習可選「空密碼」)。打開企業管理器,連接本地服務器(綠色三角形表示連接成功),新建數據庫 test,並在其中新建表 test,字段如下:
id int not null identity(1,1),
mark varchar(255),
name varchar(255),
sex varchar(255)
也可使用 SQL 腳本 test.sql 在查詢分析器中執行:
create database test
USE test
create table test
(
id int not null identity(1,1),
mark varchar(255),
name varchar(255),
sex varchar(255)
)
任意位置(如 E:\wool)建立文件夾結構:
wool/
└── WEB-INF/
├── classes/
└── lib/ (放入 3 個 SQL Server JDBC 驅動 JAR)
註:此處暫無 web.xml,稍後配置連接池時會添加。
此步驟是課程設計的難點,採用手動配置 XML 文件方式(而非 Tomcat 管理界面),更簡潔且不易出錯。
放入 %TOMCAT_HOME%\conf\Catalina\localhost\ 目錄。
<Context path="/wool" docBase="E:/wool" debug="0" reloadable="true">
<Resource name="jdbc/sqlserver" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost;DatabaseName=test"
username="sa"
password=""
maxActive="4"
maxWait="5000"
maxIdle="2" />
</Context>
注意: 實測發現 XML 文件中若包含正文內容(即 <Resource>... 之間的換行縮進)可能導致啟動失敗,需刪除正文空白或壓縮為單行。
放入 E:\wool\WEB-INF\ 目錄。
<web-app>
<resource-ref>
<res-ref-name>jdbc/sqlserver</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
文件名 test.jsp,放入 E:\wool\ 根目錄。
<%@ page import="java.sql.*, javax.sql.*, javax.naming.*" %>
<html>
<body>
<table border="1">
<tr><th>名字</th><th>性別</th><th>分數</th></tr>
<%
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/sqlserver");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from test");
while (rs.next()) {
%>
<tr>
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("sex")%></td>
<td><%=rs.getString("mark")%></td>
</tr>
<%
}
rs.close(); stmt.close(); conn.close();
%>
</table>
</body>
</html>
https://localhost:8080/wool/test.jsp若能正常顯示數據庫表中的數據,恭喜你,Java Web 三層架構基礎環境搭建成功!
本文記錄的方法是筆者協助同學完成課程設計(Web 三層架構)時整理的最佳實踐,參考了網上大神經驗。通過以上步驟,對於未接觸過 Java 或其他 Web 編程的初學者,能快速入門並完成工程實踐。實際項目中請使用現代技術棧(Spring Boot、MyBatis、Druid/HikariCP、MySQL/PostgreSQL 等),但理解底層配置原理對排查問題大有裨益。