質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

1回答

2081閲覧

削除機能の実装に関して

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2020/04/13 08:30

編集2020/04/13 12:28

前提・実現したいこと

java,mysql,Tomcatで掲示板を作成しています。その中で、削除機能を実装したいのですが、なかなか上手くいきません。削除パスワードを入力して間違っていたらエラーの表示、合っていたら削除という形にしたいです。その場合、どのように以下を訂正すれば良いでしょうか。
現状のところパスワードを入力して削除ボタンを押しても反応しない(削除できない)状態にあります。

該当のソースコード

「MessageDao.java」

public String getPassword(String Id) throws Exception { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; String rspassword = null; try { String deleteid = null; conn = this.getConnection(); String sql = "SELECT * FROM MESSAGE_TABLE where ID =" + deleteid; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); if (rs.next()) { rspassword = rs.getString("PASSWORD"); } else { System.out.println("一致するレコードがありません。"); } } finally { this.close(rs); this.close(pstmt); this.close(conn); } return rspassword; } public int deleteMessage(String id) throws Exception { Vector<Message> messageList = new Vector<Message>(); int j = 0; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = this.getConnection(); String sql = "DELETE FROM TABLE_ITEM WHERE ID = " + id; pstmt = conn.prepareStatement(sql); j = pstmt.executeUpdate(); } finally { this.close(rs); this.close(pstmt); this.close(conn); } return j; }

「Servlet.java」

int deleteid = dao.getNextId(); String deletepassword = message.getPassword(); String rspassword = dao.getPassword("deleteid"); if (deletepassword.equals(rspassword)){ dao.deleteMessage("id"); } else{ errormessage = "パスワードが違います。"; request.setAttribute("errormessage", errormessage); }

「jsp」

<td>パスワード</td> <td> <input type="password" size="10" > <input type="hidden" name="id" value="<%= message.getId() %>"> <input type="submit" name="" value="削除"> </td> </tr> </table><br>

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/13 08:38

prepareStatement つかってるんだからsqlインジェクションコードやめろよといいたい
m.ts10806

2020/04/13 11:48

コードはマークダウンのcode機能を利用してご提示ください。
m.ts10806

2020/04/13 11:50

「うまくいきません」では何も伝わらないので、起きてる現象を具体的に記載してください。 仕様や要件、現象を知ってるのが質問者だけという状態では何も解決しません。
guest

回答1

0

jspが半端な提示のされかたに見えますが追記されないので、この内容から言えること。

formタグで送信したい要素が囲われてない。

です。
なにも起きないならformタグがないことが原因かと思います。
もちろん単にformタグで囲めばいいわけではないので、適切な属性と属性値を盛り込んでください。

あと既に指摘がありますが、入力値をそのままSQLに突っ込むのはSQLインジェクションの脆弱性があります。
せっかくのプリペアドステートメントが意味をなしてないので、意味や用法をきちんとおさえた上で適切に利用してください。

投稿2020/04/13 20:23

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問