【问题标题】:Tomcat/Java - Insert into a mysql databaseTomcat/Java - 插入 mysql 数据库
【发布时间】:2017-04-10 15:33:46
【问题描述】:
package mycode;
import java.sql.*
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Login extends HttpServlet {

private static final long serialVersionUID = -4546189621945422719L;

String URL = "jdbc:mysql://127.0.0.1";
String USER = "root";
String PASS = "1234";

@Override 
protected void doGet(HttpServletRequest req,HttpServletResponse res) 
        throws IOException,ServletException{

}

public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    String username = req.getParameter("username");
    String password = req.getParameter("password");
    res.setContentType("text/html");
    PrintWriter out = res.getWriter();

    try {
        Connection con = DriverManager.getConnection(URL, USER, PASS);

        String sql = "INSERT INTO cloud.cloud_table (Username,Password)" +
                "VALUES (?, ?)";
        PreparedStatement pst = con.prepareStatement(sql);
        pst.setString(1, username);
        pst.setString(2, password);
        pst.executeUpdate(); 


        out.println("<html><body>");
        out.println("THANKS FOR CREATING AN ACCOUNT");
        out.println("</body></html>");
    }
    catch (SQLException ex) {
        ex.printStackTrace();
    }

   }
}

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Login</display-name>
<servlet>
  <servlet-name>Login</servlet-name>
  <servlet-class>mycode.Login</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>Login</servlet-name>
  <url-pattern>/login</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>


+----------+----------+
| Username | Password |
+----------+----------+
|          |          |
+----------+----------+

<form action="login" method="GET">
    <div>
        <h4>Please enter your password and username</h4>
    </div>
    <div>
        Username <input name="username" type="text" />
    </div>
    <div>
        Password <input name="password" type="text" />
    </div>
    <div>
        <input type="submit" value="Submit" />
    </div>
</form>

使用 java 和 tomcat,我有一个简单的表单,其中包含用户名和密码。我希望能够从表单中检索用户名和密码并将其插入 mysql 数据库。但是,现在单击表单上的提交按钮后,什么也没有发生,数据库也没有更新。数据库连接工作正常,所以我不确定现在是什么问题。任何帮助将不胜感激。

【问题讨论】:

  • 你能显示那个简单的表单代码吗?
  • 如果您点击提交但没有任何反应,您的 html 表单可能无法正常工作。
  • @alayor 我已经为表单添加了代码
  • @qwertyayyy 您的表单不发布数据,它使用 GET。所以调用了 Servlet 的 doGet 方法,它什么也不做。将您的 html 表单更改为 method="POST"
  • @qwertyayyy 将mysql jdbc jar 添加到您的构建路径和WebContent/WEB-INF 目录中的lib 目录。

标签: java mysql tomcat


【解决方案1】:

您正在从 HTML 表单中调用 GET 方法。

将您的操作更改为 POST。

<form action="login" method="POST">

【讨论】:

  • 感谢您的回复,不敢相信我犯了这么愚蠢的错误。无论如何,我现在已经更正了,但我收到“java.sql.SQLException:找不到适合 jdbc:mysql://127.0.0.1 的驱动程序”错误
  • 您需要将 MySQL 驱动程序添加到类路径中。我建议您自己对此进行调查,并提出一个您找不到任何东西的新问题。
猜你喜欢
  • 2018-04-20
  • 2018-05-04
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
  • 2012-12-05
  • 2015-08-02
  • 1970-01-01
相关资源
最近更新 更多