Eclipse を使用しての Java サーブレット+データベース・プログラム開発

このページでは, Eclipse を使い, Java サーブレットプログラムを作る手順を,見本となるプログラムと図解で説明する. ここでの Java サーブレットプログラムは,JDBC を使って,リレーショナルデータベースを操作する.

【補足説明】

下記の 2つのサーバは別物です. 2つを同時に動かすことはできません(ポートを奪い合うことができないので).一方を動かすときは,もう一方を止めることになる.

  1. Eclipse 内部の tomcat サーバ:

    Eclipse では,Eclipse 内部の tomcat サーバが動き, Java サーブレットの動作テストなどに使う.

  2. 公開 tomcat サーバ:

    Eclipse とは無関係の tomcat サーバ(C:\tomcat55\bin\tomcat5w.exe 等で起動する Tomcat サーバのこと).当然, 公開 tomcat サーバが管理するディレクトリも Eclipse とは独立している.

なお,「Eclipse 内部の tomcat サーバ」を使えるようには, Eclipse で「新規サーバの定義」を行う必要がある.これは,1回行うだけで十分です.

必要となるソフトウェア

あらかじめ決めておく事項と設定内容

前もって,Tomcat インストールディレクトリを調べておいてください.

 

前もって, Spring 2 インストールディレクトリを調べておいてください.このページでは,次のように書く.

データベースシステムに関する項目

データベースシステムに関するいくつかの設定内容があります. このページでは,設定内容を下記のように書くので, 違う設定にする場合には, この Web ページの説明を読み替えてください.

テスト用データベースの作成

テスト用データベースとして,下記の SQL コマンドで,テーブル commodity が作られ,データが入っていること.

create table commodity (
    id integer primary key not null,
    name varchar(32) not null,
    price integer );
insert into commodity values( 1, 'apple', 50 );
insert into commodity values( 2, 'orange', 20 );
insert into commodity values( 3, 'strawberry', 100 );
insert into commodity values( 4, 'watermelon', 150 );
insert into commodity values( 5, 'melon', 200 );
insert into commodity values( 6, 'banana', 100 );
select * from commodity;

Eclipse での操作手順

以下,Eclipse を使う. プロジェクトの作成クラスの定義実行という一連の操作を,図解で説明する.

Eclipse の使用にあたって,事前に決めておく事項

Java サーブレット・プログラムを動かすために,Eclipse のプロジェクト等を作る. このページでは,Eclipse のプロジェクト名,Java パッケージ名,Java サーブレットのクラス名は次のように記述します. (すでに同じ名前のプロジェクトがある,といったときは,プロジェクト名を変えてください).

動的 Web プロジェクトの新規作成

下記の手順で,動的 Web プロジェクトを新規に作成する.

  1. (もし,プロジェクト・エクスプローラが開いていなければ)プロジェクト・エクスプローラを開く

    「ウインドウ (Window)」→「ビューの表示 (Show View)」→「プロジェクト・エクスプローラ (Project Explorer)」 と操作する.

  2. プロジェクトの新規作成の開始

    ファイル」→「新規 (New)」→「プロジェクト (Project)
    または,プロジェクト・エクスプローラ内で,右クリック→「新規 (New)」→「プロジェクト (Project)」

  3. Web」の展開

    新規プロジェクトのウインドウが開くので, 「Web」を展開する.

  4. 動的 Webプロジェクト (Dynamic Web Project)」の選択

    展開した「Web」の下にある 「動的 Webプロジェクト (Dynamic Web Project)」を選び, 「次へ」をクリック.

  5. プロジェクト名の設定など

    設定用のウインドウが開くので,下記の設定を行う. 設定が終わったら,「次へ」をクリック.

    • 「プロジェクト名 (Project name)」(name)(1行目): hoge と設定.

      プロジェクト名は,好きな名前でよいが,スペースや全角文字は避けること. ここでは,プロジェクト名を,「hoge」と付けることにする.

    • 「プロジェクト・コンテンツ (Project contents)」(2行目)では,ファイルの保存場所を指定する.

      デフォルトの使用 (Use default)」にチェックを入れたままで良い.

    • 「ターゲット・ランタイム (Target Server)」 (3行目):「Apache Tomcat v5.5」になっていることを確認.

      他のもの(例えば「なし」)になっていたら,「Apache Tomcat v5.5」に変更しておく

      * 変更のとき,「なし」だけしか無くて,「Apache Tomcat v5.5」が候補として表示されない場合は, 「Eclipse を使用しての Java サーブレット・プログラムの開発」の Web ページに記載の「新規サーバの定義」を行うこと.

  6. 次の「プロジェクト・ファセット」は,デフォルトのままでよい

    次へ」をクリック.

    * このウインドウが開かないことがある.気にしなくてよい.

  7. 次の「Web モジュール」は,デフォルトのままでよい

    終了」をクリック.

  8. もし「関連付けられたパースペクティブを開きますか?」と聞いてきたら,「はい」をクリック

    * このウインドウが開かないことがある.気にしなくてよい.

  9. 作成されたプロジェクトの確認

    プロジェクト・エクスプローラで,いま作成した動的 Web プロジェクト hoge が表示されていることを確認する.

(Java DB (Derby) を使うときのみ) Apache Derby ネーチャーの追加と,サーバの開始

Java DB (Derby) を使うときに限り,プロジェクトへのApache Derby ネーチャーの追加 と,Java DB (Derby) サーバの開始を行う. これは, Java DB (Derby) を使うための追加的な設定です

  1. プロジェクト・エクスプローラで,プロジェクト名 hoge右クリック
  2. 「Apache Derby」→「Apache Derby ネーチャーの追加」

    「Apache Derby」が候補として現れないときは, Java DB (Derby) インストール の手順に従って,インストールと設定を行う.

  3. 「Apache Derby」→「Derby ネットワーク・サーバの開始」

    ポート1527 で Derby サーバが起動します.

    「Derby ネットワーク・サーバの開始」が選べない状態になっているときは, すでに開始済みなので,この手順は不要.

リレーショナルデータベース・ソフトウェアとして,Java DB (Derby) 以外を使う場合は,上記は不要です.

プロジェクトへの Spring プロジェクト・ネイチャーの追加

今度は,Spring JDBC を使うための設定です.

プロジェクトへの Spring プロジェクト・ネーチャーの追加を,次の操作で行う.

  1. プロジェクト・エクスプローラで,プロジェクト名 hoge右クリック
  2. Spring ツール (Spring Tools)」→「Spring プロジェクト・ネーチャーの追加」と操作.

    Spring ツール (Spring Tools)」が候補として現れないときは, Eclipse の SpringIDE プラグイン の手順に従って,インストールを行う.

  3. プロジェクトの下に,「Spring Elements」が増えるので確認しておく.

    プロジェクト名 HelloWorld の左横の 「+」をクリックして展開すると, 「Spring Elements」が増えている. (Spring プロジェクト・ネーチャーの追加ができたことが分かる).

WebContent\WEB-INF\lib への,jar ファイルのインポート

次の2種類の jar ファイルを,今度は,WebContent\WEB-INF\lib にインポートします.

プロジェクトの WebContent\WEB-INF\lib へのインポートを行う手順を下記に示す.

  1. プロジェクト構成物の表示

    プロジェクト・エクスプローラで, プロジェクト名 hoge の左横の「+」をクリックして展開すると,「Java リソース; src」などが現れる(その他,いろいろ,プロジェクトの構成物が現れる).

    * すでに展開済みのときは,この手順は不要.

  2. WebContent の展開

    WebContent の左横の「+」をクリックして展開する.

    * すでに展開済みのときは,この手順は不要.

  3. WEB-INF の展開

    WEB-INF の左横の「+」をクリックして展開する.

    * すでに展開済みのときは,この手順は不要.

  4. WEB-INF の下の lib を右クリックし,「インポート」を選ぶ.
  5. インポート・ソースの選択

    一般」→「ファイルシステム」と操作した後, 「次へ」をクリック.

  6. ファイルの指定

    インポートの手順は下記の通りである.

    1. 今出ているウインドウで,ソース・ディレクトリとして,各ファイルのディレクトリを指定.
    2. すると,ソース・ディレクトリの下に,ファイルの一覧が表示される. ここで,インポートすべきファイルを選ぶ. インポートすべきファイルをチェックする
    3. 以上の操作の後,「終了」をクリック.

    インポートするファイルが複数あるので, lib を右クリックし,「インポート」を選ぶという手順に戻って,やり直す必要がある. (つまり,ファイルの数だけ,インポートの操作を繰り返す). 上にも書きましたが,インポートすべきファイルは,次の2種類です.

    • Spring 2 に関する次の 2 つの jar ファイル
      C:\Program Files\Java\spring-framework-2.5\dist\spring.jar
      C:\Program Files\Java\spring-framework-2.5\lib\jakarta-commons\commons-logging.jar
      

      上記のファイルが現れないときは,Spring 2 インストール の手順に従ってインストールを行う.

    • JDBC の jar ファイル
      • PostgreSQL の場合:

        C:\Program Files\psqlJDBC\postgresql-8.3-603.jdbc4.jar をインポート

      • MySQL の場合:

        C:\Program Files\Java\mysql-connector-java-5.1.6\mysql-connector-java-5.1.6-bin.jar をインポート

        JDBC の jar ファイルが無い,というときは,MySQL Connector Java のダウンロードの Web ページを見てください.

      • Java DB の場合:

        C:Program Files\eclipse3.5\eclipse\plugins\org.apache.derby.core_10.5.1\derby.jar をインポート

  7. インポートの結果,ファイルが増える

    インポートの結果,ファイルが増えたことを確認したいときは,プロジェクト・エクスプローラで,「lib」を展開する.

Java パッケージ作成

Eclipse のプロジェクト・エクスプローラを使って, Java パッケージを作成します. Java パッケージ名には hoge.hoge.com のようなドメイン名を付ける習慣があることに注意してください. このページでは,作成するJava パッケージ名は,hoge.hoge.com と書く. (Java パッケージ名を変えるときは,読み替えてください).

  1. (もし,プロジェクト・エクスプローラが開いていなければ)プロジェクト・エクスプローラを開く

    「ウインドウ」→「ビューの表示」→「プロジェクト・エクスプローラ」 と操作する.

    Java パッケージの作成,クラスの作成などの作業は,プロジェクト・エクスプローラで行う.

  2. Java パッケージを新規作成すべきプロジェクトの選択

    プロジェクト・エクスプローラに,プロジェクト一覧が表示されているはずです. Java パッケージを新規作成したいプロジェクト名 hoge右クリックして, 「新規」→「パッケージ」と操作する.

  3. Java パッケージ名の設定

    「Java パッケージ (Java package)」名前として,Java パッケージ名 hoge.hoge.comを記入する.

    その後,「終了」をクリック.

  4. Java パッケージの確認

    プロジェクト・エクスプローラにおいて, Java パッケージ hoge.hoge.com が増えていることを確認する.

    * プロジェクト・エクスプローラで, Java パッケージ名 hoge.hoge.comが表示されていないときは, プロジェクト hoge の左横の「+」をクリックして展開した後, 下の 「Java リソース; src」の左横の「+」をクリックして展開して下さい.

サーブレットの作成

  1. 新規サーブレットの作成の開始

    プロジェクト・エクスプローラにおいて, サーブレットを作成したいJava パッケージ名 hoge.hoge.com右クリック

    * プロジェクト・エクスプローラで, Java パッケージ名 hoge.hoge.comが表示されていないときは, プロジェクト名の下の 「Java リソース; src」を展開して下さい.

  2. 新規 (New)」→「その他 (Other)」と操作する.
  3. サーブレットの選択

    サーブレットを作成したいので, 「Web」→「サーブレット (Servlet)」と操作し, 「次へ」をクリックします.

  4. サーブレットのクラス名等の指定

    新規に作成するサーブレットについて,Java パッケージ名,クラス名等を入力できるウインドウが開くので,設定を行う.

    1. 「Java パッケージ (Java package)」(3行目): Java パッケージ名 「hoge.hoge.com」を設定.

      *hoge.hoge.com」になっていなければ修正すること.

    2. 「クラス名」(4行目の「名前」のところ): HelloWorld
  5. 次はデフォルトのままでよい

    次へ」をクリックします.

  6. 次はデフォルトのままでよい

    終了」をクリックします.

  7. 作成されたクラスの確認

    プロジェクト・エクスプローラで, Java パッケージ名 hoge.hoge.com の左横の「+」をクリックして展開すると, クラスファイル HelloWorld.java が現れるはず.確認しておく.

クラス定義と実行

  1. プロジェクト構成物の表示

    プロジェクト・エクスプローラで, プロジェクト名 hoge の左横の「+」をクリックして展開すると,「Java リソース; src」などが現れる(その他,いろいろ,プロジェクトの構成物が現れる).

    * すでに展開済みのときは,この手順は不要.

  2. Java パッケージ一覧の表示

    プロジェクト・エクスプローラで, 「Java リソース; src」の左横の「+」をクリックして展開すると,Java パッケージ一覧などが現れる.

    * すでに展開済みのときは,この手順は不要.

  3. クラスファイル一覧の表示

    プロジェクトエクスプローラで, 先ほど作成したJava パッケージ名 hoge.hoge.com の左横の「+」をクリックすると, クラスファイル一覧が現れる.

    * すでに展開済みのときは,この手順は不要.

  4. 定義したいクラスのファイルを開く

    HelloWorld クラスを定義したいので, プロジェクト・エクスプローラの クラスファイル一覧の中から, 「HelloWorld.java」をダブルクリックします. すると,エディタが開きます.

    このように,Eclipse のプロジェクト・エクスプローラで,定義したいクラスの「クラス名.java」ダブルクリックすると,エディタが開くことになっています.

    * なお,別のクラスを追加したいときは, Java パッケージ名を右クリックして「新規」→「クラス」です.

  5. エディタでクラス HelloWorld を定義する

    下記のクラス定義をカットアンドペーストしてみて下さい(テスト用に作ったクラス定義です). (Java パッケージ名を「hoge.hoge.com」と書いているので,Java パッケージ名を別の名前にしている場合には,適切に読み替えてください).

    ----------------------ここから---------------------
    package hoge.hoge.com;
    
    import java.io.*;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import java.sql.*;
    import java.text.DecimalFormat;
    import java.util.Properties;
    
    /**
     * Servlet implementation class for Servlet: HelloWorld
     *
     */
     public class HelloWorld extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
            // 決まり文句
            private static String PostgresJDBCDriver = "org.postgresql.Driver";
            private static String MySQLJDBCDriver = "org.gjt.mm.mysql.Driver";
            private static String JavaDBJDBCDriver = "org.apache.derby.jdbc.EmbeddedDriver";
            private static String HiRDBDriver = "JP.co.Hitachi.soft.HiRDB.JDBC.PrdbDriver";
            // 下記の変数を正しく設定する
            // DBNAME, USER, PASS, JDBCDriver, DBURL
    
            // PostgreSQL 用デフォルト
            // Eclipse で PostgreSQL を使いたいときは,次の手順で,WebContent\WEB-INF\lib にインポートしておく.
            //     WebContent\WEB-INF\lib を右クリック.「一般」→「ファイルシステム」
            //     その後インポートすべきファイルとして,次のファイルを指定
            //       C:\Program Files\psqlJDBC\postgresql-8.3-603.jdbc4.jar
            final private static String DBNAME = "testdb"; // Database Name
            final private static String USER = "testuser"; // user name for DB.
            final private static String PASS = "hoge$#34hoge5"; // password for DB.
            final private static String JDBCDriver = PostgresJDBCDriver;
            final private static String DBURL = "jdbc:postgresql://localhost/" + DBNAME;
    
            // MySQL 用デフォルト
            // Eclipse で MySQL を使いたいときは,次の手順で,WebContent\WEB-INF\lib にインポートしておく.
            // https://dev.mysql.com/downloads/connector/ から,Connector/J をダウンロード
            // c:\Program Files\Java\mysql-connector-java-5.1.6\ に置く.
            //     WebContent\WEB-INF\lib を右クリック.「一般」→「ファイルシステム」
            //     その後インポートすべきファイルとして,次のファイルを指定
            //       c:\Program Files\Java\mysql-connector-java-5.1.6\mysql-connector-java-5.1.6-bin.jar を追加
            // final private static String DBNAME = "testdb"; // Database Name
            // final private static String USER = "testuser"; // user name for DB.
            // final private static String PASS = "hoge$#34hoge5"; // password for DB.
            // final private static String JDBCDriver = MySQLJDBCDriver;
            // final private static String DBURL = "jdbc:mysql://localhost/" + DBNAME;
    
            // JavaDB用デフォルト
            // final private static String DBNAME = "dbdir;create=true"; // Java DB の場合は,Java DB データベースディレクトリ(相対)
            // final private static String DBDIR = "C:\\Program Files\\eclipse3.5\\eclipse\\"; // データベースが存在するディレクトリ
                    // DTP, DBViewer などを使ってデータベースを生成した場合は Eclipse インストールディレクトリ
                    // ij などを使ってデータベースを生成した場合は,c:\\<ワークスペース>\\<プロジェクト名>
            // final private static String USER = ""; // user name for DB. Java DB (Derby) の場合は空
            // final private static String PASS = ""; // password for DB. Java DB (Derby) の場合は空
            // final private static String JDBCDriver = JavaDBJDBCDriver;
            // final private static String DBURL = "jdbc:derby:" + DBDIR + DBNAME;
    
            // HiRDB用デフォルト
            // Eclipse で HiRDB を使いたいときは,次の手順で,WebContent\WEB-INF\lib にインポートしておく.
            //     WebContent\WEB-INF\lib を右クリック.「一般」→「ファイルシステム」
            //     その後インポートすべきファイルとして,次のファイルを指定
            //       C:\win32app\hitachi\hirdb_s\CLIENT\UTL\pdjdbc.jar
            // ユーザ名,パスワード: C:/windows/HiRDB.iniのPDUSER の値を調べておく
            // final private static String USER = "ユーザ名"; // user name for HiRDB. see C:/windows/HiRDB.ini
            // final private static String PASS = "パスワード"; // password for HiRDB. see C:/windows/HiRDB.ini
            // final private static String JDBCDriver = HiRDBDriver;
            // final private static String HiRDBServerName = "hitachi-664320D"; // HiRDB サーバのコンピュータ名
            // final private static String DBURL = "jdbc:hitachi:PrdbDrive://DBID=22200,DBHOST=" + HiRDBServerName + ",ENCODELANG=MS932"; // 'DBID=22200' is in "conf\pdsys";
    
            // この先は決まり文句
            private static Statement stmt = null;
    
            /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#HttpServlet()
         */
        public HelloWorld() {
            super();
        }
    
        /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            // Connection
            try {
                connect( USER, PASS );
                // 実行するSQL文と,出力フォーマットを記述する
    
                ResultSet rs = execute( "select * from commodity" );;
                DecimalFormat dformat = new DecimalFormat ("#,###円");
    
                /* HTTP レスポンス */
                response.setContentType("text/html;charset=iso-2022-jp");
                PrintWriter out = response.getWriter();
                out.println("<HTML>");
                out.println("<p>");
                out.println("Database");
                out.println("</HTML>");
    
                while(rs.next()){
                    int t = rs.getInt("type");
                        String n = rs.getString("name");
                        int p = rs.getInt("price");
                        out.println("<p>" + t + " " + n + " " + dformat.format( p ) );
                }
    
                rs.close();
                stmt.close();
                disconnect();
            }
            catch (Exception e) {
                // Error Message and Error Code
                System.out.print(e.toString());
                if (e instanceof SQLException) {
                    System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                }
                // Print Stack Trace
                e.printStackTrace();
                if (conn != null) {
                    try {
                        conn.rollback();
                        conn.close();
                    } catch (SQLException e1) {
                        e1.printStackTrace();
                    }
                }
            }
        }
    
        /*
         *  Service Functions
         *  ここから先は,決まり文句を関数化したもの.
         */
        static Connection conn = null;
        // database open
        public static void connect( String user, String pass )
        throws SQLException, ClassNotFoundException {
            try {
                // JDBC Driver Loading
                Class.forName(JDBCDriver).newInstance();
                System.setProperty("jdbc.driver",JDBCDriver);
            }
            catch (Exception e) {
                // Error Message and Error Code
                System.out.print(e.toString());
                if (e instanceof SQLException) {
                    System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                }
                // Print Stack Trace
                e.printStackTrace();
            }
            try {
                // Connection
                if ( user.isEmpty() && pass.isEmpty() ) {
                    conn = DriverManager.getConnection(DBURL);
                }
                else {
                    Properties prop = new Properties();
                    prop.put("user", user);
                    prop.put("password", pass);
                    conn = DriverManager.getConnection(DBURL,prop);
                }
            }
            catch (Exception e) {
                // Error Message and Error Code
                System.out.print(e.toString());
                if (e instanceof SQLException) {
                    System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                }
                // Print Stack Trace
                e.printStackTrace();
                if (conn != null) {
                    conn.rollback();
                    conn.close();
                }
            }
        }
        // database close
        public static void disconnect()
            throws SQLException {
            try {
                conn.close();
            }
            catch (Exception e) {
                // Error Message and Error Code
                System.out.print(e.toString());
                if (e instanceof SQLException) {
                    System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                }
                // Print Stack Trace
                e.printStackTrace();
                if (conn != null) {
                    conn.rollback();
                    conn.close();
                }
            }
        }
        public static ResultSet execute( String sql )
            throws SQLException {
            try {
                conn.setReadOnly(true);
                // Execute 'commit' Automatically after each SQL
                // conn.setAutoCommit(true);
                // Query Exection
                stmt = conn.createStatement();
                return stmt.executeQuery(sql);
            }
            catch (Exception e) {
                // Error Message and Error Code
                System.out.print(e.toString());
                if (e instanceof SQLException) {
                    System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                }
                // Print Stack Trace
                e.printStackTrace();
                if (conn != null) {
                    conn.rollback();
                    conn.close();
                }
                return null;
            }
        }
    
        /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
        }
    }
    ----------------------ここまで----------------------
    
  6. ソースを保存

    「ファイル」→「保管」または CTRL+S で保存される. 保存時にコンパイルされる

    コンパイル時のエラーや警告があれば, Eclipse 内の問題・ビューに表示されるので確認する.

  7. 下記の「Java サーブレット・プログラムのテスト実行」に進んでください.

Java サーブレット・プログラムのテスト実行

Eclipse のプロジェクト・エクスプローラを使用して,上記で作ったJava サーブレットのプログラム をテスト実行してみる.

  1. 実行したいサーブレットのクラスを選び,右クリック

    Eclipse のプロジェクト・エクスプローラで,実行したいクラス名.java (つまり HelloWorld.java)右クリック

  2. 実行 (Run As)」→「サーバーで実行 (Run on Server)」と操作
  3. サーバの選択

    ウインドウが開くので, 「ローカルホストの Tomcat v5.5 サーバ」が選択されていることを確認の後,「次へ (Next)」をクリック.

  4. 次はデフォルトのままでよい

    終了」をクリック.

    * 下記のエラーが出て,Eclipse 内部の Tomcat サーバが起動しない場合には,C:\tomcat55\bin\tomcat5w.exe を使い,公開 Tomcat サーバを停止する

    * すでに,C:\tomcat55\bin\tomcat5w.exe などを使って,「公開 Tomcat サーバを稼働させている」ときは, Eclipse 内部の Tomcat サーバが起動しない(ポートを奪い合うので)ので, C:\tomcat55\bin\tomcat5w.exe を使って, 公開 Tomcat サーバを停止させて下さい.

  5. Eclipse 内部の Tomcat サーバが起動することを確認

    コンソール・ビューに表示される.

  6. 実行結果の確認

    Eclipse の 組み込み Web ブラウザ (Internal Web ブラウザ)が開き,そこに実行結果が出る. 実行結果は次のようになる.

    Database
    
    1 apple 50円
    
    2 orange 20円
    
    3 strawberry 100円
    
    4 watermelon 150円
    
    5 melon 200円
    
    6 banana 100円
    

    組み込みWeb ブラウザ内のアドレスバーの部分は,

    http://localhost:8080/hoge/HelloWorld
    

    のようになっていることを確認しておきます.(「hoge」の部分は,実際のプロジェクト名に読み替えて下さい).

(参考)うまくいかない場合

エクスポート (Eclipse の Export 機能を利用)

Eclipse でエクスポートを行い、単体で動くようにします。

  1. プロジェクト・エクスプローラから、エクスポートしたいプロジェクト derbydb を選択し、  右クリックメニューから、「エクスポート」を選択
  2. .選択ダイアログ

    「Web」→「WARファイル」→「次へ」

  3. WARエクスポートダイアログ
     Webモジュール:「derbydb」
     宛先:「C:\tomcat55\webapps\derbydb.war」
    

    混乱を防ぐために、エクスポートしたいプロジェクトの名前をそのまま付ける。

     「ソースファイルのエクスポート」「既存ファイルを上書き」→必要ならチェック  「終了」で、エクスポートが実行される

  4. Apache 側の設定

    apacheインストールディレクトリのconfフォルダ内 にあるworkers2.propertiesに以下の2行を追加

        [uri:/derbydb/*]
        group=lb
    
  5. 動作確認 

    直接(tomcat5w.exeから)Tomcatを実行し、Eclipseとは無関係にサーブレットが動くことを確認する。

    http://localhost:8080/derbydb/HelloWorld

     また、Apacheとの連携も従来どおり行える(別途、apache サーバを起動のこと)。  なお、WEB-INFなどの、サーブレット実行に必要なディレクトリは、実行時に作成される。


参考Webページ: http://www.atmarkit.co.jp/fjava/javafaq/jdbc/jdbc01.html

参考Webページ: https://d.hatena.ne.jp/benikujyaku/20070127 (現存しない)

http://www.itarchitect.jp/enterprise/-/30601-3.html (現存しない)