strutsライブラリ

HTML:タグなどからなるフォーム部品。ほぼHTMLのフォームタグに対応するが、Modelで生成された値のデフォルト表示やエラー時のフィードバックなどリッチな機能を提供する
Logic:条件分岐や繰り返し、値の比較など、プログラミング言語が提供する基本的な制御ロジックをタグ化する
Beans:Modelから引き継がれたJavaBeans(データオブジェクト)にアクセスするための手段を提供する。ヘッダ値やクッキーなど不可視のリクエストデータについても、Beansタグライブラリを介してアクセスすることができる。また、国際化対応メッセージを制御する
Nested:タグで囲まれた内部の属性(変数)名を略記可能とします。例えば、「xxxx.yyyy.zzzz」のような変数を「zzzz」と記述することが可能になる
Tiles:テンプレート機能を提供する。Tilesを利用することで、ヘッダ、メニュー、コンテンツなどの部分から構成される画面を分割管理することが可能になり、デザインの統一を図りやすくなる

アクションサーブレット:Strutsにおけるコアエンジンです。アクションサーブレットは、ユーザーが別に用意した設定ファイルを手掛かりにして、入出力データの振り分けや画面遷移の制御を一手に引き受けます。

アクションフォームBeans:ユーザーからの入力データを格納し、ビジネスロジックに引き渡すための役割を果たします。入力データの検証処理やデフォルト値のセットなど、これまでアプリケーション本流のロジックに混在しがちであった部分を一元的に管理することで、ビジネスロジックをスリム化することができます。

Validator:「Validator」もまたStruts 1.1から導入された機能です。クライアントからの入力データを設定ファイルで定義された内容(検証対象、チェック内容、エラーメッセージ)に基づいて検証します。

strutsに必要なソフトウェア
J2SE(Java2 Software Development Kit, Standard Edition):Javaアプリケーション開発の基本的なツール、および実行環境を提供します。Java仮想マシンをはじめ、コンパイラ(javac)、ドキュメント生成エンジン(javadoc)、エンコーディングユーティリティ(native2ascii)などを含みます。Strutsもまたサーバサイドで動作するJavaアプリケーションですので、まずはこのJ2SEをサーバ上にインストールしておく必要があります。

サーブレットコンテナ
Strutsは「サーブレット」技術をベースにおくアプリケーション・フレームワークです。実行に際しては、サーブレットを動作させるための実行エンジン(コンテナ)を必要とします。一般的には、サーブレットコンテナはユーザーからのリクエスト処理を制御するWebサーバと連携して動作しますが、Tomcatには簡易なWebサーバとしての機能も実装されています。

データベースサーバ:
MySQL

サーバー: J2SE, Tomcat, Strutus, MySQL

struts-config.xml

<?xml version="1.0" encoding="Shift_JIS" ?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
  <data-sources></data-sources>
  <form-beans></form-beans>
  <global-exceptions></global-exceptions>
  <global-forwards></global-forwards>
  <action-mappings></action-mappings>
</struts-config>

warファイルとは

Java 製のWebアプリで利用されるクラスファイル(servlet)、設定ファイル、JSPやHTMLファイル、JAR形式のライブラリなどがまとめられているアーカイブ。 また、web.xmlが含まれ、TomcatなどのアプリケーションサーバにWARファイルを配布すると、これを元にデプロイされる。

warファイルはzip形式で圧縮されたアーカイブにすぎません。しかし、ほかの形式とは異なり、warファイルを規定のアプリケーションフォルダ(Tomcatなら、%CATALINA_HOME%\webapps)にコピーしておくと、コンテナの(再)起動時に自動的に展開され、Webブラウザからアクセス可能になる

jarコマンドにcvfオプションを付加して、そのパス名を引数として渡すだけで作成できる。

なるほど、動くことは分かったので、strutsがどういう仕組みで、どういう風に書いていけばいいのかですな。
課題としては
– ファイル構成がわからない
– jar, war, jsp, javaなど使用するファイルが、phpやpython、rbなど他のスクリプト言語に較べて多い


「Maven」とは、要するにJavaプログラムをビルドするためのツールです。
C言語を触ったことがある人は、makeのようなものと言えばイメージがしやすいかと思います。
似たようなツールに、AntやGradleなどありますが、使い方とかが違うだけで、本質的には同じです。
コンパイルの前後に依存するライブラリを自動で揃えたり、XMLさえ書けば、いろんなことがビルドと一緒にできるツール

JSPとは、JavaServer Pages の略で、Javaによるサーバサイド・スクリプティングを実現するためのテクノロジです。 … JavaScriptは、Webサーバから転送されるHTMLファイルの中に記述されており、その実行は、クライアントであるWebブラウザ上で行われる。
Webサーバ(ホームページのファイルを置くサーバ)上でお仕事をするJavaのプログラムで、HTMLファイルとJavaのプログラムが合体したもの

jspの例

<html>
<head>
	<title>title</title>
</head>

<body>
<%
	String word1 = "hello world!";
	out.println(world1);
%>
</body>
</html>

View JSP/HTML
Control サーブレット
Model JavaBeans

<table border="1">
	<tr><th>タイトル</th><th>著者</th><th>出版社</th><th>価格</th></tr>
	<logic:iterator id="data" name="aryData" scope="request">
	<tr>
		<td><bean:write name="data" property="title"></td>
		<td><bean:write name="data" property="author"></td>
		<td><bean:write name="data" property="publish"></td>
		<td><bean:write name="data" property="price"></td>
	</tr>
</logic:iterator>
</table>

vagrantでstrutsを動してみよう♪

まずlibの権限変更
[vagrant@localhost apache-tomcat-8.5.33]$ sudo chmod 755 lib

strutsのjarファイルをtomcatのlibに移動する。
[vagrant@localhost struts-1.3.10]$ sudo mv lib/*.jar /opt/tomcat/apache-tomcat-8.5.33/lib

これでOKらしい。

続いて、appsのwarファイルをtomcatのwebappsに移動
mv apps/struts-examples-1.3.10.war /opt/tomcat/apache-tomcat-8.5.33/webapps

[vagrant@localhost webapps]$ ls
ROOT examples manager struts-examples-1.3.10.war
docs host-manager struts-examples-1.3.10

tomcat再起動
[vagrant@localhost webapps]$ sudo /opt/tomcat/apache-tomcat-8.5.33/bin/shutdown.sh
[vagrant@localhost struts-1.3.10]$ sudo /opt/tomcat/apache-tomcat-8.5.33/bin/startup.sh
Using CATALINA_BASE: /opt/tomcat/apache-tomcat-8.5.33
Using CATALINA_HOME: /opt/tomcat/apache-tomcat-8.5.33
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.5.33/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/apache-tomcat-8.5.33/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.5.33/bin/tomcat-juli.jar
Tomcat started.

以下のURLを叩く
http://192.168.33.10:8080/struts-examples-1.3.10/welcome.do

うおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
なにこれ?????????????????????

動いたのは分かったが、framework触ってる気が全くしないぞ。。

java Struts

公式よりDLします。

[vagrant@localhost struts]$ wget http://ftp.kddilabs.jp/infosystems/apache/struts/1.3.10/struts-1.3.10-all.zip
–2018-09-17 09:15:23– http://ftp.kddilabs.jp/infosystems/apache/struts/1.3.10/struts-1.3.10-all.zip
ftp.kddilabs.jp をDNSに問いあわせています… 192.26.91.193, 2001:200:601:10:206:5bff:fef0:466c
ftp.kddilabs.jp|192.26.91.193|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 46541251 (44M) [application/zip]
`struts-1.3.10-all.zip’ に保存中

100%[======================================>] 46,541,251 621K/s 時間 77s

2018-09-17 09:16:43 (591 KB/s) – `struts-1.3.10-all.zip’ へ保存完了 [46541251/46541251]

[vagrant@localhost struts]$ ls
struts-1.3.10-all.zip

zipを解凍する。
$ unzip struts-1.3.10-all.zip

[vagrant@localhost struts]$ ls
struts-1.3.10 struts-1.3.10-all.zip

strutus

tomcat

tomcatにデプロイするのか?