Presentation is loading. Please wait.

Presentation is loading. Please wait.

WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―

Similar presentations


Presentation on theme: "WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―"— Presentation transcript:

1 WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
データベース論 第9回

2 きょうの内容 Servlet の概要について学ぶ。特に、HTTPの要求と応答との関係に着目する。 Servlet の動かし方を学ぶ。

3 Webアプリケーションの仕組み (1) 3層モデル
Webアプリケーション (J2EE) の基本パターン

4 Webアプリケーションの仕組み (2) Servlet と JSP
HttpServlet を継承する Javaプログラム。 HTML を埋め込める (あまり使わないけど) JSP ほとんどHTML Javaプログラムを埋め込める (あまり使わないけど) どちらも「Webコンテナ」で動く。 普通は Servlet と JSP を組み合わせて使う。

5 Webアプリケーションの仕組み (3) データベースの必要性
図書データ 在庫リスト 掲示板の記事 「データ」は保存される (= 永続性を持つ) データベースを使うと面倒がなくて良い。 データをただのファイルで保存しておくと、遅いし面倒。

6 Tomcat Jakarta Project が作成している Webコンテナ オープンソース Servlet や JSP を動かすために必要
Apache に組み込んで使える Tomcat 単独でも Webサーバとして使える

7 Tomcat をインストールするときの 注意点
環境変数はセットしましたか? JAVA_HOME と CATALINA_HOME それぞれ、Java と Tomcat がインストールされているフォルダを指定する ポート番号は変更しましたか? (実習室の場合) インストール時に「NTサービス」にチェックを入れておくとはまりやすいかも。

8 TomcatにWebアプリケーションを置く
%CATALINA_HOME/webapps/ に配置 ひとつのファイル (war ファイル) にまとめても良い。 test/ | |-- WEB-INF/ --- web.xml  必須 | |- classes/  Servlet ・Beanなどの クラス | |- lib/  使用するライブラリ |-- loop.jsp  JSP

9 Webアプリケーションへのアクセス どこのホストで動いている? どのポートで動いている? どのWebアプリケーションを動かす? この例では

10 JSP のサンプルから (1) 特殊なタグとJavaのプログラム
<% for (int I = 1; I <=5; I++) { %> <p>サンプル <%= I %></p> }

11 JSP のサンプルから (2) for 文の対応関係
<% for (int I = 1; I <=5; I++) { %> <p>サンプル <%= I %></p> } 出力例) サンプル 1 サンプル 2 サンプル 3 サンプル 4 サンプル 5

12 HTTP

13 JSPと要求・応答 要求の処理には、request という変数を使う。 応答の処理には、response という変数を使う。
request.getMethod() request.getRequstURI() request.getProtocol() request.getRemoteAddr() 応答の処理には、response という変数を使う。

14 JSPを使ったクエリーの処理 <%= request.getParameter("familyName") %>
GET でも POST でも利用できる。

15 JavaBeansのルール プロパティ Bean の持つ「属性」のこと 本をあらわす Bean であれば、次のものがプロパティ タイトル
著者 出版社 など

16 「本」を表す Bean public class Book implements Serializable {
private String title; public Book() { …..} public String getTitle() { return title;} public void setTitle(String t) { title = t; } ….. }

17 メソッドのネーミングルールとプロパティ title というプロパティがある
setTitle() や getTitle() というメソッドがある。 title というフィールドがあることを意味しない。 setTitle() や getTitle() というメソッドがある title というプロパティがある。 メソッドがあるから、プロパティが存在する

18 setter と getter setter getter どちらかが存在するだけでプロパティになりうる
setTitle() というスタイルのメソッド プロパティに値をセットする getter getTitle() というスタイルのメソッド プロパティの値を得る どちらかが存在するだけでプロパティになりうる

19 setter と getter とプロパティ setter  setTitle() Getter  getTitle()
プロパティ名では、先頭が小文字

20 JSP から JavaBeans を呼び出す JSPで3つのタグを使う タグだけで書けるので、スクリプトレットの量を減らせる。
<jsp:useBean ….. /> <jsp:getProperty ….. /> <jsp:setProperty ….. /> タグだけで書けるので、スクリプトレットの量を減らせる。

21 Servlet とは HttpServlet というクラスを継承したクラス。必要なメソッドをオーバーライドする。
CGIと同じように、プログラムの中から HTML を出力できる。 JSPも、Tomcatの内部では Servlet に変換される。

22 Servlet のメソッド HTTPのGETメソッドに対して  doGet
public void doGet(HttpServletRequest req, HttpServletResponse res) HTTPのPOSTメソッドに対して  doPost public void doPost(HttpServletRequest req,

23 HttpServletRequest と HttpServletResponse
HTTPの「要求」に対応する HttpServletResponse HTTPの「応答」に対応する

24 Servlet のコンパイル 次のパッケージはJ2SEには入っていない。
javax.servlet パッケージ javax.servlet.http パッケージ Tomcat にはこのパッケージが含まれているので、classpath に含めてコンパイル Java –classpath “%CATALINA_HOME%”\common\lib\servlet.jar” LoopServlet.java

25 Tomcat への配置 Servlet はコンパイルしておくこと。 WEB-INF/classes フォルダに置く。
WEB-INF/ --- web.xml |- classes/ --- LoopServlet.class | |- DateServlet.class |- lib/

26 web.xml の編集 Servlet を置いただけでは動かない。 web.xml を編集する必要あり。

27 web.xml の例 (抜粋) <servlet>
<servlet-name>loop</servlet-name> <servlet-class>LoopServlet</servlet-class> </servlet> (中略) <servlet-mapping> <url-pattern>/loop</url-pattern> </servlet-mapping>

28 Servlet へのアクセス web.xml の url-pattern 要素で指定した URL にアクセスする。

29 Servlet と JSP の使い分け Servlet JSP
Servlet から HTML を出力させると、プログラムの見通しが悪くなる。 Servlet ではプログラムに専念するのがよい。 JSP JSP でスクリプトレットを使うと、読みにくい。 JSP では、できる限りタグを出力するのがよい。

30 タグライブラリ JSPの中で定義できる独自のタグ。 スクリプトレットを減らすことができる。

31 タグライブラリの例 <ul> <c:forEach var="book" items="${bookList.iterator}" > <li> <c:out value="${book.title}" /> / <c:out value="${book.author}" /> </li> </c:forEach> </ul>

32 MVCモデル2 Servlet がHTTPの要求を処理する。 処理した結果を JavaBeans にまとめる。
データベースへのアクセスなど 処理した結果を JavaBeans にまとめる。 Servlet は JavaBeans (または、Beans をまとめたコレクション) を JSP に渡す。 JSP はタグライブラリを駆使して処理結果を出力する。 Bean のプロパティを出力する


Download ppt "WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―"

Similar presentations


Ads by Google