簡體   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