JavaServlet&JSP入門 01K0018 中村太一 目次 Servelt,JSPの概要 Tomcatの導入、実行 Servelt入門 JSP入門 応用例:Servelt +JSP 概要 サーバ ブラウザ リクエスト Servlet レスポンス (HTMLな ど) サーブレットとはサーバ側で動くJavaプログラムで、HTMLの生成や、 データベースへのアクセスなどを様々な事を行える。 クライアント側(ブラウザなど)から見ればCGIと同じである。 Servletを実行する為にはWebサーバのほかにServletエンジン(Tomcat など)と呼ばれるソフトが必要。 JSP(JavaServerPage)とはHTMLの中にJavaのコードを書き手軽に Servletが使えるようにしたもの。 Tomcatの導入と実行(win98) Tomcatのインストール I. http://jakarta.apache.org/ にアクセス。 II. Download → Binaries → Tomcat3.3.1 → → jakarta-tomcat-3.3.1.zip をダウンロード。 III. Zipファイルを解凍し、そのファイルを「c:\jakarta-tomcat-3.3.1」に置く。 設定 I. II. III. C:\Autoexec.bat をテキストエディタ(メモ帳とか)で開き、“TOMCAT_HOME=C:\jakartatomcat-3.3.1”の一行を加える。 C:\jakarta-tomcat-3.3.1\bin\startup.bat のアイコンを 右クリック → 「プロパティ」 → 「メモリ」 「環境変数の初期サイズ」を最大にする。 C:\jakarta-tomcat-3.3.1\bin\shutdown.batについても上と同じように設定する。 実行と終了 I. 実行:C:\jakarta-tomcat-3.3.1\bin\startup.batを実行 II. 終了:C:\jakarta-tomcat-3.3.1\bin\shutdown.batを実行 確認 I. ブラウザを起動して「http://localhost:8080」にアクセスする (Proxyは外す) Servleth入門 ① 単純にHTML生成してを返すだけのServletを作 ります クラスファイルはC:\jakarta-tomcat3.3.1\webapps\test\Web-Inf\classes に保 存されるようにします。 Juuilderの「プロパティー」の「出力」にこれを 設定して下さい。 import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class servletTest extends HttpServlet{ //グローバル変数初期化 public void init( ServletConfig config )throws ServletException{ super.init(config); } //HTTP Getリクエスト public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String visitor = request.getParameter("name"); if( null == visitor ) visitor = "World"; response.setContentType("text/html"); PrintWriter out = new PrintWriter(response.getOutputStream()); out.println("<html>"); out.println("<body><h1>Hello " + visitor + "</h1></body>"); out.println("</html>"); out.close(); } } Servlet入門 ② 実行: ブラウザを開いてhttp://localhost:8080/fst/servlet/servletTest にアクセス。 ブラウザに “ Hello, World ”と表示されれば成功。 次にhttp://localhost:8080/fst/servlet/servletTest?name=tom にアクセス ブラウザには “ Hello , Tom “ と表示されます。 Servletの欠点: Servletでは、HTMLを生成するためにはまず、PrintWriterオブジェクトを生成し 一行のHTMLを生成する毎に out.println(“ ・・・”); と書かなくてはいけません。 これでは、効率が悪くなってしまいます。 また、後からHTML部分を変更したくなった時に変更が難しくなります。 JSP(JavaServerPage)ではこれらの欠点を解決します。 JSP入門 ① 先ほどのServletの例と同じモノをJSPで実現し ます。 下記のような「jspTest.jsp」というファイルを C:\jakarta-tomcat-3.3.1\webapps\test に作っ てください <HTML> <% String visitor = request.getParameter("name"); if ( visitor == null ) visitor = "WORLD"; %> <BODY> <H1> Hello , <%= visitor %> ! </H1> </BODY> </HTML> ソースの説明: <% String visitor = request.getParameter(“name”); if ( visitor == null ) visitor = “WORLD”; %> “name”パラメータの値をvisitorに代入し、 もし何も無い時は“ WORLD ”を代入する <%= visitor %> visitorをStringとして埋めこむ JSP入門 ② 実行: ブラウザから http://localhost:8080/fst/jspTest.jsp にア クセスすると ブラウザの画面には “ Hello WORLD! ”と表示されるはずです。 次にURLに“ ?name=Tom ”を加えて http://localhost:8080/fst/jspTest.jsp?nam e=tom にアクセスします。 すると、 “ Hello tom! ”と表示されます。 JSPを使う理由: 1. 「表示と実装の分離」 取得したデータの処理やデータベースへ のアクセスなどの実装をServletが担当し、 JSPはServeltから渡されたデータを表示す るだけに分離すれば、どちらかを変更しな ければいけないとき もう片方を変更しな くてもすみます。 2. 「作業の分担」 表示と実装を分離する事で、実装部分を 担当するJavaプログラマはWebページの 構成など、表示部分を考えなくてすむ。 表示部分のWebページ開発者はプログラ ムがどうなっているか、知る必要も考える 必要もなくなります。 応用例:Servlet+JSP ① 応用例としてServletとJSPを使ったFAQ(よくある質問と答えを集 めたもの)生成アプリケーションの例を紹介します。 Webサイトの管理者がFAQを直接HTMLで書くのではなく、Web サイト経由で作ることができるようなアプリケーションをServletと JSPを使って作ります。 応用例:Servlet+JSP ② メニュー JSP 追加 画面 保存 更新 メニュー 削除 メニュー 更新 画面 削除 画面 保存 保存 インターフェース: このアプリケーションを利用する FAQ管理者はFaqの追加、更新、 削除などを行います。上の図は、 FAQ管理者から見た画面の流れ です。 なお、画面は全てJSPで作ります。 JSP JSP Servlet DataBase アプリケーション設計: 単一の入り口として機能するサーブレットを用意 します。このサーブレットは次に表示すべきJSPを 呼び出したり、データベースにアクセスしたりしま す。 ここをサーブレットを使わずにJSPからJSPを呼 び出したり、データベースにアクセスする事も可 能ですが、そうするとJSPに複雑なJavaコードを書 くことになり「表示と実装の分離」が実現しません。 応用例:Servlet+JSP ③ 実行: http://localhost:8080/faqwapp/menu.jsp 参考資料: 「JSPによるWebアプリケーション制作」 おわり。
© Copyright 2024 ExpyDoc