使用servlet从数据库中删除记录

问题描述:

Remove.java是servlet,index.jsp是jsp文件。我试图使用电子邮件删除该文件,因为它是唯一的。使用servlet从数据库中删除记录

Remove.java

package servletPool; 

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebServlet("/Remove") 
public class Remove extends HttpServlet { 
private static final long serialVersionUID = 1L; 

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 

    String uEmail = request.getParameter("email"); 

    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     String user = "root"; 
     String pass = "root"; 
     String query = "delete from user_details where email=?"; 
     Connection con = DriverManager.getConnection("jdbc:mysql://locahost:3306/dbname", user, pass); 
     PreparedStatement ps = con.prepareStatement("delete from user_details where email=?"); 
     ps.setString(1, uEmail); 

     int i = ps.executeUpdate(); 

     if(i > 0) { 
      out.println("User successfully removed..."); 
     } 

    } catch (Exception e) { 
     System.out.println(e); 
    } 
} 

} 

,这里是index.jsp文件从该记录将被删除。

的index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Registration Page.</title> 

</head> 
<body> 
    <div> 


      <div style="padding : 10px;"> 
      <center> 

       <form action="Remove.servlet" method="get"> 
       <h5>If you want to remove users,</h5> 
       <input type="email" placeHolder="User's Email" name="email"/> 
       <input type="button" value="Click" name="remove"/> 
       </form> 

      </center> 
     </div> 

    </center> 

    </div> 
    </body> 
    </html> 
+0

对于错误感到抱歉,但在index.jsp中有method =“post”。 –

+0

您能否验证表单操作?试试这个:action =“/删除” –

+0

欢迎来到Stack Overflow!你已经在你的问题中发布了很多代码,这使得我们(以及未来的读者)不清楚问题出在哪里。请将您的问题代码减少到10行或更少。请参阅:[如何创建最小,完整和可验证示例](http://stackoverflow.com/help/mcve)和[如何调试小程序](https://ericlippert.com/2014/03/05 /如何调试的小程序/)。 –

尝试从改变:

<form action="Remove.servlet" method="get"> 

到:

<form action="Remove" method="post"> 

和:

<input type="button" value="Click" name="remove"/> 

到:

<input type="submit" value="Click" name="remove"/> 

另外,在因为它们是不必要在Remove.java index.jsp和第29行(String query = "delete from user_details where email=?";)应被删除线26(</center>)。