首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

從零搭建 Java Web 開發環境:Eclipse + Tomcat + Servlet + Oracle 完整教學

     編輯:Java 相關知識

環境準備清單

元件建議版本下載來源
JDK17 LTS / 21 LTSOracle / Adoptium
Eclipse IDE2023-12 / 2024-03eclipse.org/downloads
Apache Tomcat10.1.x (Servlet 6.0) / 9.0.x (Servlet 4.0)tomcat.apache.org
Oracle Database19c / 21c / XE 21coracle.com/database
Oracle JDBC 驅動ojdbc11.jar (JDK 11+)Maven Central / Oracle

Eclipse 安裝 Web 開發工具 (WTP)

  1. Help → Eclipse Marketplace
  2. 搜尋 Web Tools Platform 或 Eclipse IDE for Enterprise Java Developers 直接安裝此套件版
  3. 重啟 Eclipse

Tomcat 伺服器整合

  1. Window → Preferences → Server → Runtime Environments → Add
  2. 選擇對應版本 Apache Tomcat v10.1 (或 v9.0)
  3. Browse 選擇 Tomcat 解壓目錄 (如 D:\apache-tomcat-10.1.20)
  4. Finish

建立 Dynamic Web Project

  1. File → New → Dynamic Web Project
  2. Project name: ServletOracleDemo
  3. Target runtime: 選擇剛新增的 Tomcat
  4. Dynamic web module version: 6.0 (Tomcat 10) / 4.0 (Tomcat 9)
  5. Configuration: Default → Finish

建立 Servlet

  1. 右鍵 src → New → Servlet
  2. Package: com.example.servlet
  3. Class name: EmployeeServlet
  4. URL mapping: /employees (自動生成 @WebServlet("/employees"))
  5. Finish

導入 Oracle JDBC 驅動

方式一:Maven 專案 (推薦)

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc11</artifactId>
    <version>23.4.0.0</version>
</dependency>

方式二:手動加入 Build Path

  1. 專案右鍵 → Build Path → Configure Build Path
  2. Libraries → Classpath → Add External JARs
  3. 選擇 ojdbc11.jar → Apply and Close

Oracle 連線與查詢 Servlet 完整代碼

@WebServlet("/employees")
public class EmployeeServlet extends HttpServlet {
    private static final String URL = "jdbc:oracle:thin:@localhost:1521:ORCL";
    private static final String USER = "SCOTT";
    private static final String PASS = "tiger";

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = resp.getWriter();
             Connection conn = DriverManager.getConnection(URL, USER, PASS);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT ename, job, sal FROM emp")) {

            out.println("員工列表");
            out.println("");
            out.println("

員工資料 (SCOTT.EMP)

"); out.println(""); while (rs.next()) { out.printf("%n", rs.getString("ename"), rs.getString("job"), rs.getInt("sal")); } out.println("
姓名職稱薪資
%s%s%,d
"); } catch (SQLException e) { throw new ServletException("資料庫查詢失敗", e); } } }

執行與驗證

  1. 專案右鍵 → Run As → Run on Server
  2. 選擇 Tomcat → Finish
  3. 瀏覽器開啟 https://localhost:8080/ServletOracleDemo/employees
  4. 應顯示 EMP 表格資料

常見問題排查

現象原因解決
ClassNotFoundException: oracle.jdbc.driver.OracleDriver驅動未加入類路徑檢查 Maven 依賴 / Build Path
ORA-12505: TNS:listener does not currently know of SIDSID/Service Name 錯誤確認 lsnrctl status,常用 ORCL 或 XEPDB1
ORA-28040: No matching authentication protocolJDK 11+ 預設不支援舊加密驅動升級 ojdbc11,或 oracle.net.authentication_services=(NONE)
Port 8080 occupied衝突修改 server.xml <Connector port="8081"/>

進階建議

  • 連線池:生產環境必須使用 HikariCP/Druid,配置 JNDI DataSource
  • DAO 模式:分離資料存取邏輯,Servlet 僅處理 HTTP 協議
  • 參數化查詢:使用 PreparedStatement 防 SQL 注入
  • 異常處理:統一錯誤頁面,記錄日誌不暴露堆疊給用戶
  • 建構工具:新專案優先選 Maven/Gradle,依賴管理與 CI/CD 友善
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved