繁体   English   中英

如何从 JSP 文件中的 HTML 表单中获取用户输入的数据,并使用 java 类将其输入到 mysql 数据库中?

[英]How do I take user entered data from HTML forms in a JSP file, and enter it into a mysql database using a java class?

所以这是我高中计算机科学课的一个项目,我现在的目标是制作一个注册页面,将其数据存储在 mysql 服务器中。 到目前为止,我已经能够从 java 连接到数据库并将数据存储到其中,但前提是我对其进行了硬编码。

我已经在互联网上搜索了解决方案,到目前为止,我已经得到了这个代码。

这是jsp文件中的主要代码。

<form action="NewAccount.jsp">
        <div class = "inputBox"> <p id = "inputFName">First Name</p>  <input type="text" name="FName"/> </div>
        <div class = "inputBox"> <p id = "inputLName">Last Name</p>  <input type="text" name="LName"/> </div>
        <div class = "inputBox"> <p id = "inputEmail">Email</p>  <input type="text" name="Email"/> </div>
        <div class = "inputBox"> <p id = "inputUser">Username</p>  <input type="text" name="User"/> </div>

        <div class = "inputBox"> <p id = "inputPass1">Password</p>  <input type="password" name="Pass1"/> </div> 
        <div class = "inputBox"> <p id = "inputPass2">Retype Password</p>  <input type="password" name="Pass2"/> </div>            

        <br/>

        <div id="inputButton"> <input type="submit" value="submit" name = "submit"/> </div>     
    </form>

    <%
        if (request.getParameter("submit") != null) {

            CreateUser c = new CreateUser();

            String FName = request.getParameter("FName");
            String LName = request.getParameter("LName");
            String Email = request.getParameter("Email");
            String User = request.getParameter("User");
            String Pass = request.getParameter("Pass1");

            c.createUser(FName, LName, Email, User, Pass);
        }
    %>

这是 Java 类文件中的代码。

private static PreparedStatement pst;

public void createUser(String FName, String LName, String Email, String User, String Pass) throws SQLException {
    SQLCon.Connect();

    pst = SQLCon.getMyConn().prepareStatement("insert into User_Info (FirstName,LastName,Email,Username,Password) values(?,?,?,?,?)");

    pst.setString(1, FName);
    pst.setString(2, LName);
    pst.setString(3, Email);
    pst.setString(4, User);
    pst.setString(5, Pass);
}

SQLCon.Connect() 方法如下。

public static void Connect() throws SQLException {
    String url = "jdbc:mysql://localhost:3306/IA Schema";
    String user = "root";
    String pass = "bruhbruh";

    try {
    //Connect to database
    myConn = DriverManager.getConnection(url, user, pass);
    } catch (Exception exc) {
        System.out.println("failed");
    }
}

我的项目运行良好,但是当我输入数据并单击 Enter 时, glassfish 控制台会显示此内容

非常感谢有关如何成功将数据输入数据库的任何帮助,但请记住,这都是从互联网上自学的(Java 除外),我可能在某处犯了一个愚蠢的错误。 谢谢你。

整个 SQLCon 类。

package JavaClasses;

import java.sql.*;

public class SQLCon {

    private static Connection myConn;

    public static Connection getMyConn() {
        return myConn;
    }

    public static void Connect() throws SQLException {
        String url = "jdbc:mysql://localhost:3306/IA Schema";
        String user = "root";
        String pass = "bruhbruh";

        try {
            //Connect to database
            myConn = DriverManager.getConnection(url, user, pass);
        } catch (Exception exc) {
            System.out.println("failed");
        }
    }
}

您在 jsp 文件中输入了错误的 LName 名称。

    <div class = "inputBox"> <p id = "inputLName">Last Name</p>  <input type="text" name=":Name"/> </div>

LName,而不是:Name。

同样在 SQLCon 类中尝试以下更改。

   public static Connection getMyConn() {
       if(myConn!=null){
           return myConn;
       }else{
           SQLCon.Connect();
           return myConn;
       }
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM