前提
ここに質問の内容を詳しく書いてください。
(例)
jsp,javaであるシステムの機能の一部である利用者管理機能を作っています。
利用者削除機能を実装中に以下のエラーメッセージが発生しました。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- 削除機能を動作するようにする
発生している問題・エラーメッセージ
HTTPステータス 404 - /sys4/delete
該当のソースコード
Usr_del.jsp 12/29
1<%@page import="food.Users" %> 2<%@ page import="food.Usr_database"%> 3<%@ page import="java.sql.*" %> 4<%@ page import="java.util.ArrayList" %> 5<%@ page import="java.util.Iterator" %><%@ page language="java" contentType="text/html; charset=UTF-8" 6 pageEncoding="UTF-8"%> 7<!DOCTYPE html> 8<html> 9<head> 10<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 11<title>利用者削除画面</title> 12</head> 13<body> 14【利用者削除】<br> 15<div align="right" class="example-r"> 16 <a href="<%= request.getContextPath() %>/Usr_mgmt/Usr_srch.jsp">利用者検索</a><br> 17</div> 18<% 19String id = request.getParameter("id");//new 20 21 22Users uu=new Users(); 23 24Usr_database db = new Usr_database(); 25db.connect("food", "root", "root"); 26 27 uu = db.getUsers(id); 28 %> 29 30<!-- <form action="./delete" method="post"> --> 31 <form action="<%= request.getContextPath() %>/delete" method="post"> 32 <table summary="フォーム表示用テーブル"> 33 <tr> 34 <th>id</th> 35 <td><% out.print("<input readonly='text' name='id' value="+uu.getId()); %>></td> 36 </tr> 37 <tr> 38 <th>name</th> 39 <td><%out.print("<input readonly='text' name='name' value="+uu.getName()); %>></td> 40 </tr> 41 <tr> 42 <th>kana</th> 43 <td><%out.print("<input readonly='text' name='kana' value="+uu.getKana()); %>></td> 44 </tr> 45 <tr> 46 <th>gender</th> 47 <td><%out.print("<input readonly='select' name='gender' value="+uu.getGender()); %>></td> 48 </tr> 49 <tr> 50 <th>birth</th> 51 <td><%out.print("<input readonly='text' name='birth' value="+uu.getBirth()); %>></td> 52 </tr> 53 <tr> 54 <th>mail</th> 55 <td><%out.print("<input readonly='text' name='mail' value="+uu.getMail()); %>></td> 56 </tr> 57 58 <tr> 59 <td colspan=2 style="text-align:center"> 60 <input type="submit" name="delete" value="削除"> 61 </td> 62 </tr> 63 </table> 64</form> 65<script> 66function buttonClick(){ 67 var res= confirm("本当に削除しますか?") 68 if (res==true) { 69 return true; 70 } 71 else if(res==false) { 72 alert("キャンセルされました。"); 73 return false; 74 } 75} 76</script> 77</body> 78</html>
delete.java package food; import java.io.IOException; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class insert */ @WebServlet("/delete") public class delete extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public delete() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8");//文字化け対策 String id = request.getParameter("id"); Users uu=new Users(); uu.setId(id); Usr_database db = new Usr_database(); try { db.connect("food", "root", "root"); db.deleteUsers(id); db.close(); } catch(SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } response.sendRedirect("Usr_mgmt/Usr_srch.jsp"); } }
補足情報(FW/ツールのバージョンなど)
Usr_top.jsp(TOP画面)からUsr_srch.jsp(検索画面)に遷移します。
Usr_srch.jsp(検索画面)からユーザのidで検索をかけてユーザの値を表示します。
そこに、更新と削除リンクボタンがあり、削除リンクボタンを押下するとUsr_del.jspに遷移します。
Usr_del.jspで削除ボタンを押下すると、delete.javaに遷移し、削除の処理を実行します。
Usr_del.jspに遷移するまでの処理はうまくいっています。delete.javvaに遷移するところがうまくいきません。
userテーブルの情報は下記です。
MariaDB [food]> show columns from user;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | varchar(5) | NO | | NULL | |
| name | varchar(20) | NO | | NULL | |
| kana | varchar(20) | NO | | NULL | |
| gender | varchar(10) | NO | | NULL | |
| date | date | NO | | NULL | |
| mail | varchar(50) | NO | | NULL | |
| password | varchar(5) | NO | | NULL | |
| delflag | varchar(1) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
8 rows in set (0.02 sec)

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/28 11:36
2022/12/28 14:28
2022/12/28 22:31
2022/12/28 22:32
2022/12/29 03:27