プロが教える店舗&オフィスのセキュリティ対策術

お世話になっております。
早速なのですが、JSP, Servlet, MySQL, tomcat, javaなどをつかいWebアプリケーションを作成したいと思い投稿しました。
まずJSPのページにデータベース内容一覧を表示させそれらにinput type=checkboxを付けsubmitを使い、次のページで「~~~を削除しますか?」と表示させたいのですが・・・。
どのように次のページにデータベースとcheckboxの情報を引き渡すのかが分からなくなってしまいました。
どうかご教授ください。それとこれに関するサイトなどございましたらお教えください。
-----------------------------------------
<%@ page language="java" contentType="text/html; charset=Shift-Jis"
import="java.sql.*"%>

<html>
<head>
<title>一覧表示</title>
</head>
<body>
<%
String lh = "localhost:xxxx";//ホスト名
String user = "xxxx";//user名
String DB = "system";//データベース名
String rr = "接続中";//接続ステータス
//接続データベース情報の表示
out.println("<h1 align='center'><u>マスターメンテナンスシステム</u></h1>");
out.println("<table border='1' align='left' bgcolor='#ffffff' width='100%'>");
out.println("<tr bgcolor='#ffffff'>");
out.println("<td><h2 align='center' style='background:#cccccc'>接続データベース</h2>");
out.println("<div><br></div>");
out.println("<h3>ホスト    <label>" + lh + "</label></h3>");
out.println("<h3>ユーザー  <label>" + user + "</label></h3>");
out.println("<h3>データベース<label>" + DB + "</label></h3>");
out.println("<h3>ステータス <label>" + rr + "</label></h3>");


%>

<form action="delete3.jsp" method="POST">
<h1 style="background:#cccccc" align="center"><u>テーブル詳細</u></h1>
<table border="0" width="100%">
<tr style="background:#00ccff">
<th>/</th><th>NO.</th><th>PC名</th><th>構成価格/値段</th><th>OS</th><th>CPU</th><th>モニター</th><th>詳細</th></tr>
<%
Class.forName("org.gjt.mm.mysql.Driver");
Connection db=DriverManager.getConnection("jdbc:mysql://localhost:xxxx/sistem?user=xxxx&password=xxxx&useUnicode=true&characterEncoding=SJIS");
Statement sttSql=db.createStatement();
ResultSet rs=sttSql.executeQuery("SELECT * FROM dell_pc");
while(rs.next()) {
String number=rs.getString("number");
out.println("<tr style='background:#ffffcc'>");
out.println("<td><input type='checkbox' name='tables'></td>");
out.println("<td>" + rs.getString("number") + "</td>");
out.println("<td>" + rs.getString("PC") + "</td>");
out.println("<td>" + rs.getString("kakaku") + "</td>");
out.println("<td>" + rs.getString("OS") + "</td>");
out.println("<td>" + rs.getString("CPU") + "</td>");
out.println("<td>" + rs.getString("display") + "</td>");
out.println("<td><a name='詳細' href='b.jsp?number=" + number + "'>" + number + "</a></td>");
out.println("</tr>");
}
sttSql.close();
db.close();
%>



</table>

<a href="a.jsp">TOPへ</a>
<input type="submit" value="削除">


</form>
</body>
</html>

-----------------------------------
環境ですがjdk1.5.0_11、MySQL5.0、tomcat6.0、eclipse3.2です。

A 回答 (1件)

うまくいくかどうか自信がないですが


out.println("<td><input type='checkbox' name='tables'></td>")

out.println("<td><input type='checkbox' name='tables' 
value=\"<%= number %>\"></td>")
でうまくいけば
delete3.jsp内でdelete from dell_pc where number=request.getParameter("tables");
ではどうですか。

参考URL:http://www.fk.urban.ne.jp/home/kishida/kouza/kis …
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。このような感じでよろしいでしょうか?
とりあえずご説明を頼りに作成してみました。
初心者ですので駄目出し並びご忠告をもらえるとうれしいです。
Delete.java
----------------------------
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Delete extends HttpServlet {

public void doPost(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, IOException {

req.setCharacterEncoding("Shift-jis");

Query mysqlbean = null;

try {

String tables = req.getParameter("tables");

mysqlbean = new Query();

String query1 = "SELECT * FROM dell_pc WHERE number = " + tables;

//SQLを実行
mysqlbean.setQueryStr(query1);
mysqlbean.dbConnect();
mysqlbean.doQuery();
mysqlbean.dbClose();
mysqlbean.setId(tables);


int rows = (int)mysqlbean.getRows();

if( rows > 0 ) {

mysqlbean = new Query();

//SQL文 DELETEを作成
String query2 = "DELETE FROM dell_pc WHERE number = " + tables;

//SQLを実行
mysqlbean.setQueryStr(query2);
mysqlbean.dbConnect();
mysqlbean.doUpdate();
mysqlbean.dbClose();
mysqlbean.setMsg(" numberが " + tables + " のデータを削除しました。 ");


}else{

mysqlbean.setMsg(" numberが " + tables + "のデータはありません。 ");


}


}catch (Exception e) {

//エラー処理
e.printStackTrace();

}


//setAttribute()でデータを保管
req.setAttribute("mysqlbean", mysqlbean);

//RequestDispatcherオブジェクトをJSPに転送
String jspname = "/delete3.jsp";
ServletContext context = getServletContext();
RequestDispatcher rd = context.getRequestDispatcher(jspname);
rd.forward( req, resp );

}

}

お礼日時:2007/07/06 11:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!