-1

このコードの何が問題なのですか。処理が行われていません。送信ボタンをクリックすると、この insert.jsp に転送され、空白のページが表示されます (結果が失敗します)。

/*
Form.html
*/

<html>
<form method="post" action="Insert.jsp"> //form start
<table>
<tr><td>Fname:</td><td><input type="text" name="fname"></td></tr>
<tr><td>LName:</td><td><input type="text" name="lname"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td></tr>
<tr><td>pass:</td><td><input type="password" name="pass"></td></tr>
<tr><td>confirm pass:</td><td><input type="password" name="cpass"></td></tr>
<tr><td>dob:</td><td><input type="text" name="dob"></td></tr>
<tr><td>age:</td><td><input type="text" name="age"></td></tr>
<tr><td>gender:</td><td><input type="text" name="gender"></td></tr>
<tr><td>address:</td><td><input type="text" name="address"></td></tr>
<tr><td>country:</td><td><input type="text" name="country"></td></tr>
<tr><td>state:</td><td><input type="text" name="state"></td></tr>
<tr><td>city:</td><td><input type="text" name="city"></td></tr>
<tr><td>telephone:</td><td><input type="text" name="tno"></td></tr>
<tr><td>Mobile:</td><td><input type="text" name="mobile"></td></tr>
<tr><td></td><td><input type="submit" value="Submit"></td></tr>
</table>
</form>
</html>

/*
Insert.jsp 
*/
<%@page import="java.sql.*,java.util.*"%> // import
<%
String fname=request.getParameter("fname");
String lname=request.getParameter("lname");
String email=request.getParameter("email");
String pass=request.getParameter("pass");
String cpass=request.getParameter("cpass");
String dob=request.getParameter("dob");
int age=Integer.parseInt(request.getParameter("age"));
String gender=request.getParameter("gender");
String address=request.getParameter("address");
String country=request.getParameter("country");
String state=request.getParameter("state");
String city=request.getParameter("city");
int tno=Integer.parseInt(request.getParameter("tno"));
int mobile=Integer.parseInt(request.getParameter("mobile"));
        try{
         Class.forName("com.mysql.jdbc.Driver");
           Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "");
           Statement st=con.createStatement();
           int i=st.executeUpdate("insert into student(fname,lname,email,pass,cpass,dob,age,gender,address,country,state,city,tno,mobile) values('"+fname+"','"+lname+"','"+email+"','"+pass+"','"+cpass+"','"+dob+"','"+age+"','"+gender+"',"+address+",'"+country+"','"+state+"','"+city+"','"+city+"','"+tno+"','"+mobile+"')");
        out.println("Data is successfully inserted!");
        }
        catch(Exception e){
        System.out.print(e);
        e.printStackTrace();
        }
        %>
4

4 に答える 4

3

あなたの緊急性は私たちの問題ではありません。

「空白ページ」や「失敗」よりも、ログメッセージやスタックトレースを引用していただけると助かります。

送信ボタンを押すと、何が表示されると思いますか?

これは悪い設計です。JSP にデータベース コードを含めるべきではありません。スクリプトレットは非常に悪い考えです。JSTLを学びます。タグは、<sql>必要なものでさえあるかもしれません。

JSP とデータベースの間にサーブレットを配置して、ユーザーの認証と承認、入力のバインドと検証、ユーザーに代わってデータベース操作の実行、応答の要求またはセッション スコープへのマーシャリング、応答のストリーミングを行うことをお勧めします。表示する必要のあるページ。

INSERT の後にデータベースの状態を表示したいので、すべての値を示すテーブルが必要だと思います。JSP はどのようにしてその方法を知っているのでしょうか?

于 2012-06-07T11:32:44.273 に答える
3

insert ステートメント内の数値型フィールドの単一引用符を削除します。int は 10 桁の数字を保持できないため、携帯電話番号のデータ型もできるだけ長く変更します。

于 2012-10-19T09:49:20.103 に答える
1

それはすべてが間違っています。たとえば、SQL インジェクションの問題がいっぱいです。また、データベースが自動コミット モードであること、またはトランザクションを開始/終了していることも確認してください。

于 2012-06-07T11:31:35.217 に答える
0
@WebServlet(name = "signup", urlPatterns = {"/signup"})
public class signup extends HttpServlet {


@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String firstName = request.getParameter("firstname");
    String lastName = request.getParameter("lastname");
    String eMail = request.getParameter("email");
    String UserName = request.getParameter("username");
    String passWord = request.getParameter("password");

    PrintWriter out = response.getWriter();
    response.setContentType("text/plain");
    if (eMail.matches("^([a-zA-Z0-9_\\-\\.])+\\@([a-zA-Z0-9])+\\.([A-Za-z0-9]{2,4})")) {
        if (passWord.matches("^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=[\\S]+$).{8,}$")) {

            UserBean u = new UserBean();
            u.setname(firstName);
            u.setlname(lastName);
            u.setemail(eMail);
            u.setusername(UserName);
            u.setpasswords(passWord);
            UserManager umg = new UserManager();

            if (umg.insertUser(u)) {
                out.print("Registered Successfully");
            } else {
                out.print("Registration Failed");
            }

        } else {
            out.print("<h4 style='color: red; margin-left: -66px;'>Invalid Password</h4>");

        }
    } else {
        out.print("<h4 style='color: red; margin-left: -66px;'>Invalid Email</h4>");
    }

}

/**
 * Returns a short description of the servlet.
 *
 * @return a String containing servlet description
 */
@Override
public String getServletInfo() {
    return "Short description";
}// </editor-fold>
}
于 2013-05-21T18:35:14.490 に答える