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

WebLogic下JSP連接數據庫實戰:域配置、應用部署與JDBC最佳實踐

     編輯:關於JSP

BEA WebLogic是重量級J2EE應用服務器,集成開發工具與運行時環境。本文記錄在WebLogic Workshop中創建域、構建Web應用、配置JSP連接數據庫的完整流程(含db.properties外部化配置、連接管理類),並針對WebLogic高內存佔用給出優化建議。

環境與前置條件

  • WebLogic 8.1/9.x(需≥512MB內存,建議1GB+)。
  • JDK 1.4.2/5.0。
  • 數據庫JDBC驅動jar(Oracle/DB2/SQL Server等)。

步驟一:創建WebLogic域

  1. 工具 → WebLogic Server → 配置向導。
  2. 選擇模板:Basic WebLogic Workshop Domain(包含Workshop、Portal、Integration服務器模板)。
  3. 配置管理用戶名/密碼、監聽端口(默認7001)。
  4. 完成創建,啟動Admin Server驗證控制台https://localhost:7001/console。

步驟二:創建應用與Web模塊

  1. 文件 → 新建 → 應用程序 → 選擇目標服務器 → 完成。
  2. 在應用中添加Web模塊(Web Application)。
  3. 目錄結構:
    AppName/WebModule/WEB-INF/
    AppName/WebModule/index.jsp
    AppName/WebModule/error.jsp
    AppName/WebModule/db.properties
    AppName/WebModule/javacls/clsDb.java

步驟三:外部化數據庫配置(db.properties)

drivers=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.1.100:1521:orcl
user=scott
password=tiger

步驟四:數據庫操作類(clsDb.java)

package javabean;

import java.sql.*;
import java.util.Properties;

public class clsDb {
    private Connection cn = null;
    private Statement sqlstm = null;
    private ResultSet rs = null;

    public boolean openConnection() {
        Properties prop = new Properties();
        try {
            // 關鍵:getResourceAsStream從類路徑加載同目錄下配置文件
            java.io.InputStream in = this.getClass().getResourceAsStream("../db.properties");
            prop.load(in);
            if (in != null) in.close();
        } catch (java.io.IOException e) {
            System.out.println("[OpenCn] 配置文件打開錯誤!");
            return false;
        }

        String driver = prop.getProperty("drivers");
        String url = prop.getProperty("url");
        String user = prop.getProperty("user");
        String password = prop.getProperty("password");

        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            System.out.println("[OpenCn] 裝載JDBC驅動出錯!");
            return false;
        }

        try {
            this.cn = DriverManager.getConnection(url, user, password);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }

    public ResultSet exeQuery(String sql) throws SQLException {
        this.sqlstm = cn.createStatement();
        return this.sqlstm.executeQuery(sql);
    }

    public int exeUpdate(String sql) throws SQLException {
        this.sqlstm = cn.createStatement();
        return this.sqlstm.executeUpdate(sql);
    }

    public void close() {
        try { if (rs != null) rs.close(); } catch (SQLException ignored) {}
        try { if (sqlstm != null) sqlstm.close(); } catch (SQLException ignored) {}
        try { if (cn != null) cn.close(); } catch (SQLException ignored) {}
    }
}

步驟五:JSP頁面調用

<%@ page import="java.sql.*, javabean.clsDb" %>
<html><body>
<%
    javabean.clsDb db = new javabean.clsDb();
    if (db.openConnection()) {
        ResultSet rs = db.exeQuery("SELECT d FROM test");
        while (rs.next()) {
            out.println(rs.getObject(1) + "<br>");
        }
        db.close();
    }
%>
</body></html>

錯誤頁面(error.jsp)

<%@ page isErrorPage="true" %>
<p>發生錯誤<br>
錯誤描述:<%= exception.toString() %><br>
錯誤原因:<%= exception.getMessage() %>
</p>

正常頁面指令:<%@ page errorPage="error.jsp" %>。

WebLogic特有優化建議

遷移現代化建議

  • WebLogic 12c/14c 支持 Java EE 7/8 / Jakarta EE 9/10。
  • 新項目優先 Spring Boot + 內嵌 Tomcat/Jetty,或 WildFly/Payara 等輕量級兼容服務器。
  • 若必須用 WebLogic,採用 Maven weblogic-maven-plugin 實現 CI/CD 自動化部署。

WebLogic 雖重但功能完備。掌握域創建、JNDI數據源、外部化配置、錯誤頁面機制,是駕馭該平台的核心技能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
問題優化措施
啟動內存佔用極大(≥512MB)啟動參數-Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m(JDK 7-)或-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m(JDK 8+)
EJB/ JMS/ JCA等默認服務佔用資源控制台禁用不需要的服務模塊,精簡域配置
JDBC連接池管理控制台創建JDBC Connection Pool → Data Source → JNDI名jdbc/myDS,JSP通過new InitialContext().lookup("jdbc/myDS")獲取,避免代碼直連
熱部署/開發模式類加載器洩漏生產模式production-mode-enabled=true,禁用自動部署
垃圾回收停頓JDK 8+ 使用-XX:+UseG1GC -XX:MaxGCPauseMillis=200;大堆考慮ZGC/Shenandoah