所以我連續兩個小時與這個問題作斗爭,我找不到解決方案。我有 2 個檔案。Manage.jsp,我在其中列印出帶有資料的整個表格,并且我有 2 個提交按鈕 - 1 個用于洗掉特定行,另一個用于從該行中下載檔案。
提交按鈕傳遞與具有唯一名稱的特定行有關的字串,該名稱允許識別將在 servlet 檔案中洗掉/下載的整行。
類似的方法適用于插入或其他查詢,但對于這個似乎不起作用。這很奇怪,特別是因為 MySQL Workbench 中的相同命令實際上完成了這項作業。
@WebServlet("/ManageFiles")
public class ManageFiles extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String alert = "";
String remove = request.getParameter("remove");
String download = request.getParameter("download");
Connection con = null;
if (remove != null) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String DB_NAME = "wap_dama";
out.println("test");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/" DB_NAME "?serverTimezone=UTC","root","asd123");
PreparedStatement ps = con.prepareStatement("delete from wap_dama.files where FileName = ?");
ps.setString(1, remove);
int row = ps.executeUpdate();
if (row > 0)
{
out.println(row);
alert = "Your file was successfully deleted!";
}
}
catch(Exception e) {
e.printStackTrace();
}
}
至于jsp代碼
<tbody>
<%
try
{
Class.forName("com.mysql.cj.jdbc.Driver");
String DB_NAME = "wap_dama";
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/" DB_NAME "?serverTimezone=UTC","root","asd123");
PreparedStatement ps = con.prepareStatement("SELECT id_files, FileName, FileExtension, FileSize FROM files WHERE users_id_users=?");
int id = (int) session.getAttribute("id");
ps.setInt(1, id);
ResultSet rs =ps.executeQuery();
//Statement stmt=con.createStatement();
//ResultSet rs=stmt.executeQuery(ps);
while(rs.next())
{
%>
<tr>
<td><%out.println(rs.getString("FileName")); %></td>
<td><%out.println(rs.getString("FileExtension")); %></td>
<td><%out.println(rs.getInt("FileSize")); %></td>
<td><button type="submit" class="btn btn-warning" name="download" value="<%out.println(rs.getString("FileName")); %>">Download</button></td>
<td><button type="submit" class="btn btn-danger" name="remove" value="<%out.println(rs.getString("FileName")); %>">Remove</button></td>
</tr>
<%
}
%>
</tbody>
有什么想法嗎?
uj5u.com熱心網友回復:
好的,似乎問題已經通過簡單地使用.strip()包含檔案名稱的變數旁邊的函式來解決。由于某種原因,必須添加一些額外的空格,從而導致錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/481786.html
