教育サーバーのページ
オンラインテキスト目次
システムプログラミング演習
次のプログラム 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 = ?」で表示する。