JavaServlet&JSP入門

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アプリケーション制作」
おわり。