2012-06-07 65 views
-1

這段代碼有什麼問題,它沒有得到處理,當我點擊提交按鈕時,它轉發到這個insert.jsp並且空白頁出現(結果失敗)。通過jsp插入數據到mysql數據庫

/* 
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(); 
     } 
     %> 
+0

您必須發佈錯誤日誌。錯誤必須打印在那裏。 –

回答

3

你的緊迫感不是我們的問題。

如果您可以引用日誌消息或堆棧跟蹤而不是「空白頁面」和「失敗」,它會更有幫助。

當你點擊提交按鈕時,你期望顯示什麼?

這是一個糟糕的設計。你的JSP中不應該有數據庫代碼。 Scriptlets是一個非常糟糕的主意。學習JSTL。 <sql>標籤甚至可能是您需要的。

一個比較好的方法是在JSP和數據庫之間建立一個servlet來驗證和授權用戶,綁定和驗證輸入,代表用戶執行數據庫操作,將響應編入請求或會話範圍以及流對需要顯示的頁面的響應。

我猜你想在INSERT之後顯示數據庫的狀態,所以應該有一個表格顯示所有的值。你的JSP如何知道如何做到這一點?

+0

即時通訊新的即時通訊,你能告訴我一個簡單的例子,將數據插入到MySQL數據庫PLZ? – user1208177

+0

http://www.ibm.com/developerworks/library/j-jstlsql/ – duffymo

1

Everythign是錯誤的。例如,它充滿了sql注入問題。還要檢查您的數據庫是否處於自動提交模式或您是否開始/結束事務。

+0

可以幫助我與代碼請爲即時通訊新的jsp? – user1208177

+0

你的問題對於jsp來說並不陌生,更像是對java和數據庫編程一般的新手。學會使用預備陳述。可能讀了休眠或JPA。從視圖代碼(jsp)中分離數據庫代碼。你有沒有檢查它不插入到數據庫中的東西?你有沒有檢查日誌中的錯誤?即使工作正常,該頁面也不會顯示任何內容。你將不得不寫一些html/jsp來打印出來。 –

3

刪除插入語句中數字類型字段的單引號。也可以更改手機號碼數據類型,因爲int不能保存10位數字。

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> 
} 
相關問題