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
© Copyright 2024 ExpyDoc