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