解答例の一部を公開していますが、 解答例へのアクセスには講習中にお知らせしたパスワードが必要です。
"My name is 〜."(〜は自分の名前)と出力する Servlet を作成せよ。 無名(デフォルト)パッケージに作成し、javac でコンパイルし http://localhost:8080/MyFirst/MyName という URL で アクセスできるように、設定ファイルを書け。
上と同様のプログラムを hoge というパッケージに作成し、 javac でコンパイルし http://localhost:8080/MyFirst/MyName2 という URL で アクセスできるように、設定ファイルを書け。
"My Birthday is 〜."(〜は自分の誕生日)と出力する Servlet を作成せよ。
"Hello! "と 100 回出力するサーブレットを作成せよ。
できれば、
"Hello! (1回目) Hello! (2回目) … Hello! (100回目)"
のように表示してみよ。
赤から 緑までのグラデーションを 64階調程度で出力するサーブレットを作成せよ。
****************************************************************
アプリケーションルートの images ディレクトリに、 1.png, 2.png などの名前で数字画像ファイルを用意して おいて、このアクセスカウンタや時刻表示で 1, 2, と表示する代わり に <img src='images/1.png'/>, <img src='images/2.png'/> などにしておくと、数字を画像で表示するアク セスカウンタができる。
数字を画像として表示するアクセスカウンタを作成せよ。
(正の)整数のパラメータ nを受取り、Hello!(1回目), Hello!(2回目), ..., Hello(n 回目)と n回 Hello! を出力するサーブレットを作成せよ。
つまり、http://localhost:8080/…/NHello.jsp?12 というパラメータを渡されたときは、次のように出力する。
パラメータとしてファイル名を受取り、 そのファイルの内容を Java のキーワード(public, void, classなど)に色をつけて表示するサーブレットを作成せよ。
補足: ある特定のフォルダ内のファイルだけ表示するようにして、 フォルダ外のファイルが表示されないように注意せよ。
ヒント: Stringクラスのメソッドを利用する。
特別なイベントの日(自分の??歳の誕生日、ワールドカップブラジル大会、 リオデジャネイロオリンピック開幕など) を適当に決めて、パラメータとして日付を YYYYMMDD の形式で与えると イベントの日まであと何日かを表示するサーブレットを作成せよ。 (パラメータを与えなければ今日の日付を用いるようにせよ。)
ヒント: java.util.Calendarクラスを用いる。 Calendar クラスには差を求める直接のメソッドはないので、 getTimeInMillis メソッドを使ってその差を 1000*60*60*24で割る。
正規表現を用いて、HighLight.java でさらに、数値リテラルの部分、 文字列リテラルの部分、 コメントの部分などに色をつけて表示するサーブレットを作成せよ。
ヒント: java.util.regex パッケージのクラスを用いる。 あるいは、String クラスに正規表現を扱うメソッド (内部でjava.util.regex パッケージのクラスを使っている) があるので、それを用いる。
字句解析をするわけではないので、100% 正確でなくても良い。 (コメントの内部や文字列リテラルの内部で間違っても良い。)
日記(問 2.3.4)や家計簿 (問 2.3.5) サーブレットの入力欄にユーザー名を入力する欄を追加し、 ユーザーごとに記録ファイルを別にして保存するように改良せよ。
ただし、認証機能(パスワードによる確認)は付けなくてよい
HashMapTest.java の色のデータを、次のようなファイルから読み取るように改良せよ。
鴇, 0xf7acbc 赤, 0xed1941 朱, 0xf26522 桃, 0xf58f98 緋, 0xaa2116 肌, 0xfedcbd 橙, 0xf47920 褐, 0x843900 黄, 0xffd400 鶸, 0xcbc547 鶯, 0x87943b 緑, 0x45b97c 鉄, 0x005344 水, 0xafdfe4 青, 0x009ad6 藍, 0x145b7d 紺, 0x003a6c 菫, 0x6ff0aaa 藤, 0xafb4db 紫, 0x8552a1 白, 0xfffffb 灰, 0x77787b 黒, 0x130c0e 紅, 0xd7003a 小豆, 0x96514d 浅葱, 0x00a3af 瑠璃, 0x1e50a2 …
リンク: 和色大辞典
セッションにアクセス時刻(System.currentTimeMillis())を記録し、 前回のアクセスからの経過時間を表示せよ。 (セッションが存在しなかったときは「おひさしぶりです」と表示せよ。) ちょうどキリの良い秒数だったときに、特別なメッセージを表示するようにせよ。
Quiz.java を、 正解数だけではなくて、 どの問に対してどの選択肢を選んだか (間違っていたなら正解はどれだったか) までわかるように記録し、 その結果を「これで QUIZ は終わりです。」のメッセージのあとに表示するようにせよ。
ヒント: セッションに選択肢の記録を保存する。
どのようなデータ型が適切か?
配列(int[])は長さが決まってしまうのでふさわしくない。
ArrayList など長さが可変なデータ型を使う必要がある。
次のようなオプションとその値段の情報のテキストファイルから
<html> <body> CPUを選んで下さい <br> <form method='post'> <input type='radio' name='answer' value='4000'> Celeron430 4000円 <input type='radio' name='answer' value='20000'> DuoE8400 20000円 <input type='radio' name='answer' value='37000'> QuadQ9450 37000円 <input type='radio' name='answer' value='62000'> QuadQ9550 62000円 <br> <input type='submit' value='送る'> <input type='submit' value='キャンセル'> </form> </body> </html> |
ColorStore1 (同.zip)を参考に、 仮想熱帯魚ショップアプリケーション (実行例) を作成せよ。
ヒント: セッションに保存する「カート」はどのようなデータ型が適切か?
仮想讃岐塗ショップの場合は、色の順番を記録する必要があったので、
ArrayList<String>だったが、仮想熱帯魚ショップの場合、
魚の名前と匹数を記録する必要がある。
ColorStore3 (同.zip)の色情報データベースに 新しい色を追加するためのサーブレットを作成せよ。
仮想熱帯魚ショップアプリケーションを
ユーザーと熱帯魚の情報を DB から取得するように改造せよ。
ColorStore1 (同.zip) (またはColorStore3 (同.zip)) の最後の作品を PNG 形式で作成せよ。
X 国では price が単価15以上のものに対して 10% の間接税がかかるという。 HSQLDB のテストデータの中の product テーブルの price は税抜の単価を示すものとする。product テーブルの内容を X 国での間接税を加えた値段を表に成形して出力する Servlet を作成せよ。
HSQLDB のテストデータの中の customer テーブルを利用して、顧客のイニシャルを QueryString として受け取り、そのイニシャルにマッチする顧客の情報をテーブルとして表示する Servlet を作成せよ。
Quiz の情報をテキストファイルではなく、データベースから
獲得する Servlet を作成せよ。
なお、データベースへのクエリの回数はできるだけ少ないこと(1 つのセッションで 1 回)が望ましい。
参考にするプログラム: DBSelect.java,
次のようなオプションとその値段の情報をデータベース (SQL スクリプト)から獲得し、
<html> <body> CPU を選んで下さい <br> <form method='post'> <input type='radio' name='answer' value='20000'> 3GHz 20000円 <input type='radio' name='answer' value='22000'> 3.2GHz 22000円 <input type='radio' name='answer' value='25000'> 3.4GHz 25000円 <br> <input type='submit' value='送る'> <input type='submit' value='キャンセル'> </form> </body> </html> |
参考にするプログラム: Quiz.java, DBSelect.java,