DTP→ほそぼそとWeb業界のカタスミでお仕事しています・・・

最終課題-その3-(PHPでレコードの変更:UPDATE文)

最終課題-その1-
最終課題-その2-(PHPでMySQLにデータを登録・削除:INSERT文・DELETE文)
の続きです。

コードは試行錯誤の末なので、正しいのかどうかは不明(^^;)
↓この部分をめも(画像はクリックで拡大します)
↓物件の変更用のPHP その1
<!-- ↓↓メインコンテンツ ここから↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -->
<div class="box1">
<h2>管理者用画面:物件を変更します</h2>
<p>(現在の物件一覧)↓下記の物件一覧から、変更したい物件をお選びください。</p>
<table class="carTable bsi">
<tr><td>番号</td>
<th>物件名</th><th>所在地</th><th>用途</th><th>間取り</th><th>敷金</th><th>礼金</th><th>家賃</th><th>入居</th><th>備考</th><th>-</th></tr>

<?php require('db.php');
$stmt = $pdo->query("SELECT * FROM buken_tbl ORDER BY no DESC");
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {	
    echo('<<form id="frmInput" name="frmInput" method="post" action="bukken-henkou-p1.php"><tr>');
    echo('<td>'.$row['no'].'</td>'); //番号
    echo('<td>'.$row['bukenmei'].'</td>'); //物件名
    echo('<td>'.$row['jusho'].'</td>'); //所在地
    echo('<td>'.$row['youto'].'</td>'); //用途
    echo('<td>'.$row['madori'].'</td>'); //間取り
    echo('<td>'.$row['siki'].'</td>'); //敷金
    echo('<td>'.$row['rei'].'</td>'); //礼金
    echo('<td>'.$row['yachin'].'</td>'); //家賃
    echo('<td>'.$row['iri'].'</td>'); //入居
    echo('<td>'.$row['bikou'].'</td>'); //備考
    echo('<td><input type=submit name='.$row['no'].' value="変更する" /></td>'); //変更する
    echo('</tr><input type="hidden" name="no" value="'.$row['no'].'"></form>');
}
?>
</table>
<p class="migi"><a href="index.html">→管理画面HOMEに戻る</a></p>
</div><!-- /.box1 -->
</div><!-- /#contents -->
<!-- ↑↑メインコンテンツ ここまで↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -->

↓物件の変更用のPHP その2
↓(変更のボタンが押されたデータを表示。変更内容を入力してもらうフォーム画面)
↓ここで書き方がややこしかったので、調べてみたところ
↓ヒアドキュメントというものを知り、初めて使用(^^;)
<!-- ↓↓メインコンテンツ ここから↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -->
<div class="box1">
<h2>管理者用画面:<?php
		$no = $_POST['no'];
	if (count($no)>0){
		echo('['.$no.']番の物件を変更します。');
	}else{
		echo('データ届いてないです'.$no);
	}
?></h2>

<table class="carTable aida15 bsi"><tr>
<?php require('db.php');
$stmt = $pdo->query("SELECT * FROM buken_tbl WHERE no=$no");
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
    echo('<td>'.$row['no'].'</td>'); //番号
    echo('<td>'.$row['bukenmei'].'</td>'); //物件名
    echo('<td>'.$row['jusho'].'</td>'); //所在地
    echo('<td>'.$row['youto'].'</td>'); //用途
    echo('<td>'.$row['madori'].'</td>'); //間取り
    echo('<td>'.$row['siki'].'</td>'); //敷金
    echo('<td>'.$row['rei'].'</td>'); //礼金
    echo('<td>'.$row['yachin'].'</td>'); //家賃
    echo('<td>'.$row['iri'].'</td>'); //入居
    echo('<td>'.$row['bikou'].'</td>'); //備考
}
$stmt -> execute();
?>
</tr></table>
<p>変更部分を入力し直してください。</p>

<?php require('db.php');
$stmt = $pdo->query("SELECT * FROM buken_tbl WHERE no=$no");
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
 $bukenmei = $row['bukenmei'];
 $jusho = $row['jusho'];
 $youto = $row['youto'];
 $madori = $row['madori'];
 $siki = $row['siki'];
 $rei = $row['rei'];
 $yachin = $row['yachin'];
 $iri = $row['iri'];
 $bikou = $row['bikou'];
 $no = $row['no'];
//ヒアドキュメント内の表示部分
echo<<
<table class="carTable aida15 bsi">
<tr><th>物件名</th><td><input name="bukenmei" type="text" id="bukenmei" size="35" maxlength="255" value="$bukenmei" /></td></tr>
<tr><th>住所<td><<input name="jusho" type="text" id="jusho" size="70" maxlength="255" value="$jusho" /></td></tr>
<tr><th>用途</th><td><input name="youto" type="text" id="youto" size="35" maxlength="10" value="$youto" /></td></tr>
<tr><th>間取り</th><td><input name="madori" type="text" id="madori" size="35" maxlength="100" value="$madori" /></td></tr>
<tr><th>敷金</th><td><input name="siki" type="text" id="siki" size="35" maxlength="10" value="$siki" /></td>
<tr><th>礼金</th><td><input name="rei" type="text" id="rei" size="35" maxlength="10" value="$rei" /></td></tr>
<tr><th>家賃</th><td><input name="yachin" type="text" id="yachin" size="35" maxlength="10" value="$yachin" /></td></tr>
<tr><th>入居</th><td><input name="iri" type="text" id="iri" size="35" maxlength="10" value="$iri" /></td></tr>
<tr><th>備考</th><td><input name="bikou" type="text" id="bikou" size="70" maxlength="255" value="$bikou" /></td></tr>
<tr><td colspan="2"><input type=submit name="no" value="この内容で変更する" /></td><</tr	
<input type="hidden" name="no" value="$no" />
</table>
</form>
EOF;
}
?>

<p class="migi"><a href="index.html">→管理画面HOMEに戻る</a></p>
</div><!-- /.box1 -->
</div><!-- /#contents -->
<!-- ↑↑メインコンテンツ ここまで↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -->

↓物件の変更用のPHP その3
↓(データーベースを変更するPHP UPDATE文)
<!-- ↓↓メインコンテンツ ここから↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -->
<div class="box1">
<?php require('db.php'); ?>

<?php
$bukenmei = $_POST['bukenmei']; //物件名
$jusho = $_POST['jusho']; //所在地
$youto = $_POST['youto']; //用途
$madori = $_POST['madori']; //間取り
$siki = $_POST['siki']; //敷金
$rei = $_POST['rei']; //礼金
$yachin = $_POST['yachin']; //家賃
$iri = $_POST['iri']; //入居
$bikou = $_POST['bikou']; //備考
$no = $_POST['no']; //番号
?>	
	
<h2>管理者用画面:<?php
	$no = $_REQUEST['no'];
    echo($no.'番の');
?>物件が変更されました</h2>

<?php
$sql ='UPDATE buken_tbl SET bukenmei=:bukenmei, jusho=:jusho, youto=:youto, madori=:madori, siki=:siki, rei=:rei, yachin=:yachin, iri=:iri, bikou=:bikou WHERE no=:no';
$stmt = $pdo -> prepare($sql);
$stmt->bindValue(':bukenmei', $bukenmei, PDO::PARAM_INT);
$stmt->bindValue(':jusho', $jusho, PDO::PARAM_INT);
$stmt->bindValue(':youto', $youto, PDO::PARAM_INT);
$stmt->bindValue(':madori', $madori, PDO::PARAM_INT);
$stmt->bindValue(':siki', $siki, PDO::PARAM_INT);
$stmt->bindValue(':rei', $rei, PDO::PARAM_INT);
$stmt->bindValue(':yachin', $yachin, PDO::PARAM_INT);
$stmt->bindValue(':iri', $iri, PDO::PARAM_INT);
$stmt->bindValue(':bikou', $bikou, PDO::PARAM_INT);
$stmt->bindValue(':no', $no, PDO::PARAM_INT);
$stmt->execute();
?>


<table class="carTable">
<tr><th>番号</th><th>物件名</th><th>所在地</th><th>用途</th><th>間取り</th><th>敷金</th><th>礼金</th><th>家賃</th><th>入居</th><th>備考</th></tr>

<?php
$stmt = $pdo->query("SELECT * FROM buken_tbl ORDER BY no DESC");
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
    echo('<tr>');
    echo('<td>'.$row['no'].'</td>'); //番号
    echo('<td>'.$row['bukenmei'].'</td>'); //物件名
    echo('<td>'.$row['jusho'].'</td>'); //所在地
    echo('<td>'.$row['youto'].'</td>'); //用途
    echo('<td>'.$row['madori'].'</td>'); //間取り
    echo('<td>'.$row['siki'].'</td>'); //敷金
    echo('<td>'.$row['rei'].'</td>'); //礼金
    echo('<td>'.$row['yachin'].'</td>'); //家賃
    echo('<td>'.$row['iri'].'</td>'); //入居
    echo('<td>'.$row['bikou'].'</td>'); //備考
    echo('</tr>');
}
?>

</table>
<a href="index.html">→管理画面に戻る</a>
</div>
</div><!-- /#contents -->
<!-- ↑↑メインコンテンツ ここまで↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -->

最終課題-その2-(PHPでMySQLにデータを登録・削除:INSERT文・DELETE文)

前回の続き
したかったことは物件の登録、削除、変更です。
↓データベースの構造は以下の感じ(画像はクリックで拡大します)


↓コードは以下の感じ。試行錯誤したので、これで正しいかどうかはナゾ。
↓まずは、データベースの呼び出し用の共通コード(各PHPの中で呼ばれている db.php )
<?php
try {
$pdo = new PDO('mysql:host=127.0.0.1;dbname=DB名;charset=utf8','ユーザー名','パスワード',
array(PDO::ATTR_EMULATE_PREPARES => false));
} catch (PDOException $e) {
 exit('データベース接続失敗。'.$e->getMessage());
}
?>

↓物件の登録・削除用のPHP その1
<!-- ↓↓メインコンテンツ ここから↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -->
<div class="box1">
<h2>管理者用画面:物件を登録します  <span class="size12"><a href="#bu">→物件一覧の確認</a></span></h2>
<p>登録する物件の内容を入力してください。</p>
<form id="frmInput" name="frmInput" method="post" action="bukken-touroku-p.php">
<table class="carTable aida15">
<tr><th>物件名</th><td><input name="bukenmei" type="text" id="bukenmei" size="35" maxlength="255" /></td></tr>
<tr><th>所在地</th><td><input name="jusho" type="text" id="jusho" size="70" maxlength="255" /></td>
<tr><th>用途</th><td><input name="youto" type="text" id="youto" size="35" maxlength="10" /></td></tr>
<tr><th>間取り</th><td><input name="madori" type="text" id="madori" size="35" maxlength="100" /></td></tr>	
<tr><th>敷金</th><td><input name="siki" type="text" id="siki" size="35" maxlength="10" /></td></tr>
<tr><th>礼金</th><td><input name="rei" type="text" id="rei" size="35" maxlength="10" /></td></tr>
<tr><th>家賃</th><<input name="yachin" type="text" id="yachin" size="35" maxlength="10" /></td>
<tr><th>入居</th><td><input name="iri" type="text" id="iri" size="35" maxlength="10" /></td></tr>
<tr><th>備考</th><td><input name="bikou" type="text" id="bikou" size="70" maxlength="255" /></td>
</table>
<input type="submit" value="登録する" class="aida15" />
</form>	
</div><!-- /.box1 -->
	

<div class="box1">
<h2 id="bu">確認用 : 現在の物件一覧</h2>
<table class="carTable bsi">
<tr><td>番号</td>
<th>物件名</th><th>所在地</th><th>用途</th><th>間取り</th><th>敷金</th><th>礼金</th><th>家賃</th><th>入居</th><th>備考</th><th>-</th></tr>

<?php require('db.php');
$stmt = $pdo->query("SELECT * FROM buken_tbl ORDER BY no DESC");
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {	
    echo('<form id="frmInput" name="frmInput" method="post" action="bukken-kesu.php"><tr>');
    echo('<td>'.$row['no'].'</td>'); //番号
    echo('<td>'.$row['bukenmei'].'</td>'); //物件名
    echo('<td>'.$row['jusho'].'</td>'); //所在地
    echo('<td>'.$row['youto'].'</td>'); //用途
    echo('<td>'.$row['madori'].'</td>'); //間取り
    echo('<td>'.$row['siki'].'</td>'); //敷金
    echo('<td>'.$row['rei'].'</td>'); //礼金
    echo('<td>'.$row['yachin'].'</td>'); //家賃
    echo('<td>'.$row['iri'].'</td>'); //入居
    echo('<td>'.$row['bikou'].'</td>'); //備考
    echo('<td><input type=submit name='.$row['no'].' value="削除する" /></td>'); //削除する
    echo('</tr><</form>');
}
?>
</table>
<p class="migi"><a href="index.html">→管理画面HOMEに戻る</a></p>
</div><!-- /.box1 -->	
</div><!-- /#contents -->
<!-- ↑↑メインコンテンツ ここまで↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -->

↓物件の登録・削除用のPHP その2
↓(登録されたデータを受け取って、データベースに書き込むPHP)
<!-- ↓↓メインコンテンツ ここから↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -->
<div class="box1">
<h2>管理者用画面:物件が登録されました</h2>

<table class="carTable aida15">
<tr><th>番号</th><th>物件名</th><th>所在地</th><th>用途</th><th>間取り</th><th>敷金</th><th>礼金</th><th>家賃</th><th>入居</th><th>備考</th></tr>

<?php require('db.php'); ?>

<?php
$bukenmei = $_POST['bukenmei']; //物件名
$jusho = $_POST['jusho']; //所在地
$youto = $_POST['youto']; //用途
$madori = $_POST['madori']; //間取り
$siki = $_POST['siki']; //敷金
$rei = $_POST['rei']; //礼金
$yachin = $_POST['yachin']; //家賃
$iri = $_POST['iri']; //入居
$bikou = $_POST['bikou']; //備考
$no = $_POST['no']; //番号


$sql ='INSERT INTO buken_tbl SET bukenmei=:bukenmei, jusho=:jusho, youto=:youto, madori=:madori, siki=:siki, rei=:rei, yachin=:yachin, iri=:iri, bikou=:bikou';
$stmt = $pdo -> prepare($sql);
$stmt->bindValue(':bukenmei', $bukenmei, PDO::PARAM_INT);
$stmt->bindValue(':jusho', $jusho, PDO::PARAM_INT);
$stmt->bindValue(':youto', $youto, PDO::PARAM_INT);
$stmt->bindValue(':madori', $madori, PDO::PARAM_INT);
$stmt->bindValue(':siki', $siki, PDO::PARAM_INT);
$stmt->bindValue(':rei', $rei, PDO::PARAM_INT);
$stmt->bindValue(':yachin', $yachin, PDO::PARAM_INT);
$stmt->bindValue(':iri', $iri, PDO::PARAM_INT);
$stmt->bindValue(':bikou', $bikou, PDO::PARAM_INT);
//$stmt->bindValue(':no', $no, PDO::PARAM_INT);
$stmt->execute();


$stmt = $pdo->query("SELECT * FROM buken_tbl ORDER BY no DESC");
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
    echo('<tr>');
    echo('<td>'.$row['no'].'</td>'); //番号
    echo('<td>'.$row['bukenmei'].'</td>'); //物件名
    echo('<td>'.$row['jusho'].'</td>'); //所在地
    echo('<td>'.$row['youto'].'</td>'); //用途
    echo('<td>'.$row['madori'].'</td>'); //間取り
    echo('<td>'.$row['siki'].'</td>'); //敷金
    echo('<td>'.$row['rei'].'</td>'); //礼金
    echo('<td>'.$row['yachin'].'</td>'); //家賃
    echo('<td>'.$row['iri'].'</td>'); //入居
    echo('<td>'.$row['bikou'].'</td>'); //備考
    echo('</tr>');
}
?>
</table>
<p class="migi"><a href="index.html">→管理画面HOMEに戻る</a></p>
</div><!-- /.box1 -->
</div><!-- /#contents -->
<!-- ↑↑メインコンテンツ ここまで↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -->

↓物件の登録・削除用のPHP その3
↓(削除のボタンが押されたデータを削除するPHP)
<!-- ↓↓メインコンテンツ ここから↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -->
<div class="box1">
<?php require('db.php');
$no = $_REQUEST['no'];
$sql = 'DELETE FROM buken_tbl where no=:no';
$stmt = $pdo -> prepare($sql);
$stmt -> bindValue(':no', $no, PDO::PARAM_INT);
$stmt -> execute();
?>


<h2>管理者用画面:<?php
	$no = $_REQUEST['no'];
    echo($no.'番の');
?>物件が削除されました</h2>


<table class="carTable aida15">
<tr><th>番号</th><th>物件名</th><th>所在地</th><th>用途</th><th>間取り</th><th>敷金</th><th>礼金</th><th>家賃</th><th>入居</th><th>備考</th></tr>

<?php 
$stmt = $pdo->query("SELECT * FROM buken_tbl ORDER BY no DESC");
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
    echo('<tr>');
    echo('<td>'.$row['no'].'</td>'); //番号
    echo('<td>'.$row['bukenmei'].'</td>'); //物件名
    echo('<td>'.$row['jusho'].'</td>'); //所在地
    echo('<td>'.$row['youto'].'</td>'); //用途
    echo('<td>'.$row['madori'].'</td>'); //間取り
    echo('<td>'.$row['siki'].'</td>'); //敷金
    echo('<td>'.$row['rei'].'</td>'); //礼金
    echo('<td>'.$row['yachin'].'</td>'); //家賃
    echo('<td>'.$row['iri'].'</td>'); //入居
    echo('<td>'.$row['bikou'].'</td>'); //備考
    echo('</tr>');
}
?>

</table>
<p class="migi"><a href="index.html">→管理画面HOMEに戻る</a></p>
</div><!-- /.box1 -->
</div><!-- /#contents -->
<!-- ↑↑メインコンテンツ ここまで↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -->

最終課題-その1-

長かったようで、短かった職業訓練。
来週の月曜日が修了式なんですよねー。

課題は木曜に締め切り。
できた!(つもり)

◎内容は自由
◎JavaScriptを使用する
◎データベースを使用する(JavaとMySQL)
◎設計書を提出する
◎テスト評価書を提出する
・・・と言う感じなんですが、先生に相談すると内容の融通はきくようです。
(例:ホームページのトップページだけ制作、など)

ちなみに私は、Javaで落ちこぼれたので、PHPにしてもらいました(^^;)

PHPにしてもらったからと言って、私には簡単なわけではなく
ローカルでできても、いざアップしたらサーバーの仕様が違っているようで?
動かなくて悩みました。
(学校では教室内サーバーにUPしたらOKだったんですが、一人だけPHPなので
 バリュードメインの無料サーバーを使いました)

・・・試行錯誤の末、動いたので、記念にめも。

何がしたいかというと、物件の登録、削除、変更をしました。
↓こんな感じ。(画像はクリックで拡大します)

コードは最終課題-その2-(PHPでMySQLにデータを登録・削除:INSERT文・DELETE文)に続きます。

Javaで挫折したのでphpで課題をしてみました

追記・・・コードに不具合があるようでしたので、コードは非表示にしました。
     コメントありがとうございましたm(_ _)m

------------------------------------------------------------

・・・今日も制作日(自習)なので、今日は学校でまとめをしてみました。
本来はJavaで作るのですが、私のレベルでは難解すぎるのでphpにしました(^^;)
(詳しくはXAMPPのMySQLを使ってみる2へ)
学校のパソコンのペイントで画像を保存しているので、ちょっと粗いです(画像はクリックで拡大します)

↓コードは以下の通り(自分であーだこーだしたので、変かも)
追記・・・コードに不具合があるようでしたので、非表示にしましたm(_ _)m
やっぱり変でした・・・

XAMPPのMySQLを使ってみる2

学校でJavaの課題が出まして、見当もつかないです(^^;)

・・・クラスの方々が親切に説明してくれたのですが、挫折
個人的な希望で先生にお願いして
PHPをさせてもらうことにしましたm(_ _)m

▼PHPのコードはこちら(ページ内リンク)
▼Javaのコードはこちら(教科書の参考コード。これを改変するそうですが挫折)(ページ内リンク)

・・・と、いうわけで XAMPPのMySQLを使ってみました。
(↓以下、クリックで画像は拡大します)

コードは私にはわからなかったので、フォームについて載っていた
よくわかるPHPの教科書 たにぐち まこと著 からです。
買いました(^^)←でもこれ、後ろのほうにフォームが載っていたので
時間があるときにちゃんと前にさかのぼって読みたいと思います
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>MySQLに接続してみます
</head>
<body>
<div id="wrap">
<h2>MySQLに接続してみます
<img src="car.gif"/ >
<div id="content"> <?php mysql_connect('localhost', 'root', '') or die(mysql_error()); echo 'データベースに接続しました<br />'; mysql_select_db('javatest') or die(mysql_error()); echo 'データベーススペース「javatest」を選択しました<br />'; mysql_query('SET NAMES UTF8'); echo '文字コードを「UTF8」にしました<br /><br />'; echo 'データを取り出してみます<br />'; ?> <table class="carTable"> <tr><<th>番号</th><th>名前</th></tr> <?php $result = mysql_query('SELECT * FROM 車表'); while ($row = mysql_fetch_assoc($result)) { echo('<tr>'); echo('<td>'.$row['番号'].'</td>'); echo('<td>'.$row['名前'].'</td>'); echo('</tr>'); } ?> </table> <div class="samo">index.php</div> </div> </div> </body> </html>

追記・・・ちなみに、Javaで同じ結果を得ようと思うと、
ファイルが3つもいります(@-@)
もちろん使われるのはclassファイルなので、コンパイル通らなくてはいけません
WEB-INFの中のxmlを入れるとファイルが4つもいります。
以下は教科書の参考コードで、課題の答えではありません
これをどう変えたらいいのか、見当がつきませんでした。
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ page import="java.util.*" %>
<jsp:useBean id="cb" class="mybeans.CarDBBean" scope="request" />
<%! ArrayList colname; ArrayList data; %>
<% colname = cb.getColname(); data = cb.getData(); %>	
<html>
<head>
<title>サンプル</title>
<link rel="stylesheet" href="img/style.css" type="text/css" />
</head>
<body><center>
<img src="img/car.gif"/ ><br />
<h2>ようこそ</h2>
<hr />
お選びください。<br />
colname:<%= colname %><br />
data:<%= data %><br />	
<table border="1" class="ts5">
<tr bgcolor="#E0C76F">
<% for(int column=0; column
<th>
<%= (String) colname.get(column) %>
</th>
<% } %>
</tr>
<% for(int row=0; row
<tr>
<%
ArrayList rowdata = (ArrayList) (data.get(row));
for(int column=0; column
<td>
<%= rowdata.get(column) %>
</td>
<% } %>
</tr>
<% } %>
</table>
<div class="samo">Lesson8 Sample5.jsp</div>
</center></body>
</html>

↓WEB-INFの中の、classesフォルダの中に入れるファイル
import mybeans.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Sample5 extends HttpServlet//ユーザーからのリクエストをつけつけるサーブレットです
{
	public void doGet(HttpServletRequest request, //URLから直接呼ばれたときのメソッド Requestリクエスト
					HttpServletResponse response) //今までのメインメソッドにかわるもの Responseレスポンス
		throws ServletException
	{
		try{
			//メソッド コンテンツタイプの設定 セットコンテンツタイプ
			//response.setContentType ("text/html; charset=Shift_JIS"); //テキスト型 文字はシフトジス
			//サーブレットコンテキストの取得
			ServletContext sc = getServletContext();
			
			//Beanの作成
			CarDBBean cb = new CarDBBean();
			
			//リクエストに設定
			request.setAttribute("cb",cb);
			
			//リクエストの転送
			sc.getRequestDispatcher("/Sample5.jsp").forward(request, response);
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
}

↓WEB-INFの中の、classesフォルダの中の、mybeansフォルダに入れるファイル
package mybeans;
import java.util.*;
import java.io.*;
import java.sql.*;

public class CarDBBean implements Serializable //データベースに接続するBeanです
{
	public ArrayList colname; //列名(ストリング型)を保存するリストです
	public ArrayList data; //表全体を保存するリストです。宣言がになっている。
	
		public CarDBBean()
	{
		try{
			//接続の準備 JDBCドライバを指定します
			String url = "jdbc:mysql://localhost:3306/javatest"; //MySQL
			String usr = "root"; //ユーザー
			String pw = "*****"; //パスワード
				
			//データベースに接続します
			Class.forName("com.mysql.jdbc.Driver");
			Connection cn = DriverManager.getConnection(url, usr, pw);
			
			//問い合わせの準備
			DatabaseMetaData dm = cn.getMetaData();
			ResultSet tb = dm.getTables(null, null, "車表", null);
			
			Statement st = cn.createStatement();
			
			String qry1 = "CREATE TABLE 車表(番号 int, 名前 varchar(50))";
			String[] qry2 = {
				"INSERT INTO 車表 VALUES (2, '乗用車')",
				"INSERT INTO 車表 VALUES (3, 'オープンカー')",
				"INSERT INTO 車表 VALUES (4, 'トラック')"};
			String qry3 = "SELECT * FROM 車表";
			
			if(!tb.next()){
				st.executeUpdate(qry1);
				for(int i=0; i(cnum);
			
			//列名の取得
			for(int i=1; i<=cnum; i++){
				colname.add(rm.getColumnName(i).toString());
			}
			
			//行の取得
			data = new ArrayList();
			while(rs.next()){
				ArrayList rowdata = new ArrayList();
				for(int i=1; i<=cnum; i++){
					rowdata.add(rs.getObject(i).toString());
			}
			
			data.add(rowdata);
		}
		
		//接続のクローズ
		rs.close();
		st.close();
		cn.close();
	}
		catch(Exception e){
			e.printStackTrace();
		}
	}
	public ArrayList getData()
	{
		return data;
	}
	public ArrayList getColname()
	{
		return colname;
	}
}

・・・私のレベルでは理解不能(--;)
.jspからサーブレットに送って、JavaBeanが処理してるんですかね?