発展課題 (r1:ウェブアプリケーション)

注意点

このページは復習 (1)の発展課題を掲載しています。発展課題については「復習回の課題について」をよく読んでから取り掛かってください。

作業について

今回の課題は以下のパッケージに作成してください。

パッケージの名前
j1.review01

作成するクラスの名前は問題ごとに指示があります。下記を参照してください

課題の提出方法については下記を参照してください。

また、別のコンピューター上に移動する際には、下記を参考にプログラムを持ち帰ってください。

新しい内容

文字列の比較

文字列の比較は「string1.equals(string2)」の形式で書けます。たとえば、入力された文字列が「input」格納されている場合、これを文字列「aaa」と比較するには、

if (input.equals("aaa")) {
    ...
}

のように書けます。

問題

1. ログイン処理

作成するクラスの名前
Login
プログラムを呼び出すための画面
login.html
動作を確認するためのURL
http://localhost:8888/j1.review01/login.html

ログイン処理を行うプログラムを作成してください。ユーザー名、パスワードをチェックし、登録されているユーザーであれば、秘密のメッセージをみることができます。

入力されたユーザー名は、パラメータ名”user”で取り出します。パスワードは、”password”で取り出します。それぞれ、固定値(自由に決めてください)と比較して同じならログインが成功したとします。なお、ユーザーとパスワードの組み合わせは3パターン用意してください、

2. 他のコンピューターからのアクセス

他の受講生からアクセスしてもらいログインの動作を確認してください。これまでの課題では、「http://localhost:8888/…」としていましたが、localhostは自分自身のコンピューターを表す名前で、他のコンピューターからアクセスする場合はlocalhostの部分に他のコンピューターを表す文字列を指定します。

動作を確認するためのURL
http://他のコンピューターを表す文字列:8888/j1.review01/login.html

この文字列のことを「ホスト名」と呼びます。

これには主に2種類の書き方があって、いずれかで指定します。

  • IPアドレス (192.168.1.2など)
  • ドメイン名 (www.example.com)

前者はネットワーク通信を行う機器ごとに割り当てられた「住所(アドレス)」のようなものです。後者は、そのIPアドレスに対して、人間が読みやすい名前をつけたものです。

コンピューターに搭載されている通信機器のIPアドレスを調べるには、いくつかの方法があります。今回は、通信機器の情報をリストアップする方法で確認します。

通信機器のリストアップは、コマンドラインから「ipconfig」というコマンドを実行すると確認できます。まず、スタートメニュー「プログラムとファイルの検索」で「cmd」と入力してEnterキーを押すと、コマンドを入力する画面が表示されます。

図 ここに「cmd」と入力する

ここに、「ipconfig」と入力してEnterキーを押しましょう。すると、通信機器の情報がリストアップされます。

この中には、いくつか「IPv4アドレス」という項目が表示されます。そのうちのどれかを使ってブラウザにURLを入力すると、他のコンピューターからもウェブアプリケーションを利用できます。

なお、実験室や教室のネットワーク構成の関係で、以下のことに注意してください。

  • 同じ教室で試してみること
  • ラボ教室では、備え付けのコンピューターどうしか、個人のノートPCどうしで試してみること
  • 自宅で試す場合には、家に2台以上のコンピューターを用意するか、それなりにネットワークに熟知していること

ネットワークはさまざまな問題が起こりやすく、問題の分析も多くの知識や経験を要します。興味がある方は、ネットワークに詳しい先生にいろいろと聞いてみるのがよいでしょう。

3. アクセス制限

作成するクラスの名前
AccessControl
動作を確認するためのURL
http://localhost:8888/j1.review01/AccessControl

Webページにアクセスした際、Webサーバーには必ずアクセス元の「IPアドレス」情報が通知されます。

この情報をウェブアプリケーションから使うと、疑似的に「特定のコンピューターからウェブページにアクセスさせない」などの処理を書けるようになります。

教材APIからアクセス元のIPアドレスを利用するには、次のように書きます。

String address = WebPage.getRemoteAddress();

この課題では、次のようなプログラムを作成して下さい。

  • 自分からページにアクセスした場合には「おかえりなさい」と表示する
  • 他のコンピューターからアクセスした場合には「こんにちは」と表示する
  • 何人かアクセス制限対象の人を決め、そこからのアクセスは「さようなら」と表示する