PowerPoint ファイル

Webアプリケーションと
JSPの基本
ソフトウェア特論
第4回
この講義のWebページ
http://www.wakhok.ac.jp/~tomoharu/tokuron2003/
きょうの内容


Webアプリケーションの概要を知る。
JSPの基本について理解する。
Webアプリケーションとは何か

Webアプリケーションとは、「ユーザがWebブラウ
ザを使って何かを入力し、必要な結果を得る」Web
ページ。
–
サーチエンジン、本の検索、商品の購入、掲示板など
Webアプリケーションの仕組み (1)
3層モデル

Webアプリケーション (J2EE) の基本パターン
Webアプリケーションの仕組み (2)
動的なページの作成



動的なページ → ユーザからの入力に応じて出力
結果が変化
静的なページ → 普通のページ
通常は CGI
–
–
CGIは呼ばれるたびにプロセスを生成するので、遅くな
る。
セッション管理が大変。
Webアプリケーションの仕組み (3)
Servlet と JSP

Servlet
–
–

JSP
–
–


HttpServlet を継承する Javaプログラム。
HTML を埋め込める (あまり使わないけど)
ほとんどHTML
Javaプログラムを埋め込める (あまり使わないけど)
どちらも「Webコンテナ」で動く。
普通は Servlet と JSP を組み合わせて使う。
Webアプリケーションの仕組み (4)
データベースの必要性

Webアプリケーションは「データ」を処理する。
–
–
–


図書データ
在庫リスト
掲示板の記事
「データ」は保存される (= 永続性を持つ)
データベースを使うと面倒がなくて良い。
–
データをただのファイルで保存しておくと、遅いし面倒。
HTTP



最初に、ホスト名とポート番号を使って接続を確立
「要求」を出して「応答」がくる。
ブラウザが応答の中身を表示する。
http://localhost:8080/examples/jsp/i
ndex.html を見る場合





URL を解釈する
localhost の 8080 番に接続
「/examples/jsp/index.html をくれ!」 (要求)
「はい、お渡しします」と index.html を渡す (応答)
Index.html を表示
JSP とは?


JavaServer Pages の略
HTML のソースに次のものを付け加えている。
–
–
特殊なタグ
Javaプログラム
JSP のサンプルから (1)
特殊なタグとJavaのプログラム
<%
for (int i = 1; i <=5; i++) {
%>
<p>サンプル <%= i %></p>
<%
}
%>
JSP のサンプルから (2)
for 文の対応関係
<%
for (int i = 1; i <=5; i++) {
%>
<p>サンプル <%= i %></p>
<%
}
%>
出力例)
サンプル 1
サンプル 2
サンプル 3
サンプル 4
サンプル 5
JSP の要素 (1)
ディレクティブ

JSPページ全体に関わること
<%@ page pageEncoding=“Shift_JIS”
page contentType=“text/html;
charset=Shift_JIS” %>
<%@ page import=“java.uti.Date” %>
JSP の要素 (2)
宣言

JSP ページで利用される変数
<%! Int i = 0; %>
<%! Circle c = new Circle(2.0); %>
JSP の要素 (3)
式


Javaの式
返す値に toString メソッドを適用して得られる文
字列に置き換わる
<%= i %>
<%= df.format(d) %>
JSP の要素 (4)
スクリプトレット

Javaのプログラム
<%
for (int i = 1; i <=5; i++) {
%>
<p>サンプル <%= i %></p>
<%
}
%>
HTMLのフォーム (1)
画面イメージ

Webブラウザから何かを入力してもらうために使う。
HTMLのフォーム (2)
HTMLのソース
<p>姓名を入力してください:</p>
<form method=“get” action=“name.jsp”>
<p>姓: <input type=“text” name=“familyName”
/></p>
<p>名: <input type=“text” name=“givenName”
/></p> <input type=“submit” value=“実行” />
<input type=“reset” value=“キャンセル” />
</form>
フォームとプログラム


「実行」ボタンが押されると、HTTPの要求を用いて、
フォームに入力したデータがプログラムに渡される。
プログラムに渡すときは、HTTPの次のメソッドを
使う。
–
–
GET
POST
HTTPの要求・応答とJSP

要求の処理には、request という変数を使う。
–
–
–
–

request.getMethod()
request.getRequstURI()
request.getProtocol()
request.getRemoteAddr()
応答の処理には、response という変数を使う。
JSPを使ったクエリーの処理
<%= request.getParameter("familyName") %>


getParameter というメソッドを使って、
familyName パラメータの値を取得する。
GET でも POST でも利用できる。
Tomcat






Jakarta Project が作成している Webコンテナ
Javaで書かれている
オープンソース
Servlet や JSP を動かすために必要
Apache に組み込んで使える
Tomcat 単独でも Webサーバとして使える
Tomcat のインストール


J2SE が必要
環境変数をセットする
–
–


JAVA_HOME と CATALINA_HOME
それぞれ、Java と Tomcat がインストールされている
フォルダを指定する
ポート番号を変更する (本学実習室の場合)
インストール時に「NTサービス」にチェックを入れ
ない方がよい。
TomcatにWebアプリケーションを置く


%CATALINA_HOME%/webapps/ に配置
ひとつのファイル (war ファイル) にまとめても良い。
test/
|
|-- WEB-INF/ --- web.xml
|
|- classes/
|
|- lib/
|-- loop.jsp
 必須
 Servlet などのクラス
 使用するライブラリ
 JSP
Webアプリケーションへのアクセス




どこのホストで動いている?
どのポートで動いている?
どのWebアプリケーションを動かす?
この例では
http://localhost:8080/test/loop.jsp