2003年度 データベース論

JSPの基本
J2EE I
第2回 / 2005-12-17
1
今回の内容





JavaによるWebアプリケーション
JSPとはどういったものか
JSPの要素
サンプルプログラム
TomcatでJSPを動かす
2
JavaによるWebアプリケーション
3
Webアプリケーションの仕組み (1)
3層モデル

J2EEの基本パターン

「Webブラウザ」から「データベース」を使う。
4
Webアプリケーションの仕組み (2)
Servlet と JSP

Webアプリケーションでは、ユーザからの入力が
あると、その入力に応じたページを「動的に」作
成する。



例えばサーチエンジンは、検索語によってWebページ
のリストが変化する。
動的なページ作成のため、Javaでは Servlet と
JSP を使う。
どちらも「Webコンテナ」と呼ばれる環境の中で動
く。
5
Webアプリケーションの仕組み (3)
Servlet と JSP

Servlet



JSP




HttpServlet を継承する Javaプログラム。
HTML を埋め込める
ほとんどHTML
Javaプログラムを埋め込める
Webコンテナの内部ではServlet に変換される
普通は Servlet と JSP を組み合わせて使う。
6
Webアプリケーションの仕組み(4)
Servlet や JSP へのアクセス


Servlet や JSP は、それぞれ特定の URL
に結びつく。
例えば、loop.jsp という JSP が次のURLに
結びついていると・・・


http://localhost:8080/test/loop.jsp
このURLにアクセスがあると、loop.jsp が
動いて、必要な処理をしてブラウザに表示
される。
7
JSPとはどういったものか
8
JSP とは?


JavaServer Pages の略
HTML のソースに次のものを埋め込むこと
ができる。



特殊なタグ
Javaプログラム
Webコンテナの内部でServlet (Javaプログ
ラム) に変換される
9
JSP のサンプルから (1)
特殊なタグとJavaのプログラム
<%
for (int i = 1; i <=5; i++) {
%>
<p>サンプル <%= i %></p>
<%
}
%>
10
JSP のサンプルから (2)
for 文の対応関係
<%
for (int i = 1; i <=5; i++) {
%>
出力例)
<p>
サンプル<%= i %>
</p>
<%
}
%>
サンプル
サンプル
サンプル
サンプル
サンプル
1
2
3
4
5
11
JSPの要素
12
JSP の要素 (1)
ディレクティブ (1)

JSPページ全体に関わること
<%@ page pageEncoding=“Shift_JIS”
page contentType=“text/html;
charset=Shift_JIS” %>
<%@ page import=“java.uti.Date” %>
13
JSP の要素 (2)
ディレクティブ (2)
<%@ page pageEncoding=“Shift_JIS”

このJSPが “Shift_JIS” というエンコーディ
ングで記述されている。
14
JSP の要素 (3)
ディレクティブ (3)
page contentType=“text/html;
charset=Shift_JIS” %>

このJSPによって生成されるWebページが
text/html 型であり、”Shift_JIS” というエ
ンコーディングになっている。

「text/html型」はMIMEでの型 (後述)
15
JSP の要素 (4)
宣言


JSP ページで利用される変数
Servlet に変換されたときには、クラス中の
フィールドとなる。
<%! int i = 0; %>
<%! Circle c = new Circle(2.0); %>
16
JSP の要素 (5)
式


Javaの式
返す値に toString メソッドを適用して得ら
れる文字列に置き換わる
<%= i %>
<%= df.format(d) %>
17
JSP の要素 (6)
スクリプトレット


Javaのプログラム
途中でHTMLのタグが出現するときには、いった
んJSPのタグを閉じる。
<%
for (int i = 1; i <=5; i++) {
%>
<p>サンプル <%= i %></p>
<%
}
%>
18
サンプルプログラム
19
現在の日時を表示する
サンプル (1)
<%@ page pageEncoding="Shift_JIS"
contentType=“text/html;
charset=Shift_JIS" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.DateFormat" %>
<html>
<head>
<title>JSP: 現在の日時を示すサンプル</title>
</head>
20
現在の日時を表示する
サンプル (2)
<%
Date d = new Date();
DateFormat df =
DateFormat.getDateTimeInstance();
%>
<p>
いまは<br />
<%= df.format(d) %> <br />です。
</p>
21
Date と DateFormat

java.util.Date



ある特定の時点を表すクラス
Date d = new Date(); によって、d は作成さ
れた瞬間の時間の情報を持つ。
java.text.DateFormat


言語に依存せずに、日時の情報を取り扱うク
ラス。出力したり解析したり。
日本語の環境で実行すれば、日本語で出力
することもできる。
22
TomcatでJSPを動かす
23
Tomcat






Jakarta Project が作成している Webコン
テナ
Javaで書かれている
オープンソース
Servlet や JSP を動かすために必要
Apache に組み込んで使える
Tomcat 単独でも Webサーバとして使える
24
Tomcat のインストール

J2SE が必要



J2SE 5.0 --> Tomcat 5.5.x
J2SE 1.4 --> Tomcat 5.0.x
環境変数をセットする


JAVA_HOME と CATALINA_HOME
それぞれ、Java と Tomcat がインストールさ
れているフォルダを指定する
25
Tomcatに
Webアプリケーションを置く



%CATALINA_HOME%/webapps/ に配置
その中に test フォルダを作成する。
ひとつのファイル (war ファイル) にまとめても良い。
test/
|
|-- WEB-INF/ --- web.xml
|
|- classes/

|
|- lib/

|-- loop.jsp

必須
Servlet などのクラス
使用するライブラリ
JSP
26
web.xml (1)


Webアプリケーションの設定を記述する
XML ファイル
このファイルがなければ Webアプリケー
ションは動作しない。
27
web.xml (2)
<?xml version='1.0' encoding='UTF-8'?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
web-app_2_4.xsd"
version="2.4">
<display-name>JSP_Samples</display-name>
<description>
JSP Samples
</description>
</web-app>
28
web.xml (3)
<web-app>
<display-name>
JSP_Samples
</display-name>
<description>
JSP Samples
</description>
</web-app>
29
Webアプリケーションへの
アクセス




どこのホストで動いている?
どのポートで動いている?
どのWebアプリケーションを動かす?
この例では
http://localhost:8080/test/loop.jsp
30