TomcatによるWebアプリケーション開発入門

Slides:



Advertisements
Similar presentations
ネットワークプログ ラミング論 平成27年 11 月 1 6日 森田 彦. 【基礎課題 6-1 】の解答 ① サーブレットを記述して保管するとコン パイルが自動的に行われる。 ② サーブレットの記述後、開発者がコンパ イル命令を実行しなければならない。 ③ プロジェクト名が Web アプリケーション.
Advertisements

Web アプリケーション開発入門 大岩研究会 今野隆平 2002 年 5 月 9 日 Introduction to Web Application Development.
Web アプリケーション開発 ~図書館管理システム~ 北海道情報大学 情報メディア学 部 情報メディア学科 新井山ゼミ 高橋 隼.
1 JSP の作成 JSF による Web アプリケーション 開発 第 4 回. 2 ここでの内容 JSF での JSP の作り方と動かし方につい て学ぶ。
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
Servlet 矢口 洋介 清水 麗雄. 準備  Java フォルダに入ってから mkdir Servlet ln – s ~/public_html/Servlet.  フォルダの移動 cd public_html/Servlet/WEB-INF/classes/*.  ファイルのコピー cp.
ASP入門 - Windows 2000 Server 活用 -.
IIS 4.0で開発をするコツ Webアプリケーション構築.
社会人学習講座 「Javaプログラミング概論」
情報基礎A 情報科学研究科 徳山 豪.
難しいことは置いといて、 取り合えず 「BlazeDS」 を使って、 Flash、AIRアプリから Javaオブジェクトのメソッドを呼び出すための 手順書(Windows版) 2008年2月 Lecce.
知的システム構築工房   Linux設定セミナーシリーズ 第5回 Webアプリ作成 2011年3月16日(水) 株式会社 アセンディア 1.
Webアプリケーションの 通信メカニズム WEBアプリ研究プロジェクト 第2回.
JPAを利用した RESTful Webサービスの開発
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
プログラミング基礎I(再) 山元進.
Applet 岡部 祐典 鈴木 敬幸.
Struts1.xの脆弱性(CVE ) に対するSDEの対処:wrapタイプ (パッチのご提供)
JSFによるWebアプリケーション開発 第11回
Servlet J2EE I 第8回 /
アプレット (Applet)について.
Servlet入門(2) 入力フォームをつかったWebアプリ
ネットワークプログラミング論 平成27年10月12日 森田 彦.
卒研:データベースチーム 第4回 JSP、サーブレット
JavaServlet&JSP入門 01K0018 中村太一.
Webアプリケーション.
第4回 個人の動画配信補足のためのWeb構築
Web App Semi 2008 #1 Web App Semi 2008 #1.
WebサービスII (第8回) 2007年11月14日 植田龍男.
HTTPプロトコルとJSP (1) データベース論 第3回.
Webを利用した授業支援システムの開発 北海道工業大学 電気電子工学科 H 渋谷 俊彦.
Curlの仕組み.
JavaBeans とJSP データベース論 第5回.
HTTPプロトコル J2EE I 第7回 /
Javaプログラムの実行まで バイト Javaの コード 実行 ソースコード Java ファイル名 ファイル名 abc.java
JSPの作成 J2EE II 第3回 2005年4月10日.
Servlet入門(2) 入力フォームをつかったWebアプリ
ネットワークプログラミング論 平成28年10月17日 森田 彦.
ServletによるWebアプリ作成 入門
ネットワークプログラミング論 平成28年12月12日 森田 彦.
RMI ソフトウェア特論 第6回 /
第8章 Web技術とセキュリティ   岡本 好未.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
2003年度 データベース論 安藤 友晴.
ネットワークプログラミング論 平成28年11月21日 森田 彦.
データベースを使ったプログラミング ~JDBCを使ってみよう~
総合政策学部4年 伊藤玲子 総合政策学部4年 阿部雅美 +CreWな皆様
Webアプリケーションの方向性 データベース論 第13回.
ネットワークプログラミング論 平成28年11月7日 森田 彦.
Javaによる Webアプリケーション入門 第6回
ネットワークプログラミング論 平成28年10月31日 森田 彦.
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
Jakarta Struts (2) ソフトウェア特論 第11回.
Javaによる Webアプリケーション入門 第2回
Javaによる Webアプリケーション入門 第11回
Servlet ソフトウェア特論 第7回.
Servlet J2EE I (データベース論) 第12回 /
Servlet データベース論 第6回.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
Javaによる Webアプリケーション入門 第8回
Javaによる Webアプリケーション入門 第4回
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
JSPの基本 データベース論 第2回.
Jakarta Struts (1) ソフトウェア特論 第10回.
JSPの基本 J2EE I (データベース論) 第8回 /
システムプログラミング 第10回 プロセス間通信3 簡易Web server(準備) Chat プログラム 担当:青木義満、篠埜 功
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
アプリケーションゲートウェイ実験 2001.10.5 鬼塚 優.
HTTPプロトコルの詳細 M1 峯 肇史.
Presentation transcript:

TomcatによるWebアプリケーション開発入門 Servlet入門(1) TomcatによるWebアプリケーション開発入門 大岩研究会 高橋純平 2003年5月15日

本日の目標 Webアプリケーションとは何か説明できる Webアプリケーションの単位で ファイルを管理できる   ・CGIとServletの違いを説明できるようになる Webアプリケーションの単位で  ファイルを管理できる    ・web.xmlの設定をいじれるようになる Servletを使った基本的なプログラムが書 けるようなる

Webアプリにはコンセプトが無くてはならない  コンセプトの無い掲示板はただの動的なページ ・ではどんなものがWebアプリなのか? 例:SFCの体育予約システム

Webアプリケーションの例 SFCの体育予約システムを見てみよう 体育予約システムではどんなことができるか ・ ログイン ・ ログイン ・ 予約の確認・取り消し ・ 予約する ・ どんな授業があるか閲覧する ・ 今までの履修の確認 これらは一つ一つは「機能」であって「Webアプリ」とは言えない。 すべての機能を合わせて、「体育の出欠状況を管理する」という コンセプトを満たしているので、全部で一つの「Webアプリ」と言える。 ではこのようなWebアプリはサーバー上でどのように動いているのだろうか

Webアプリを使うための環境 サーバー上では複数のWebアプリが動いている 実行 実行 実行 ではアプリケーションサーバーとはなんだろう? 体育予約 システム 生徒A 実行 ブラウザからHTTPリクエストを送る 英語履修 システム 生徒B 実行 レポート システム 生徒C アプリケーションサーバー ではアプリケーションサーバーとはなんだろう?

HTTPリクエスト/レスポンスを利用して アプリケーションサーバとは 別名をWebアプリケーションサーバと言う WebサーバをWebアプリケーションのために拡張したもの HTTPで通信する サーブレットなどのサーバサイドJavaの実行環境を実装している Webアプリを管理するために便利な機能を持つ 各Webアプリを一つのディレクトリで管理する 各Webアプリごとに決まりごとを設定できるなど・・・ Tomcatはアプリケーションサーバの一つである アプリケーションサーバ Tomcat クライアントとWebアプリが HTTPリクエスト/レスポンスを利用して 対話するときの仲介役になる

サーブレットとは main(){ _________ } doGet(){ _________ ________ } 実行 実行 サーバ側で動作するJavaのプログラム クライアント(ブラウザなど)からHTTPリクエストがくると実行される HTTPリクエストを受け取り何らかの処理をしてHTTPレスポンスで結果を返す 単独では動作せず、サーブレットを実行できる環境が必要 main(){ _________ } 普通のJavaプログラムの実行 doGet(){ _________ ________ } Servletプログラムの実行 アプリケーションサーバ HTTPリクエスト java HOGE 実行 実行 サーブレットはアプリケーションサーバが実行する

サーブレットのソース import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ContentTypeを設定 response.setContentType("text/html; charset=Shift_JIS"); // 出力用PrintWriterを取得 PrintWriter out = response.getWriter(); // 出力 out.println("<html>"); out.println("<head>"); out.println("<title>Hello World Servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("Hello World"); out.println("</body>"); out.println("</html>"); } Servlet関係のクラスをインポートします GETでリクエストがあったときに実行する 処理を書きます HTMLを書き出すための準備 HTMLへの書き出し

Tomcatのサンプルサーブレットを実行してみる ②Webブラウザで     http://localhost:8080/examples/servlet/HelloWorldExample     と入力する  するとこんなページが表示される

クライアントとサーブレットがHTTPリクエスト/レスポンスを利用して 対話するのを見る 同じサーブレットをGETリクエストで起動してみよう ①Tomcatを起動する ②DOSプロンプトを開く ③C:>telnet localhost 8080 と打って改行 ④GET /examples/servlet/HelloWorldExample HTTP/1.0 と打って改行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 bgcolor=“white”> ・・・・ <h1>Hello World!</h1> </body> </html> ホストとの接続が切断されました。 クライアントからのリクエストに対して サーブレットが処理した結果を 送信してきたのが分かりましたか?

自分でWebアプリケーションを作る ①Webアプリ用のディレクトリの準備 ②WEB-INFディレクトリを作る ③web.xmlファイルを作る ④プログラム書く ⑤プログラムをコンパイルする ⑥クラスファイルを配置する では、上の手順にそってWebアプリを作成していきましょう

Webアプリの宣言 ・ TOMCAT_HOME/webapps/直下に新しいディレクトリを作る ・ TOMCAT_HOME/webapps/Webアプリ名 ・ Webアプリ名のつけ方に気をつけよう ・ このディレクトリがルートになる ・ http://localhost:8080/Webアプリ名/から                          このWebアプリにアクセスする TOMCAT_HOME/ webapps Webアプリ名

Webアプリケーションのファイル構成 Webアプリケーションのファイル構成 /Webアプリ名/WEB-INF/classes/ /WEB-INF/lib/ /WEB-INF /web.xml /index.html Webアプリケーションの呼び出し方法 (web.xmlで指定可) ・サーブレットの呼び出し http://ホスト名:ポート番号/webアプリ名/servlet/クラス名   例:http://localhost:8080/examples/servlet/HelloWorldServlet ・index.htmlの呼び出し http://ホスト名:ポート番号/webアプリ名/index.html

プログラムの配置 ・ TOMCAT_HOME/webapps/Webアプリ名以下にWEB-INFディレクトリを作成する ・ その中にコンパイルしたクラスを配置するclassesディレクトリを作る ・クラスファイルを格納するディレクトリ。Web アプリケーションを実行する際にはここがクラスパスに自動的に設定される。作成したサーブレットはここに置く必要がある。 ・ libディレクトリを作る(今回は触れない) Webアプリ名 WEB-INF classes lib

CGIでWebアプリを作ると 例 CGIとサーバサイドJavaでWebアプリを2つ作ってみた・・・何が違うだろう? ファイルの関連性が /public_html taikuLogin.html ファイルの関連性が わかりづらいので 管理が大変 例 englishLogin.html /cgi taiikuLogin.cgi 2個目を作ると・・・ englishLogin.cgi 数多くのファイルが関連するWebアプリの扱いが大変! Webアプリという概念がない CGIは動的なページを作るにとどまる技術

セーブレットでWebアプリを作ると サーバサイドJavaでWebアプリを作る場合、1つのディレクトリに関連するファイルをすべて設置する。そしてそのディレクトリを1つのソフトウェアのように扱う 例 /Taiiku index.html /WEB-INF web.xml Webアプリごとに まとまっているので 管理がしやすい 2個目を作ると・・・ /English index.html /WEB-INF web.xml Webアプリを一つのディレクトリで管理する仕組みがある Webアプリという概念がある サーバサイドJavaはWebアプリを作るための技術

Webアプリの設定 ・ ディレクトリの準備ができたので、このWEBアプリケーションの設定ファイルで   あるweb.xml をWEB-INF以下に作成する。 ・ web.xmlを使うとWebアプリごとに決まりごとを設定できる! ・ 具体的には以下のようなものが設定できる ①サーブレットの初期化パラメータ ②セッションコンフィグレーション ③サーブレット/JSPの定義 ④サーブレット/JSPのマッピング ⑤MIMEタイプのマッピング ⑥ウェルカムファイルリスト ⑦エラーページ ⑧セキュリティー ・ 今回設定するのはサーブレットの定義とマッピングです。 Webアプリ名 基本ファイル構成の出来上がり WEB-INF classes lib web.xml

web.xmlファイルを作る サーブレットマッピングとはあるURLにリクエストがあったときに、どのサーブレットを呼び出すか制御することです。 「http://localhost:8080/examples/greeting..html」というURLにリクエストがあったときに「HelloWorldServlet」を呼び出すには以下のように記述します。 <?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>   <servlet>     <servlet-name>HelloWorldServlet</servlet-name>     <servlet-class>HelloWorldServlet</servlet-class>   </servlet>   <servlet-mapping>     <url-pattern>/greeting.html</url-pattern>   </servlet-mapping> </web-app> サーブレット名と クラスを関連つける サーブレット名と 呼び出すときの URLを関連つける

この設定により、WebアプリのファイルをTomcatのディレクトリ以下に置かなくても良くなる server.xmlファイルをいじる server.xmlをいじることでアプリケーションサーバーの設定もできる。 Tomcatディレクトリ以外のディレクトリに置いてあるWebアプリを実行可能にするには、server.xmlの中の<Host></Host>で挟まれている中にWebアプリの場所等を下記のように記述する。 <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="/test" docBase="C:\programing\java\test" debug="0"/> </Host> 「pathで指定されたURLがクライアントから要求された際、docBaseで指定されたディレクトリをWebアプリケーションとして実行せよ」という設定になる  上記の追記により、「http://[サーバ名またはIPアドレス]:8080/test/」というURLが要求された場合、「 C:\programing\java\test 」ディレクトリの内容がWebアプリケーションとして実行可能になる。 この設定により、WebアプリのファイルをTomcatのディレクトリ以下に置かなくても良くなる

では実習課題 1.日付を表示するサーブレットを作ってさっきのやり方で簡単なWebアプリを作る   ※TOMCAT_HOME/conf/web.xml の273行目と278行目のコメントアウトを消してください 2.自分のWebアプリにトップページを加えてください。上で作ったサーブレットをリンクで呼び出せるようにしてください。HTMLファイルの置き場所に気をつけてください。 3.作成したWebアプリのweb.xmlを修正し、    http://localhost:8080/date/clock.html  にアクセスしたらTimeServletが実行されるようにする 上の三つの課題が終わった人は。。。 4.作成したWebアプリをTomcatのディレクトリ以外のディレクトリに   移し、server.xmlを書き換えてブラウザから実行できるように   してください。