教育サーバーのページ
オンラインテキスト目次
システムプログラミング演習
次のプログラム Kuku.jsp
は、ブラウザの
リクエスト(HTTPのGETリクエスト)に対して、JSP内で動的に
生成したHTML文章を返す。
<%@ page contentType="text/html" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>九九表を作ってみよう</title> </head> <body> <h1>九九表</h1> <table border="1"> <tr> <th></th><th>1</th><th>2</th><th>3</th><th>4</th> <th>5</th><th>6</th><th>7</th><th>8</th><th>9</th> </tr> <% for(int i=1;i<10;i++){ out.println("<tr>"); out.println("<th>" + i + "</th>"); // 内側のループの開始 for(int j=1;j<10;j++){ out.println("<td align='right' width='20'>" + (i*j) + "</td>"); } // 内側のループの終了 out.println("</tr>"); } %> </table> </body> </html>
たとえば、Webサーバが動いているホストlocalhostのWebアプリケーシ ョンのルートディレクトリ下に格納されている、 JSPファイルKuku.jspを実行する。そうすると、 ブラウザが起動され、その上でその上で九九表が表示される。
プログラム Kuku.jsp の説明:
表を表示させるためには、最低限、「表であることを示す タグ」、「表の中の1行を指定するタグ」、「表の各項目を 指定するタグ」の3つが必要である。表の各項目を<td> で定義し、いくつかの<td>〜</td>タグをまとめ て<tr>〜</tr>タグで囲み、さらに、 <tr>〜</tr>タグを<table>〜</table> タグで囲むのが、表を作る3つのタグの基本的な構造である。 九九表の表示は、
<table border="1"> <tr> <th></th><th>1</th><th>2</th><th>3</th><th>4</th> <th>5</th><th>6</th><th>7</th><th>8</th><th>9</th> </tr> <% for(int i=1;i<10;i++){ out.println("<tr>"); out.println("<th>" + i + "</th>"); // 内側のループの開始 for(int j=1;j<10;j++){ out.println("<td align='right' width='20'>" + (i*j) + "</td>"); } // 内側のループの終了 out.println("</tr>"); } %> </table>によっておこなわれる。
表であることの宣言は
<table border="1"> 〜 </table>によっておこなわれる。border属性は、表の各項目に 枠線を表示するために指定する。
九九表の最初の列(1,2,3,4,5,6,7,8,9)は
<tr> <th></th><th>1</th><th>2</th><th>3</th><th>4</th> <th>5</th><th>6</th><th>7</th><th>8</th><th>9</th> </tr>によって、見出しとして指定される。
スクリプトレットは、
<% for(int i=1;i<10;i++){ out.println("<tr>"); out.println("<th>" + i + "</th>"); // 内側のループの開始 for(int j=1;j<10;j++){ out.println("<td align='right' width='20'>" + (i*j) + "</td>"); } // 内側のループの終了 out.println("</tr>"); } %>
により表される。 九九の各演算結果が表の項目として、<td> 〜 </td>タグの 範囲に入り、さらに<tr> 〜 </tr>タグの範囲には1から9までの<td> タグを記述する。1から9までの<tr> 〜 </tr>タグを <table> 〜 </table>タグの範囲に記述すれば、九九表が完成する。
for(int i=1;i<10;i++){ out.println("<tr>"); out.println("<th>" + i + "</th>"); // 内側のループの開始 for(int j=1;j<10;j++){ out.println("<td align='right' width='20'>" + (i*j) + "</td>"); } // 内側のループの終了 out.println("</tr>"); }では、for文を用いた二重ループを用いて上記に示した九九表を出力している。
次のプログラム sum.jsp
は、ブラウザの
リクエスト(HTTPのGETリクエスト)に対して、JSP内で動的に
生成したHTML文章を返す。
<%@ page contentType="text/html" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>1〜100の間の奇数を合計する</title> </head> <body> <h1>1〜100の間の奇数を合計する</h1> <% int result=0; for(int i=1;i<=100;i++){ if(i % 2 == 0){continue;} result += i; } out.println("合計値:" + result); %> </body> </html>
たとえば、Webサーバが動いているホストlocalhostのWebアプリケーシ ョンのルートディレクトリ下に格納されている、 JSPファイルsum.jspを実行する。そうすると、 ブラウザが起動され、その上で1〜100の間の奇数を合計した結果が表示される。
プログラム sum.java の説明:
1〜100の間の奇数を合計する処理は、
<% int result=0; for(int i=1;i<=100;i++){ if(i % 2 == 0){continue;} result += i; } out.println("合計値:" + result); %>のスクリプトレット内の繰り返し処理によっておこなわれる。
問題-1
kuku.jsp
を
実行してみよ。
問題-2
kuku.jsp
をwhile構文で書き換えた
プログラムkuku1.jspを作成し、NetBeansを使って実行してみよ。
問題-3
sum.jsp
を
実行してみよ。
問題-4
sum.jsp
を参考にして、
偶数の合計を求めて表示するプログラムsum1.jspを作成し、
NetBeansを使って実行してみよ。
問題-5
sum2.jsp
を作成し、
NetBeansを使って実行してみよ。
while文を使って100以上から1000未満までの偶数整数(100,102,..,998)
の合計を計算して「even sum = ?」を表示する。
問題-6
minmax.jsp
を作成し、
NetBeansを使って実行してみよ。
大きさ10の配列を用意してその要素にfor文を使って0以上1未満の乱数を
代入し、その最大値と最小値と対応する配列番号を「max = ? at index = ?」
と「min = ? at index = ?」で表示する。