メインセッション Struts 2.0によるWebアプリ開発

Download Report

Transcript メインセッション Struts 2.0によるWebアプリ開発

自己紹介
社会人5年目 JavaやPHPでWebって
ます
愛車:スバル インプレッサWRX STI
お金がかかる・・・
エンタメ系サービスがやりたい!
ネットワーク勉強しなきゃ!
プロマネ勉強しなきゃ!
趣味は車でお出かけ、テニス、カート
お金がかかる・・・
松下幸之助、井深大、盛田昭夫などアツ
い人物が好き
プロジェクトXはヤバイ
ロータリー47士の闘い ~夢のエンジ
ン・廃墟からの誕生~
目次
1.当セッションについて
6.MVCとStruts1
2.作るもの
7.Struts1で書くと
3.Servletで書くと
4.JSPで書くと
5.処理順序
8.MVCとStruts2
9.Struts2で書くと
10.次回予告
11.メモ
当セッションについて
目的
一人で小規模なWebアプリを一式作れるようになること
目標
フレームワークを使った開発にはどんなメリット/デメリットがあるかを理解する
Webアプリのフレームワークである「Struts2.0」の基本に触れてみる
対象者
言語やフレームワークの違いによる開発アプローチの違いを知りたい
JavaやStrutsの言葉は知っているけど、いざWebアプリを位置から作ろうと思ってもど
うしたらいいかわからない
アーキテクチャと今回の対象範囲
下図はJavaで作るWebアプリの一般的なソフトウェアアーキテクチャです。
赤字が今回勉強する範囲
掲示板(Webアプリ)
Apache
(Webサーバー)
Struts
(フレームワーク)
Tomcat
(サーブレットコンテ
ナ)
Commonsライブラリ※
その他ライブラリ
(ライブラリ・コンポーネント)
MySQL
PostgreSQL
Oracle
(データベース)
Java(実行環境・開発環境)
Windows/Linux
(OS)
※ Apache Commonsプロジェクトにより提供されている再利用可能なJavaコンポーネント。
メール送信、ファイルアップロード、java.langクラスの拡張、ロギング、HTTP通信など
様々。低レベルな層でやりたいことは大抵ここにある。何かの問題にぶち当たったら、まず
ここを眺めてみると良い。http://commons.apache.org/
前提
ここで述べている事はあくまで一例。解法はいくらでもある
し日々進化する。
こういう技術の進歩は早いのですぐ陳腐化するが、基本思
想は変わっていない事も多い。つまり新技術の登場やバー
ジョンアップしても、古い技術はそれらの理解の助けになり、
習得が容易になる。
ツッコミや質問
本セッションへのツッコミや質問は「楽しいアプリ制作の会」
公式サイト[http://tanoapp.tworks.jp/]
にて随時受け付けます。
作るもの
今回は、掲示板を題材にしてプログラムを書いてみます。
1) Sevletで書くと・・・
2) JSPで書くと・・・
3) Struts1系で書くと・・・
4) Struts2系で書くと・・・
Servletで書くと
掲示板(Webアプリ)
Apache
(Webサーバー)
Struts
(フレームワーク)
Tomcat
(サーブレットコンテ
ナ)
Demo
Commonsライブラリ
その他ライブラリ
(ライブラリ・コンポーネント)
Java(実行環境・開発環境)
Windows/Linux
(OS)
MySQL
PostgreSQL
Oracle
(データベース)
JSPで書くと
掲示板(Webアプリ)
Apache
(Webサーバー)
Struts
(フレームワーク)
Tomcat
(サーブレットコンテ
ナ)
Demo
Commonsライブラリ
その他ライブラリ(Jakarta Standard 1.1
Taglib)
(ライブラリ・コンポーネント)
Java(実行環境・開発環境)
Windows/Linux
(OS)
MySQL
PostgreSQL
Oracle
(データベース)
処理の流れ
MVCとStruts1
出典:「Javaの道」<http://www.javaroad.jp/>(2009.1.30)
出典:「ITpro」
<http://itpro.nikkeibp.co.jp/article/COLUMN/20051107/224077/?SS=imgview&FD=2638409>(20
09.1.30)
Struts1で書くと
掲示板(Webアプリ)
Apache
(Webサーバー)
Struts 1.3.10
(フレームワーク)
Tomcat
(サーブレットコンテ
ナ)
Demo
Commonsライブラリ
その他ライブラリ(Jakarta Standard 1.1
Taglib)
(ライブラリ・コンポーネント)
Java(実行環境・開発環境)
Windows/Linux
(OS)
MySQL
PostgreSQL
Oracle
(データベース)
MVCとStruts2
出典:「CodeZine」
<http://codezine.jp/article/detail/2296?p=2> (2009.1.30)
Struts2で書くと
掲示板(Webアプリ)
Apache
(Webサーバー)
Struts 2.1.6
(フレームワーク)
Tomcat
(サーブレットコンテ
ナ)
Demo
Commonsライブラリ
その他ライブラリ(Jakarta Standard 1.1
Taglib)
(ライブラリ・コンポーネント)
Java(実行環境・開発環境)
Windows/Linux
(OS)
MySQL
PostgreSQL
Oracle
(データベース)
処理の流れ
出展:Codezine
http://codezine.jp/article/detail/3264(2009.2.28)
インターセプターとは?
Actionの実行前に呼ばれる
バリデーションやログイン処理など、ビジネスロジックと
は関係なしに事前に行いたい処理を実装する
バリデータ
Struts1
Validator.xml設定ファイルに記述
Validatorメソッドをオーバーライド
Struts2
上記2つに加えてアノテーションが使えるようになった
クラス単位、アクセッサ単位で定義
ただし、Validatorメソッドオーバーライドはフォームからアクショ
ンクラスに
今後の予定
もう少しStruts2の機能に注目してみよう
新しくなったカスタムタグ
Springとの連携
いろいろ調べて発見したStruts2のアツい仕様の紹介
メモ
アノテーション
リフレクション
デザインパターン
DI (Dependency Injection)コンテナ
POJO (Plain Old Java Object)