Struts1.3.10のHelloWorldとデータベース、Examplesを試してみる
Struts1系の最終バージョンは1.3.10で最終リリースは2008年10月。
今は2018年ですから約10年前ですね。今回はStruts1.3.10に触れる機会がありましたので、StrutsのMVCフレームワークでの「HelloWorld」「データベース操作」「Examples」を試してみました。
1. 開発環境のダウンロード
次のサイトの「Pleiades All in One」をダウンロードします。
※今回は「Eclipse 4.7 Oxygen」をダウンロードしました。
※JavaのFull Edition(Eclipse/JDK/Tomcat等が含まれる)を選択します。
2. 公式のExamplesのダウンロード
https://struts.apache.org/download.cgi
にあるExamplesのstruts-1.3.10-apps.zipをダウンロードします。
3. Eclipseでのサーバー設定
Eclipseを起動します。
メニューの[ウインドウ][設定]の[サーバー][ランタイム環境]で「Tomcat8」を選択して適用して閉じます。※表示されない場合は検索して下さい。
メニューの[ウインドウ][ビューの表示][その他]で「サーバー」を選択して開きます。
次の青文字のリンクをクリックします。(右クリックで新規-サーバーでもOK)
Tomcat v8.0サーバーに変更して完了します。
パッケージエクスプローラーに「Servers」が表示されていれば完了です。
4. 新規プロジェクトを作成する
メニューの[ファイル][新規][その他]で[Web][動的なWebプロジェクト]を選択します。
プロジェクト名(foo)を入力して「次へ」「次へ」を2回押します。そして、最後に「web.xmlデプロイメント記述子の生成」をオンにします。
後は、完了ボタンを押します。これでプロジェクトの完成です。
※fooの部分はプロジェクト名です。
5. 公式のExamplesを実行してみる
先ほど、ダウンロードしたExamplesの中にある
を7-Zipなどで展開します。
これを先ほど、作成したプロジェクトへOS側の操作でコピペします。
プロジェクトが
にある場合は、
にコピペします。
コピペしたらEclipseのパッケージエクスプローラーで右クリックして「リフレッシュ」をします。
すると、次のようになります。
welcome.jspを選択後に右クリックして[実行][サーバーで実行]を押します。完了ボタンを押します。
このように表示されればOkです。
このアドレスはブラウザでも実行できますので試してみましょう。
6. HelloWorld
新規にプロジェクト(hoge)を作成します。
※最後の「web.xmlデプロイメント記述子の生成」のオンを忘れずに!
次のファイルをダウンロードします。
https://www.petitmonte.com/uploads/struts.zip
OS側で圧縮ファイルを展開して、プロジェクトのフォルダにコピペします。
リフレッシュすると次のようになります。
次に5章のExamplesのプロジェクト(foo)にあるWEB-INF\libのファイルを今回のプロジェクト(hoge)のWEB-INF\libに全てコピペして下さい。
パッケージエクスプローラーを右クリックして「リフレッシュ」を選択。
index.jspを右クリックして実行します。
これでHelloWorldは完了です。次はデータベースです。
7. データベース操作
最初にMySQLをインストールします。
MySQLのインストールからコマンド操作(ユーザ/データベース/テーブルの作成)やODBC設定
Javaでデータベース操作(検索/更新系SQL/プリペアドステートメント/トランザクション)
そして、メニューの[実行][実行構成][クラスパス][ユーザーエントリ]の「外部JARの追加」でJDBC(mysql-connector-java-x.x.xx.jar)を追加します。
プロジェクトは6章を流用します。
[helloWorld.jspを変更]
<%@ page contentType="text/html;charset=utf-8" %> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Hello World</title> </head> <body> <!-- filter="false"にするとHTMLの自動エスケープがオフになる --> <bean:write name="helloWorldForm" property="message" filter="false" /> </body> </html>
[HelloWorldAction.javaを変更]
package com.petitmonte.action;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.petitmonte.form.HelloWorldForm;
public class HelloWorldAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HelloWorldForm myForm = (HelloWorldForm) form;
String str = "";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
// JDBCの各設定
// ※jdbc:mysql://localhost/データベース名
// ※?以降はMySQLの設定により必要ないです。SSLを無効、タイムゾーンをUTCにしています。
String url = "jdbc:mysql://localhost/sample_db?useSSL=false&serverTimezone=UTC";
String user = "test"; // ユーザー名
String pass = "1234567890"; // パスワード
try {
// データベースに接続
con = DriverManager.getConnection(url,user,pass);
// ステートメントオブジェクトを作成
stmt = con.createStatement();
// SQLの作成
String sql = "select no,title from mst_dummy";
// SQLの実行
rs = stmt.executeQuery(sql);
str += "--------------------" + "<br>";
str += "no title" + "<br>";
str += "--------------------" + "<br>";
// 結果セットからデータを取り出す
while(rs.next()) {
int no = rs.getInt("no");
String title = rs.getString("title");
str += String.valueOf(no) + " " + title + "<br>";
}
} catch (Exception e) {
System.out.println(e.getMessage());
}finally {
// 各オブジェクトを解放する
if(rs != null) {
try {
rs.close();
}catch (Exception e) {
System.out.println(e.getMessage());
}
}
if(stmt != null) {
try {
stmt.close();
}catch (Exception e) {
System.out.println(e.getMessage());
}
}
if(con != null) {
try {
con.close();
}catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
myForm.setMessage(str);
return mapping.findForward("success");
}
}
これで実行すると次のようになります。
以上となります。お疲れさまでした。
関連記事
| 前の記事: | WebViewの<input type="file" multiple>でファイルを複数選択する [Android] |
| 次の記事: | AndroidのAPKファイルを逆コンパイルする [jadx/windows版] |
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









