2003年度 データベース論

2004年度 サマースクール in 稚内
JavaによるWebアプリケーション入門
稚内北星学園大学
情報メディア学部
専任講師 安藤 友晴
1
本講座の講義内容





Webアプリケーションの基礎が中心
Webの基本となるHTTPプロトコルと、
Servlet / JSP
JDBCとデータベース
MVCモデル2によるWebアプリケーションの
基本
Jakarta Struts
2
この講座のスケジュール (1)

8/2


8/3



午後 J2EE概説 / JSP
午前 HTTP
午後 JavaBeans / タグライブラリ
8/4


午前 Servlet
午後 JDBC / JDBC (2)
3
この講座のスケジュール (2)

8/5



午前 セッション管理 / MVCモデル2
午後 Struts (1) / Struts (2)
8/6

午前 Struts (2)
4
この講習のWebページ
www.wakhok.ac.jp/~tomoharu/web2004/
5
J2EE概説
Javaによる
Webアプリケーション入門
第1回
6
3つのJava

J2SE


J2ME


PCなどで利用されるJava。Javaの基本部分。
携帯電話やPDAなどで利用されるJava。
J2EE

企業情報システムなど、アプリケーションサー
バで利用されるJava。
7
J2EE

Web と データベースの組み合わせを強く
意識。
8
2種類のWebページ

静的なページ


普通のページ。見るだけのもの。
動的なページ


ユーザがWebページに何か入力して使うもの
サーチエンジンなど
9
サーチエンジンの動き
1.
2.
3.
4.
5.
サーチエンジンのページを呼び出す。
調べたい言葉を入力する。
検索ボタンを押す。
その言葉に関するWebページのリストが
出力される。
リストの中からWebページを選んで見て
みる。
10
サーチエンジンの動きを
整理すると・・・



調べたい言葉を入力すると、Webページの
リストが出てくる。
入力した言葉によって、出力されるページ
が違う。
そのためには、サーバ側で何かの処理が
行われている。
11
Webアプリケーションとは何か

Webアプリケーションとは、「ユーザがWeb
ブラウザを使って何かを入力し、必要な結
果を得る」Webページ。

サーチエンジン、本の検索、商品の購入、掲
示板など
12
なぜWebアプリケーションか

アプリケーションを使う側の理由



特定のソフトをインストールしなくても、Webブ
ラウザがあれば良い。
操作は簡単。
アプリケーションを提供する側の理由


既存のWebサーバをそのまま使える。
集中管理できるので楽。
13
CGI




動的なページ → ユーザからの入力に応じ
て出力結果が変化
静的なページ → 普通のページ
CGIで動的なページを生成する。
CGIはWebサーバ上で動く。
14
CGI で困ること



CGIは呼ばれるたびにプロセスを生成する
ので、重い。負荷が集中すると辛い。
セキュリティを保つのも大変。
大規模で安全な処理が要求されるシステ
ムでは、CGI だと大変。

ショッピングサイトなど
15
Java製アプリケーション・サーバ



大規模な商用システムにも耐えうるシステ
ムが必要。
こうしてうまれたのが「アプリケーション・
サーバ」
アプリケーション・サーバの多くがJavaで作
られている。
16
なぜ Javaを使うのか? (1)

この場合、Javaは速い



ライブラリ・ツールの充実


GUIも使ってないし、いちいち起動する必要も
ない。
プロセスではなく、スレッドで処理
もともと揃っているうえに、最近は特に充実。
HTMLとプログラムの分離が容易

他ではなかなか難しい。
17
なぜ Javaを使うのか? (2)

Java言語そのものの信頼性



Cなどと違い、ポインタ演算がないので、暴走
する危険性が極めて少ない。
ガベージコレクションによる不要オブジェクトの
回収
セキュリティが考慮されている言語仕様
18
で、実際はどう?





大規模なビジネスアプリの世界では、Java
ベースの「アプリケーション・サーバ」が流行。
Oracle, BEA, IBM, Sun, Apple など大手の
ベンダーが採用。
顧客サービスの提供
COBOLベースの事務情報システムの置き換
え。
現在のJavaの主戦場
19
欠点はないの?

個人ベースでは使いにくいかも



もともと大規模システム向き。
ユーザCGIのような仕組みはない。
教育コストがかなりかかる

勉強すべきことはけっこう多い
20
Webアプリケーションの仕組み (1)
3層モデル

J2EEの基本パターン
21
Webアプリケーションの仕組み (2)
Servlet と JSP

Servlet



JSP




HttpServlet を継承する Javaプログラム。
HTML を埋め込める (あまり使わないけど)
ほとんどHTML
Javaプログラムを埋め込める (あまり使わない
けど)
どちらも「Webコンテナ」で動く。
普通は Servlet と JSP を組み合わせて使う。
22
Webアプリケーションの仕組み (3)
データベースの利用

Webアプリケーションは「データ」を処理す
る。





図書データ
在庫リスト
掲示板の記事
「データ」は保存される (= 永続性を持つ)
データベースを使うと面倒がなくて良い。

データをただのファイルで保存しておくと、遅
いし面倒。
23
本講座の講義内容





Webアプリケーションの基礎が中心
Webの基本となるHTTPプロトコルと、
Servlet / JSP
JDBCとデータベース
MVCモデル2によるWebアプリケーションの
基本
Jakarta Struts
24