JavaエンタープライズAP開発・演習問題

解答例の一部を公開していますが、 解答例へのアクセスには講習中にお知らせしたパスワードが必要です。



  1. 簡単なサーブレット:
    ファイル名: MyName.java

    "My name is 〜."(〜は自分の名前)と出力するServletを作成せよ。 無名(デフォルト)パッケージに作成し、javacでコンパイルし http://localhost:8080/MyFirst/MyNameというURLで アクセスできるように、設定ファイルを書け。

  2. 簡単なサーブレット2:
    ファイル名: MyName2.java

    上と同様のプログラムをhogeというパッケージに作成し、 javacでコンパイルし http://localhost:8080/MyFirst/MyName2というURLで アクセスできるように、設定ファイルを書け。

  3. 簡単なJSP:
    ファイル名: MyBirthday.jsp

    "My Birthday is 〜."(〜は自分の誕生日)と出力するJSPを作成せよ。

    解答例

  4. 繰り返し1
    ファイル名: ManyHello.{java,jsp}

    "Hello! "と100回出力するサーブレット or JSPを作成せよ。
    できれば、 "Hello! (1回目) Hello! (2回目) … Hello! (100回目)" のように表示してみよ。

    解答例 (JSP), 解答例 (java),

  5. 繰り返し2
    ファイル名: Gradation.{java,jsp}

    から までのグラデーションを 64階調程度で出力するサーブレット or JSPを作成せよ。

    ****************************************************************

    解答例 (JSP), 解答例 (java),

  6. イメージカウンタ
    ファイル名: ImageCounter.{java,jsp}

    アプリケーションルートのimagesディレクトリに、 1.png, 2.pngなどの名前で数字画像ファイルを用意して おいて、このアクセスカウンタや時刻表示 CGIで 1, 2, と表示する代わり に<img src='images/1.png'/>, <img src='images/2.png'/>などにしておくと、数字を画像で表示するアク セスカウンタができる。

    数字を画像として表示するアクセスカウンタを作成せよ。

    0 1 2 3 4 5 6 7 8 9

    解答例 (JSP), 解答例 (java),

  7. Parameterの利用
    ファイル名: NHello.{java,jsp}

    (正の)整数のパラメータnを受取り、Hello!(1回目), Hello!(2回目), ..., Hello(n 回目)とn回 Hello!を出力するサーブレット or JSPを作成せよ。

    つまり、http://localhost:8080/…/NHello.jsp?12というパラメータ を渡されたときは、次のように出力する。

    Hello!(1回目), Hello!(2回目), Hello!(3回目), Hello!(4回目), Hello!(5回目), Hello!(6回目), Hello!(7回目), Hello!(8回目), Hello!(9回目), Hello!(10回目), Hello!(11回目), Hello!(12回目),

    解答例 (JSP), 解答例 (java),

  8. キーワードのハイライト
    ファイル名: HighLightFile.{java,jsp}

    パラメータとしてファイル名を受取り、 そのファイルの内容をJavaのキーワード(public, void, classなど)に色をつけて表示するサーブレット or JSPを作成せよ。

    補足: ある特定のフォルダ内のファイルだけ表示するようにして、 フォルダ外のファイルが表示されないように注意せよ。

  9. カウントダウン
    ファイル名: CountDown.{java,jsp}

    特別なイベントの日(自分の??歳の誕生日、ワールドカップブラジル大会、 ロンドンオリンピック開幕など) を適当に決めて、パラメータとして日付をYYYYMMDDの形式で与えると イベントの日まであと何日かを表示するサーブレット or JSPを作成せよ。 (パラメータを与えなければ今日の日付を用いるようにせよ。)

    ヒント: java.util.Calendarクラスを用いる。 Calendarクラスには差を求める直接のメソッドはないので、 getTimeInMillisメソッドを使ってその差を 1000*60*60*24で割る。

    解答例 (java)

  10. ハイライトその2
    ファイル名: HighLight2.{java,jsp}

    正規表現を用いて、HighLight.{java,jsp}でさらに、数値リテラルの部分、 文字列リテラルの部分、 コメントの部分などに色をつけて表示するサーブレット or JSPを作成せよ。

    ヒント: java.util.regexパッケージのクラスを用いる。 あるいは、Stringクラスに正規表現を扱うメソッド (内部でjava.util.regexパッケージのクラスを使っている) があるので、それを用いる。

    字句解析をするわけではないので、100%正確でなくても良い。 (コメントの内部や文字列リテラルの内部で間違っても良い。)

    解答例 (java)

  11. Quiz (選択肢の記録)
    ファイル名: QuizEx.{java,jsp}

    Quiz.javaを、 正解数だけではなくて、 どの問に対してどの選択肢を選んだか (間違っていたなら正解はどれだったか) までわかるように記録し、 その結果を「これで QUIZは終わりです。」のメッセージのあとに表示するようにせよ。

    また、選択肢が3択だけとなっている制限を取り除き、問題ごとに選択肢の数 が変わっても構わないようにせよ。

    ヒント: セッションに選択肢の記録を保存する。 どのようなデータ型が適切か?
    配列(int[])は長さが決まってしまうのでふさわしくない。 ArrayListなど長さが可変なデータ型を使う必要がある。

    解答例 (java) 解答例のテキストフォーマット


    1. 5 オプション品構成:
      ファイル名: Options.java

      次のようなオプションとその値段の情報のテキストファイルから
      次のようなオプション構成を選択できるページを各パーツ毎に作成し、
      <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>
      
      すべてのパーツの選択肢を選んだ時点で、 選択した構成の合計値段を表示するServletを作成せよ。

  12. バーチャルショップ
    プロジェクト(Webアプリケーション)名: FishStore

    ColorStore1 (同.zip)を参考に、 仮想熱帯魚ショップアプリケーション (実行例) を作成せよ。

    ヒント: セッションに保存する「カート」はどのようなデータ型が適切か?
    仮想讃岐塗ショップの場合は、色の順番を記録する必要があったので、 ArrayList<String>だったが、仮想熱帯魚ショップの場合、 魚の名前と匹数を記録する必要がある。

    解答例, (同.zip)

  13. データベースの更新
    ファイル名: AddColor.{java,jsp}

    ColorStore3 (同.zip)の色情報データベースに 新しい色を追加するためのサーブレット or JSPを作成せよ。

  14. バーチャルショップ(DB版)
    プロジェクト(Webアプリケーション)名: FishStore2

    仮想熱帯魚ショップアプリケーションを ユーザーと熱帯魚の情報をDBから取得するように改造せよ。

  15. バーチャルショップ(MVC版)
    プロジェクト(Webアプリケーション)名: FishStore3

    仮想熱帯魚ショップアプリケーションを サーブレットとJavaBeansとJSPを連係させて作成せよ。

  16. コマ塗(PNG版)
    ファイル名: Koma.{java,jsp}

    ColorStore1 (同.zip) (またはColorStore3(同.zip)) の最後の作品をPNG形式で作成せよ。

    解答例 (java)

  17. データベースの読出しと操作:
    ファイル名: ProductWithTax.{java,jsp}

    X国ではpriceが単価15以上のものに対して10% の間接税がかかるという。 HSQLDBのテストデータの中の productテーブルのpriceは税抜の単価を示す ものとする。productテーブルの内容をX国での間接税を加えた値段を表に成形して 出力するServlet/JSPを作成せよ。

    解答例 (java)

  18. データベースの検索:
    ファイル名: SearchCustomer.{java,jsp}

    HSQLDBのテストデータの中の customerテーブルを利用して、顧客のイ ニシャルをQueryStringとして受け取り、そのイニシャルにマッチする 顧客の情報をテーブルとして表示するServlet/JSPを作成せよ。

    解答例 (java)

  19. クイズ DB版:
    ファイル名: QuizDB.{java,jsp}

    Quizの情報をテキストファイルではなく、データベースから 獲得するServlet/JSPを作成せよ。
    なお、データベースへのクエリの回数はできるだけ少ないこと(1つのセッションで1回)が望ましい。

    参考にするプログラム: DBSelect.java,

    解答例 (java)

  20. オプション品構成:
    ファイル名: Options.{java,jsp}

    次のようなオプションとその値段の情報をデータベース (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>
    
    すべてのパーツの選択肢を選んだ時点で、 選択した構成の合計値段を表示するServlet/JSPを作成せよ。
    なお、データベースへのクエリの回数はできるだけ少ないこと(1つのセッションで1回)が望ましい。

    参考にするプログラム: Quiz.java, DBSelect.java,


Koji Kagawa