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

JBuilder 2005 開發 Web 應用程式完整實戰指南

     編輯:Java 相關知識

JBuilder 是一款開放式的 Java IDE,內建整合了 Tomcat、WebLogic 等主流應用伺服器。雖然 JDK、Tomcat、WebLogic 版本不斷迭代升級,但我們仍能在 JBuilder 環境中無縫使用其最新版本。由於 Tomcat 伺服器配置相對複雜,習慣 Windows 平台的開發者常對其使用感到困惑。本文將以 Tomcat 環境下的資料庫連接池 DBCP 為例,詳細說明使用 JBuilder 開發 Web 應用的標準流程,並解答開發過程中常見的問題。

開發環境版本說明

JBuilder 2005 內附 JDK 版本為 1.4.2_04-b05,檔案位於 JBuilder_HOME\jdk1.4 目錄;Tomcat 最新版本為 5.0.27,檔案位於 JBuilder_HOME\thirdparty\jakarta-tomcat-5.0.27 目錄。接下來將以實際操作步驟示範如何在 Tomcat 環境中配置 DBCP 資料庫連接池。

專案建立與配置步驟

1. 建立新專案

選擇 File → New Project,輸入專案名稱 myWeb 與目錄 C:\myWeb。

2. 設定專案屬性

選擇 Project → Project Properties,在伺服器選項中指定使用 Tomcat。

3. 建立 Web Module (WAR)

選擇 File → New 建立 Web Module,名稱為 DBTest,目錄同名。

4. 建立 JSP 頁面

建立 test.jsp 並修改內容如下:

<%@ page contentType="text/html; charset=Big5" %>
<html>
<head><title>DB Test</title></head>
<body>
<%
  foo.DBTest tst = new foo.DBTest();
  tst.init();
%>
<h2>Results</h2>
Foo <%= tst.getFoo() %><br/>
Bar <%= tst.getBar() %>
</body>
</html>

此時會自動生成名為 test 的執行配置。可透過 Run → Configurations → Edit 修改執行配置,特別是指定伺服器連接埠與是否自動搜尋可用連接埠。

5. 建立 Java 類別

選擇 File → New Class,類別名稱為 DBTest,套件名為 foo,修改 DBTest.java 內容:

package foo;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;

public class DBTest {
    String foo = "Not Connected";
    int bar = -1;

    public void init() {
        try {
            Context ctx = new InitialContext();
            if (ctx == null) throw new Exception("Boom - No Context");
            DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/TestDB");
            if (ds != null) {
                Connection conn = ds.getConnection();
                if (conn != null) {
                    foo = "Got Connection " + conn.toString();
                    Statement stmt = conn.createStatement();
                    ResultSet rst = stmt.executeQuery("select id, foo, bar from testdata");
                    if (rst.next()) {
                        foo = rst.getString(2);
                        bar = rst.getInt(3);
                    }
                    conn.close();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public String getFoo() { return foo; }
    public int getBar() { return bar; }
}

6. 修改 web.xml 部署描述檔

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://java.sun.com/xml/ns/j2ee https://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">
    <description>MySQL Test App</description>
    <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/TestDB</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

7. 執行應用程式

按 F9 執行,myWeb 目錄下將生成 Tomcat 子目錄,包含 conf 子目錄;同時在 Tomcat_HOME\conf\Catalina\localhost 產生 DBTest.xml。

8. 配置 server8080.xml

將 myWeb\Tomcat\conf\server8080.xml 加入專案並修改內容,重點配置 Context 元素中的資料源參數:

<Context path="/DBTest" docBase="C:\myWeb\DBTest" debug="5" reloadable="true" crossContext="true" workDir="C:\myWeb\Tomcat\work\DBTest">
    <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/TestDB">
        <parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
        <parameter><name>maxActive</name><value>100</value></parameter>
        <parameter><name>maxIdle</name><value>30</value></parameter>
        <parameter><name>maxWait</name><value>10000</value></parameter>
        <parameter><name>username</name><value>sa</value></parameter>
        <parameter><name>password</name><value>topcomputer</value></parameter>
        <parameter><name>driverClassName</name><value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter>
        <parameter><name>url</name><value>jdbc:microsoft:sqlserver://nt04:1433;DatabaseName=test</value></parameter>
    </ResourceParams>
</Context>

9. 放置 JDBC 驅動程式

將 JDBC 驅動 JAR 檔複製至 C:\Borland\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27\common\lib 目錄。

10. 建立資料庫與測試資料

在 SQL Server 中建立 test 資料庫與 testdata 資料表:

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[testdata]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
    DROP TABLE [dbo].[testdata]
GO
CREATE TABLE [dbo].[testdata] (
    [id] [int] NOT NULL,
    [foo] [varchar](50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL,
    [bar] [int] NOT NULL
) ON [PRIMARY]
GO

插入數筆測試資料。

11. 再次執行驗證

按 F9 執行專案。

12. 建立啟動/關閉批次檔

在 c:\myWeb 建立 startup.bat 與 shutdown.bat:

REM startup.bat
C:\Borland\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\Borland\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27\bin\bootstrap.jar;C:\Borland\JBuilder2005\jdk1.4\lib\tools.jar" "-Dcatalina.home=C:/Borland/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27" org.apache.catalina.startup.Bootstrap -config "C:\myWeb\Tomcat\conf\server8080.xml" start

REM shutdown.bat
C:\Borland\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\Borland\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27\bin\bootstrap.jar;C:\Borland\JBuilder2005\jdk1.4\lib\tools.jar" "-Dcatalina.home=C:/Borland/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27" org.apache.catalina.startup.Bootstrap -config "C:\myWeb\Tomcat\conf\server8080.xml" stop

13. 瀏覽器測試

執行 startup.bat,瀏覽器輸入 https://localhost:8080/DBTest/test.jsp 驗證結果。

常見問題解答

如何部署 Web 應用?

  1. 打包生成 WAR 檔案
  2. 將 DBTest.war 複製至 Tomcat_HOME\webapps
  3. 在 Tomcat_HOME\conf\Catalina\localhost 建立 DBTest.xml(內容同步驟 8 的 Context 設定)
  4. 啟動 Tomcat,WAR 將自動解壓至 webapps\DBTest,並在 work\Catalina\localhost 生成工作目錄

無法生成 WAR 檔怎麼辦?

在 Web Module 屬性對話框中,勾選 Build Web archive 選項。

如何在 Web 應用中加入目錄與檔案?

右鍵點擊 Module 目錄選擇 New → Directory,或右鍵目標目錄選擇 New → File 指定檔案類型。這些檔案皆會打包進 WAR。

如何加入非預設類型檔案?

將檔案複製至指定目錄,在 Web Module 屬性的 Content 頁籤勾選 include all classes and resources。

如何指定 JDK 版本?

  1. Tools → Configure JDKs → New 選擇 JDK 路徑
  2. Project → Project Properties 選擇新增的 JDK

如何指定 Tomcat 版本?

  1. Enterprise → Configure Servers 選擇 Tomcat 5.0 → Copy
  2. 選擇複製產生的 Copy of Tomcat 5.0 → 設定 Home Directory
  3. Project → Project Properties → Server 選擇新增的 Tomcat
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved