JSPの基本 J2EE I (データベース論) 第8回 / 2004-06-16
お知らせ http://www.wakhok.ac.jp/~tomoharu/db2004/ 第1回レポート課題を出しています。締め切りは6月16日(水)です。 http://www.wakhok.ac.jp/~tomoharu/db2004/
ここでの内容 JSPの基本について理解する。
Webアプリケーションの仕組み (1) 3層モデル J2EEの基本パターン
Webアプリケーションの仕組み (2) Servlet と JSP Javaでは Servlet と JSP を使う。 どちらも「Webコンテナ」と呼ばれる環境の中で動く。
Webアプリケーションの仕組み (3) Servlet と JSP HttpServlet を継承する Javaプログラム。 HTML を埋め込める JSP ほとんどHTML Javaプログラムを埋め込める Webコンテナの内部ではServlet に変換される 普通は Servlet と JSP を組み合わせて使う。
JSP とは? JavaServer Pages の略 HTML のソースに次のものを埋め込んでいる。 特殊なタグ Javaプログラム Webコンテナの内部でServlet (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 ページで利用される変数 変換された後の Servlet では、クラス中のフィールドとなる。 <%! int i = 0; %> <%! Circle c = new Circle(2.0); %>
JSP の要素 (3) 式 Javaの式 返す値に toString メソッドを適用して得られる文字列に置き換わる <%= df.format(d) %>
JSP の要素 (4) スクリプトレット Javaのプログラム <% for (int i = 1; i <=5; i++) { %> <p>サンプル <%= i %></p> }
現在の日時を表示する サンプル (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>
現在の日時を表示する サンプル (2) <% Date d = new Date(); DateFormat df = DateFormat.getDateTimeInstance(); %> <p> いまは<br /> <%= df.format(d) %> <br />です。 </p>
Tomcat Jakarta Project が作成している Webコンテナ Javaで書かれている オープンソース Servlet や JSP を動かすために必要 Apache に組み込んで使える Tomcat 単独でも Webサーバとして使える
Tomcat のインストール J2SE が必要 環境変数をセットする ポート番号を変更する (本学実習室の場合) JAVA_HOME と CATALINA_HOME それぞれ、Java と Tomcat がインストールされているフォルダを指定する ポート番号を変更する (本学実習室の場合) インストール時に「NTサービス」にチェックを入れない方がよい。
Tomcatに Webアプリケーションを置く %CATALINA_HOME%/webapps/ に配置 その中に test フォルダを作成する。 ひとつのファイル (war ファイル) にまとめても良い。 test/ | |-- WEB-INF/ --- web.xml 必須 | |- classes/ Servlet などのクラス | |- lib/ 使用するライブラリ |-- loop.jsp JSP
web.xml (1) Webアプリケーションの設定を記述する XML ファイル
web.xml (2) <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>JSP_Samples</display-name> <description> JSP Samples </description> </web-app>
web.xml (3) <web-app> <display-name> JSP_Samples <description> JSP Samples </description> </web-app>
Webアプリケーションへの アクセス どこのホストで動いている? どのポートで動いている? どのWebアプリケーションを動かす? この例では http://localhost:8080/test/loop.jsp