第 1 章.Web サーバとしての Tomcat の 機 能 学 習 のねらい 1 テキストファイルおよび HTML ファイルをブラウザに 表 示 させ Tomcat の Web サー バとしての 機 能 を 確 認 理 解 する 0.Web アプリケーションの 動 作 の 仕 組 み 講 義 で 説 明 基 礎 課 題 1-1 (Java サーブレットを 用 いた)Web アプリケーションの 動 作 の 流 れを 示 す 下 図 におい て 空 欄 に 入 る 適 切 な 用 語 を 回 答 群 から 選 んで 記 入 して 下 さい 課 題 提 出 の 仕 方 は p.15 を 参 照 して 下 さい サーバ クライアント 1 Java サーブレット 3 データベース JSP ブラウザ 2 アプリケーションサーバ データベース 管 理 ソフト IE Firefox など Tomcat など MySQL など < 回 答 群 > Java サーブレット リクエスト レスポンス JSP JDBC JAR 1-1 Web サーバとしての Tomcat 1 -テキストファイルの 表 示 Tomcat はテキストファイルに 記 述 した 内 容 を Web ブラウザに 表 示 させることができま す これは Web サーバとしての 機 能 です 手 始 めに 以 下 の 手 順 にしたがってこの 機 能 を 確 認 しましょう 1 Tomcat を 用 いて Web ブラウザ 上 にテキストファイル(の 記 述 内 容 )を 表 示 させるた めには Tomcat がインストールされたフォルダ( 今 の 場 合 Tomcat8.0 )の 中 にある webapps というフォルダ 内 にファイルを 作 成 する 必 要 があります 1
基 礎 課 題 1-2 Tomcat がインストールされているフォルダ Tomcat 8.0 のパスは 次 の 通 りです 空 欄 を 埋 めてパスを 完 成 させて 下 さい C: Program Files Tomcat 8.0 この Tomcat 8.0 を 開 くと 次 のように webapps があります <Tomcat 8.0> 2 この webapps 内 に entry というフォルダを 新 規 作 成 します すると 作 成 後 webapps 内 は 次 のようになるはずです <webapps> 今 後 この entry 内 に 所 定 のファイルを 作 成 して 行 きます 後 で 分 かるようにこの entry は Web アプリケーションの 名 前 という 意 味 を 持 ちます 3 entry 内 に hello.txt という 名 前 のテキストファイルを 作 成 し 次 のように 記 述 し ます 秀 丸 エディタ 等 適 当 なエディタを 使 って 作 成 して 下 さい <hello.txt> Hello. This is text file. 注 意 保 存 後 entry 内 を 確 認 して 下 さい PC の 設 定 によっては このフォルダ 内 へのファイル 書 き 込 みが 制 限 されており エディタから 保 存 しても(したつもりで も) 次 のように entry 内 にファイルが 作 成 されてない 場 合 があります <entry> Hello.txt が 作 成 されていない! 2
その 場 合 は p.16 の アクセス 権 限 の 設 定 にしたがって アクセス 権 限 を 設 定 して 下 さい 設 定 後 ファイルを 保 管 することが 可 能 になります ただし エディタからの 保 管 時 に 表 示 される hello.txt を 削 除 してから 新 たに 保 管 して 下 さい 4 ここで Tomcat を 起 動 させて 次 の URL にアクセスして 下 さい http://localhost:8080/entry/hello.txt 次 のようにテキストファイルの 内 容 が 表 示 されるはずです Tomcat を 起 動 させるアイコンがタスクバーあるいはスタートメニュー 内 に 見 つか らない 場 合 は 先 週 のプリント p.14~15 を 参 照 してアイコンを 表 示 させ 起 動 させて 下 さい このように Tomcat は 所 定 のフォルダ(wbapps) 内 に 置 かれたテキストファイルをブラ ウザに 表 示 させる 機 能 を 持 ちます ただ 表 示 させただけで まだ 何 も 動 作 させていません が これも Web アプリケーションの 一 種 と 言 えます <URL の 解 説 > 上 で 指 定 した URL の 意 味 を 確 認 しておきましょう ポート 番 号 ファイルのパス http:// localhost : 8080 / entry / hello.txt サーバ 名 コンテキスト 名 サーバ 名 使 用 しているサーバ 名 を 指 定 します localhost は 自 身 の PC をサーバとして 用 いて いる 時 の 名 称 です なお このサーバ 名 は 本 来 IP アドレスで 指 定 するものです localhost の IP アドレスは 127.0.0.1 と 決 められていますので localhost をこ の IP アドレスで 置 き 換 えても 正 常 に 動 作 します 各 自 確 かめて 下 さい ポート 番 号 一 般 に ネットワーク 上 で 通 信 を 行 うソフトウェアは ポート 番 号 という 番 号 を 決 3
めて 通 信 を 行 います Tomcat の 場 合 は 8080 がそのポート 番 号 です これまで Web サイトに 接 続 するときにはポート 番 号 を 指 定 することはなかったので 奇 妙 に 思 うか も 知 れません 実 は このポート 番 号 を 省 略 すると 80 とみなされます 通 常 の Web サーバはポート 番 号 として 80 を 用 いているので 省 略 しても 問 題 ない 訳 です コンテキスト 名 Web アプリケーションの 名 前 です これをコンテキスト 名 と 言 います 今 後 この 用 語 をよく 用 いますのでよく 頭 に 入 れておいて 下 さい ファイルのパス ファイル 名 ではなく ファイルのパスとしている 点 に 注 意 して 下 さい もし entry の 中 に entry2 というフォルダを 作 り この 中 に hello.txt を 作 った 場 合 の URL は 次 のようになります http://localhost:8080/entry/entry2/hello.txt 基 礎 課 題 1-3 Tomcat の webapps にあるフォルダ entry 内 に sample というフォルダを 新 規 作 成 し その 中 に Document.txt というテキストファイルを 作 成 しました このテキ ストファイルの 中 身 を(Tomcat を 用 いて)ブラウザに 表 示 させるためには URL をど のように 指 定 すれば 良 いでしょうか?ただし サーバは localhost を 用 います 4
1-2 Web サーバとしての Tomcat 2 -HTML ファイルの 表 示 今 度 は HTML ファイルを 表 示 させましょう フォルダ entry の 中 に hello.html を 次 のように 作 成 して 下 さい そして 次 の URL に 接 続 すると 下 のようにブラウザに 表 示 さ れるはずです <HTML> <HEAD> http://localhost:8080/entry/hello.html <hello.html> <Title> HTML example </Title> </HEAD> <BODY> <H2>Hello</H2> This is HTML file. </BODY> </HTML> ページのタイトル 表 示 内 容 基 礎 課 題 1-4 次 のように 表 示 されるように 上 の hello.html を 修 正 しました 空 欄 を 埋 めて HTML ファイルを 完 成 して 下 さい ページのタイトル 表 示 内 容 5
<HTML> <hello.html> </HTML> コラム 404 エラー 上 の 例 で 例 えば URL を http://localhost:8080/entry/hello.html のように hello.html の 部 分 を Hello.html と 指 定 してしまった 場 合 次 のようなエラーが 表 示 されます これ は 指 定 した URL に 該 当 するファイルがないというエラーです このエラーが 出 たら URL に 誤 りがないかどうかよく 確 認 して 下 さい 6
<ウェルカムファイル> URL に(ファイル 名 を 指 定 せず)ディレクトリ *) のみを 指 定 した 場 合 に 開 かれるファイ ルのことをウェルカムファイルと 言 います Tomcat では 以 下 のファイルがウェルカムフ ァイルとして 登 録 されています( 必 要 に 応 じて 設 定 を 変 更 することも 可 能 です) index.html index.htm index.jsp *) ディレクトリはファイルを 分 類 整 理 するための 保 管 場 所 のことです その 意 味 でフォルダと ほぼ 同 じ 概 念 ですが 厳 密 には フォルダの 場 合 は 何 かの 入 れ 物 というディレクトリよ りも 広 い 概 念 を 含 みます そのため ファイルの 保 管 場 所 という 意 味 に 限 定 して 述 べる 場 合 はディレクトリという 用 語 を 用 います ここでもその 慣 例 に 従 いましたが フォルダと 読 み 替 えても 理 解 の 上 で 問 題 ありません 実 際 に 試 してみましょう entry フォルダの 中 に 次 の index.html 作 成 して 下 さい <HTML> <HEAD> <Title> HTML example </Title> </HEAD> <BODY> <H2>Welcome</H2> This is Welcome file. </BODY> </HTML> <index.html> 作 成 後 URL を http://localhost:8080/entry/ と 指 定 することで 次 の 様 に 表 示 さ れることを 確 認 して 下 さい もちろん http://localhost:8080/entry/index.html と 明 示 的 にファイル 名 を 指 定 しても 同 様 に 表 示 されます 7
1-3 HTML ファイル 間 のリンク 以 下 では ファイル 間 のリンク 指 定 を 頻 繁 に 行 いますので 簡 単 な 例 を 用 いて 基 礎 事 項 を 確 認 しておきましょう 次 の HTML ファイルを LinkExample.html という 名 前 でフ ォルダ entry の 中 に 作 成 して 下 さい <LinkExample.html> <HTML> <HEAD> <Title>LinkExample</Title> </HEAD> <BODY> <H2>リンクの 例 </H2> <p><a HREF="hello.html"> entry/hello.html </A> へ </p> </BODY> </HTML> 作 成 後 次 の URL に 接 続 すると 下 のページが 現 れます http://localhost:8080/entry/linkexample.html クリックすると hello.html が 表 示 される 8
解 説 -リンクについて 上 の 例 でリンクを 指 定 しているのは 以 下 の 部 分 です <A HREF="hello.html"> entry/hello.html </A> 一 般 に <A HREF="XXX"> YYY </A> という 形 で 文 字 列 YYY をクリックすると XXX で 指 定 される 場 所 へジャンプする という 処 理 を 行 います XXX にはファイルのパスや URL などを 指 定 できます 上 の 例 ではファイルのパスは hello.html となっていま す これは HTML ファイル LinkExample.html から 見 てジャンプ 先 である hello.html は 同 じディレクトリ ( entry というフォルダ )に 所 属 しているからです LinkExample.html hello.html なお 上 の 例 で 次 のように URL を 指 定 しても 同 様 にジャンプできます entry <A HREF=" http://localhost:8080/entry/hello.html"> entry/hello.html </A> 次 に entry の 中 に sub というフォルダを 作 成 し その 中 に 次 のように LinkSub.html というファイルを 作 成 して 下 さい <LinkSub.html> <HTML> <HEAD> <Title>LinkSub</Title> </HEAD> <BODY> <H2>サブディレクトリ</H2> <p><a HREF="../LinkExample.html"> entry/linkexample.html </A>へ</p> </BODY> </HTML> 基 礎 課 題 1-5 この LinkSub.html を 表 示 させるためには URL をどう 指 定 したよいでしょうか? 空 欄 を 埋 めて URL を 完 成 させて 下 さい http://localhost:8080/ entry/linkexample.html 9
LinkSub.html にアクセスすると 次 のように 表 示 されます このリンクをクリックすると 先 の LinkExample.html にジャンプされるはずです 改 めて リンクを 指 定 している 部 分 <A HREF="../LinkExample.html"> entry/linkexample.html </A> を 見 ると ファイルのパスは../LinkExample.html となっています この../ は 一 つ 上 の( 階 層 の)ディレクトリという 意 味 です 下 に 示 すように sub ディレクトリ から 一 つ 上 に 抜 け 出 ないと LinkExample.html に 到 達 できません entry LinkExample.html hello.html sub LinkSub.html 最 後 に LinkExample.html からこの LinkSub.html へリンクを 張 ってみましょう LinkExample.html に 次 のように 枠 内 を 1 行 加 えて 下 さい <LinkExample.html> <HTML> <HEAD> <Title>LinkExample</Title> </HEAD> <BODY> <H2>リンクの 例 </H2> <p><a HREF="hello.html"> entry/hello.html </A> へ </p> <p><a HREF="sub/LinkSub.html"> entry/sub/linksub.html </A> へ </p> </BODY> </HTML> 10
作 成 後 次 の URL に 接 続 すると 下 のページが 現 れます http://localhost:8080/entry/linkexample.html ここをクリックすると LinkSub.html へジャンプします LinkExample.html から 見 た 場 合 LinkSub.html のパスは sub/linksub.html となります sub/ という 形 で sub ディレクトリ(フォルダ) 内 にある ということを 意 味 します これは p.4 の 基 礎 課 題 1-3 でも 確 認 しましたね 1-4 応 用 課 題 1-3 までの 学 習 で Tomcat を 用 いた Web アプリケーションの 動 作 の 流 れが 分 かったと 思 います(まだ HTML ファイルをブラウザに 表 示 するという Web サーバとしての 機 能 のみ ですが Java サーブレットを 動 作 させるアプリケーションサーバとしての 機 能 も 基 本 は 同 じです その 点 は 次 週 学 習 します) ただ 自 分 の PC をサーバとして 使 ったので ローカルな HTML ファイルを 表 示 させた だけの 場 合 との 違 いが 分 かりにくかったかもしれません そこで 他 の 人 の PC(サーバ)に 接 続 して そこに 存 在 する HTML ファイルを 表 示 させてみましょう 次 の 応 用 課 題 に 取 り 組 めばサーバとしての 機 能 を 実 感 できるはずです 応 用 課 題 1-A まず フォルダ entry 内 に 次 ページのような 内 容 で home.html を 作 成 して 下 さ い ここに 学 院 太 朗 の 部 分 には 各 自 の 氏 名 を 記 述 して 下 さい 作 成 後 これまで 通 り 次 の URL にアクセスすれば 当 該 ページが 表 示 されるはずです http://localhost:8080/entry/home.html 11
<home.html> <HTML> <HEAD> <TITLE> 学 院 太 郎 のページ</TITLE> </HEAD> <BODY> <H2> 学 院 太 郎 </H2> これは 学 院 太 郎 のページです </BODY> </HTML> ここまでは これまでと 同 様 ですが ここで 他 の 人 のサーバ(PC)に 接 続 してみましょ う そのためには サーバ 名 を localhost ではなく 接 続 したい 人 のサーバ 名 にすればよ いのです p.3 で 説 明 したようにサーバ 名 は 元 々は IP アドレスです そこで 接 続 した い PC の IP アドレスが 分 かればよいことになります 以 下 二 人 でペアになって 下 の 手 順 にしたがって ( 現 時 点 で 割 り 当 てられている) 各 々 の IP アドレスを 確 認 して 下 さい <IP アドレスの 確 認 の 仕 方 > 1 Windows 7 の 場 合 スタートメニュー すべてのプログラム アクセサリ コマンドプロンプト を 選 択 して 下 さい Windows8 の 場 合 アプリケーションメニューを 表 示 させ Windows システムツー ル の 中 にある コマンドプロンプト を 選 択 して 下 さい 2 次 のように ipconfig というコマンドを 入 力 して 下 さい( 下 線 部 ) すると IP アド レスが 表 示 されます 次 ページの 10.211.XXX.XXX などの 部 分 です 12
この 部 分 が IP アドレス 上 で IP アドレスを 確 認 したら localhost の 部 分 に IP アドレスを 用 いることで 相 手 方 の PC (サーバ)に 接 続 できます http:// XX.XXX.XXX.XXX :8080/entry/home.html IP アドレス 例 えば 学 院 太 朗 さんの PC(サーバ)に 接 続 すると 次 のようなページが 表 示 されるはず です これで Tomcat がサーバとしての 機 能 を 持 っていることが 理 解 できるでしょう この 課 題 は 動 作 を 確 認 できたら 君 (さん)との 接 続 を 確 認 しました と 書 いて 提 出 して 下 さい 13
< 他 の 人 の PC に 接 続 できない 場 合 > ファイアウォール 機 能 のため 他 の PC からの 接 続 を 拒 否 する 設 定 になっている 場 合 があ ります そこで 次 の 手 順 にしたがって ファイアウォールの 設 定 を 一 時 的 に 無 効 にして 下 さい 1 コントロールパネル システムとセキュリティ を 選 択 して 下 さい <コントロールパネルの 選 択 > Windows 7 の 場 合 は スタート メニューから 選 択 できます Windows 8 の 場 合 は まずカーソルを 画 面 右 下 隅 に 持 って 行 き 現 れた 設 定 アイコンをクリックします そうして 現 れたメニューから 選 択 できます 2 そして Windows ファイアウォール を 選 択 して 下 さい 3 次 の 画 面 の 左 フレームにある Windows ファイアウォ ールの 有 功 化 または 無 効 化 を 選 択 して 下 さい 4 次 の 画 面 で パブリックネットワークの 設 定 欄 の Windows ファイアウォールを 無 効 にする をチェックします 5 チェック 後 [OK]ボタンをクリックすると ファイアウォールが 無 効 になります こ の 時 点 で 他 の PC からの 接 続 が 可 能 になります 14
動 作 を 確 認 後 再 びファイアウォールを 有 効 にしておいて 下 さい < 課 題 提 出 の 仕 方 > 次 の 要 領 で 解 答 を 森 田 までメールで 送 って 下 さい <Office 365(https://outlook.office365.com/)を 使 用 > 宛 先 は hiko@e.sgu.ac.jp S130001 件 名 は 学 籍 番 号 氏 名 ネット 課 題 日 付 をこの 順 で 記 入 する 学 籍 番 号 は 半 角 英 数 字 で 記 入 すること メール 本 文 内 に 当 該 週 の 課 題 の 解 答 を 順 番 に 記 入 する 本 日 の 場 合 は 基 礎 課 題 1-1 ~ 基 礎 課 題 1-5 と 応 用 課 題 1-A ( 講 義 時 間 内 に 全 て 送 れない 場 合 は 分 割 して 送 っても 良 い) なお プログラム 文 のように 解 答 が 英 数 字 の 場 合 は 全 て 半 角 で 記 入 す ること 上 記 のメールは 携 帯 メールで 送 信 しても 結 構 です ただし 件 名 が 指 定 通 り 書 かれて いなければ 受 け 付 けません 15
<アクセス 権 限 の 設 定 > Tomcat フォルダ 内 への 書 き 込 み 権 限 が 与 えられていない 場 合 次 のようにしてアクセス 権 限 を 付 与 します 1 Tomcat 8.0 フォルダを 右 クリックし プロパティ を 選 択 する 使 用 している PC 環 境 によっ ては メニュー 項 目 が 若 干 異 なることがありますが 気 に する 必 要 はありません 2 プロパティ 画 面 の セキュリティ タグを 選 択 し[ 編 集 ]ボタンをクリックする Windows 8 の 場 合 このタブはありません 3 グループ 名 またはユーザー 名 欄 から 次 のように 今 ログインしているユーザー 名 を 選 択 する 指 定 機 種 の 場 合 通 常 は 学 籍 番 号 がユーザー 名 になっている 16
4 続 いて 下 欄 の フルコントロール 欄 にチェックを 入 れ OK ボタンをクリックす る これで 書 き 込 み 可 能 になる 17