2012-06-07 2 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에 데이터베이스 코드가 없어야합니다. 스크립틀릿은 매우 나쁜 생각입니다. JSTL을 배우십시오. <sql> 태그가 필요할 수도 있습니다.

더 나은 아이디어는 사용자를 인증 및 권한 부여하고, 입력을 바인드하고 유효성을 검사하고, 사용자를 대신하여 데이터베이스 작업을 수행하고, 요청을 세션 범위로 마샬링하고, 스트림을 스트리밍하는 JSP와 데이터베이스 사이의 서블릿입니다. 표시해야 할 페이지에 대한 응답

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 프로그래밍과 데이터베이스 프로그래밍에 새로운 것입니다. preparedstatement를 사용하는 법을 배웁니다. 아마도 최대 절전 모드 또는 JPA에서 읽을 수 있습니다. 뷰 코드 (jsp)에서 데이터베이스 코드를 분리하십시오. 데이터베이스에 물건을 넣지 않았다는 것을 확인 했습니까? 로그에 오류가 있는지 확인 했습니까? 이 페이지는 올바르게 작동하더라도 아무 것도 표시하지 않습니다. 당신은 물건을 밖으로 인쇄하는 몇 가지 HTML/JSP로 작성해야합니다. –

3

insert 문 내부의 숫자 유형 필드에 작은 따옴표를 제거하십시오. 또한 int number는 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> 
} 
관련 문제