Webアプリケーション開発入門 Introduction to Web Application Development 大岩研究会 今野隆平 2002年5月9日 本日の目標 Webアプリケーションを作る! Webアプリケーションとは Webブラウザからサーバ上のサービスを受けられる(第1回目のサブゼミより) Webアプリの例として前回とりあげられたものは・・・ 掲示板、検索エンジンなど 質問① 掲示板はWebアプリと言えるか? 動的なページ ≠ Webアプリ Webアプリは人を幸せにするコンセプトを持っている! 質問② ログインはどうでしょう? それだけでは単なる動的なページ 例:ログイン後に履修登録が行えるからログインを含めてWeb履修システ ムはWebアプリと言える 上の例を使えば、ログイン画面、ログイン認証プログラム、授業選択画面、 などWeb履修登録に関係するファイルを全てまとめてWebアプリととらえる サーバサイドJava技術はWebアプリを作るためにある! CGIとサーバサイドJavaでWebアプリを2つ作ってみた・・・何が違うだろう? /public_html loginA.html loginB.html 数多くのファイルが関連するWebアプリの扱いが大変! Webアプリという概念がない /cgi CGIは動的なページを作るにとどまる技術 loginA.cgi 2個目を作ると・・・ loginB.cgi 例 CGIの場合、どのファイルがどのWebアプリに関連しているのがわかりにくい サーバサイドJavaでWebアプリを作る場合、1つのディレクトリに関連するファイ ルをすべて設置する。そしてそのディレクトリを1つのソフトウェアのように扱う WebアプリAに関する WebアプリBに関する HTMLファイル 例 /WebアプリB Webアプリを一つのディレクトリで管理する仕組みがある サーブレット実行ファイル Webアプリという概念がある 画像ファイル 2個目を作ると・・・ サーバサイドJavaはWebアプリを作るための技術 などをまとめて管理する などまとめて管理する /WebアプリA サーブレットとは サーバ側で動作するJavaのプログラム クライアント(ブラウザなど)からHTTPリクエストがくると実行される HTTPリクエストを受け取り何らかの処理をしてHTTPレスポンスで結果を返す 単独では動作せず、サーブレットを実行できる環境が必要 普通のJavaプログラムの実行 main(){ _________ _________ _________ } java HOGE 実行 Servletプログラムの実行 doGet(){ _________ _________ ________ } アプリケーションサーバ サーブレットはアプリケーションサーバが実行する HTTPリクエスト 実行 アプリケーションサーバとは 別名をWebアプリケーションサーバと言う WebサーバをWebアプリケーションのために拡張したもの HTTPで通信する サーブレットなどのサーバサイドJavaの実行環境を実装している Webアプリを管理するために便利な機能を持つ 各Webアプリを一つのディレクトリで管理する 各Webアプリごとに決まりごとを設定できるなど・・・ アプリケーションサーバ Tomcat Tomcatはアプリケーションサーバの一つである サーブレットコンテナ クライアントとWebアプリが HTTPリクエスト/レスポンスを利用して 対話するときの仲介役になる Webサーバ サーブレット クライアントとサーブレットがHTTPリクエスト/レスポンスを利用して 対話するのを見る(復習) それでは前回作ったサーブレットをGETリクエストで起動してみよう ①Tomcatを起動する ②DOSプロンプトを開く ③C:>telnet localhost 8080 と打って改行 ④GET /examples/servlet/SampleServlet HTTP/1.1 と打って改行2回 手順 するとこんなHTTPレスポンスがサーブレットから帰ってくる HTTP/1.1 200 OK Content-Type: text/html Date: Wed, 08 May 2002 07:32:58 GMT Server: Apache Tomcat/4.0.1-b1 (HTTP/1.1 Connector) Connection: close <html> <body> <h1>Hello Sample Servlet World!</h1> </body> </html> ホストとの接続が切断されました。 クライアントからのリクエストに対して サーブレットが処理した結果を 送信してきたのが分かりましたか? 今行われたことをプログラミングの面から見てみる doGet(HttpServletRequest req, HttpServletResponse res){ res.setContentType(“text/html”); GET /examples/servlet/SampleServlet Content-Type: text/html PrintWriter out = res.getWriter(); HTTP/1.1 Accept: image/gif, image/x-xbitmap, out.println(“<html>”); image/jpeg, image/pjpeg, out.println(“<body>”); application/vnd. ms-powerpoint, out.println(“<h1>Sample Servlet World</h1>”); application/vnd.ms-excel, application/msword, */* out.println(“</body>”); Accept-Language: ja Accept-Encoding: gzip, deflate out.println(“</html>”); User-Agent: Mozilla/4.0 } (compatible; MSIE 6.0; Windows NT 5.0) Host: localhost:10000 Connection: Keep-Alive リクエスト・メッセージ Date: Wed, 08 May 2002 07:32:58 GMT Server: Apache Tomcat/4.0.1-b1 (HTTP/1.1 Connector) Connection: close <html> <body> <h1>Hello Sample Servlet World!</h1> </body> </html> レスポンス・メッセージ クライアントに処理結果を反映させたレスポンスを送る Webアプリケーションを作る 以下の手順でWebアプリケーションを作ります。 ①Webアプリ用のディレクトリの準備 ②WEB-INFディレクトリを作る ③web.xmlファイルを作る ④プログラム書く ⑤プログラムをコンパイルする ⑥クラスファイルを配置する したの3つは実習課題です。とりあえず、上の3つを順を追ってみていきましょう。 Webアプリケーションには以下の決まりごとがある Webアプリケーションのファイル構成 /Webアプリ名/WEB-INF/classes /WEB-INF/lib /WEB-INF /web.xml /index.html /top.gif Webアプリケーションの呼び出し方法 (web.xmlで指定可) サーブレットの呼び出し http://ホスト名:ポート番号/webアプリ名/servlet/クラス名 例:http://localhost:8080/examples/servlet/SampleServlet HTMLファイルの呼び出し http://ホスト名:ポート番号/webアプリ名/index.html Webアプリの宣言 TOMCAT_HOME/webapps/直下に新しいディレクトリを作る TOMCAT_HOME/webapps/Webアプリ名 このディレクトリがルートになる http://localhost:8080/Webアプリ名/からこのWebアプリ にアクセスする TOMCAT_HOME/ webapps Webアプリ名 WEB-INFディレクトリを作る TOMCAT_HOME/webapps/Webアプリ名以下にWEB-INFディレクトリを作成 する その中にコンパイルしたくラスを配置するclassesディレクトリを作る クラスファイルを格納するディレクトリ。Web アプリケーションを実行する際にはここ がクラスパスに自動的に設定される。作成したサーブレットはここに置く必要がある。 そしてさらにjarファイルを収めるためのlibディレクトリを作る WEBアプリケーションで使う beansなどのjar形式のアーカイブをここに格納する。 実行時には自動的にクラスパスに設定される。ここは今は気にしないように。 Webアプリ名 WEB-INF classes lib WEB_INF/web.xmlファイルを作る ディレクトリの準備ができたので、このWEBアプリケーションの設定ファイルで あるweb.xml をWEB-INF以下に作成する。 web.xmlを使うとWebアプリごとに決まりごとを設定できる! 具体的には以下のようなものが設定できる ①サーブレットの初期化パラメータ ②セッションコンフィグレーション ③サーブレット/JSPの定義 ④サーブレット/JSPのマッピング ⑤MIMEタイプのマッピング ⑥ウェルカムファイルリスト ⑦エラーページ ⑧セキュリティー 基本ファイル構成の出来上がり Webアプリ名 WEB-INF classes lib web.xml 今回設定するのはサーブレットの定義とマッピングです。ここではとりあえず、 骨組みだけ書いて置いて置きましょう。 では実習課題 日付を表示するサーブレットを作ってさっきのやり方で簡単なWeb アプリを作る 自分のWebアプリにトップページを加えてください。上で作った サーブレットをリンクで呼び出せるようにしてください。HTMLファイ ルの置き場所に気をつけてください。
© Copyright 2024 ExpyDoc