user
에서 데이터를 가져 와서 데이터베이스에 저장하는 간단한 양식이 있습니다.서블릿의 JDBC
이 내 간단한 형태 :
<!DOCTYPE html>
<html>
<head>
<title> Database Insertion Form </title>
</head>
<body>
</body>
<h1>
<center> Phonebook</center>
</h1>
<Form method=post action="DbServlet">
<pre>
Surname: <input type="text" name="Surname">
Forename: <input type="text" name="Forenames">
Phone number: <input type="text" name="PhoneNum">
</pre>
<br><br>
<center><input type="submit" VALUE="Commit"></center>
</Form>
</html>
그리고이 DbServlet
서블릿이다, 심지어 예외 나는 HTML 형태로 submit
버튼을 클릭
@WebServlet("/DbServlet")
public class DbServlet extends HttpServlet {
private PreparedStatement ps;
private Connection connection;
private String URL = "jdbc:mysql://localhost/lib";
@Override
public void init() throws ServletException {
super.init();
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(URL, "root", "2323");
} catch (SQLException e) {
e.printStackTrace();
System.exit(1);
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException {
String surname, forenames, telNum;
surname = request.getParameter("Surname");
forenames = request.getParameter("Forenames");
telNum = request.getParameter("PhoneNum");
response.setContentType("text/HTML");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Servlet + JDBC</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
String query = "INSERT INTO PhoneNums"
+ " VALUES('" + surname + "','"
+ forenames + "','" + telNum + "')";
try {
ps = connection.prepareStatement(query);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "Done");
} catch (SQLException sqle) {
sqle.printStackTrace();
}
out.println("</BODY>");
out.println("</HTML>");
out.flush();
}
@Override
public void destroy() {
try {
connection.close();
} catch (Exception ex) {
System.out.println(
"Error on closing database!");
ex.printStackTrace();
System.exit(1);
}
}
}
은, 아무 일도 발생하지 않습니다!
MySQL 커넥터 jar 파일은 Tomcat의 lib 폴더에 있습니다.
처럼
setXXX
방법을 사용하여 나중에 다음 쿼리 문자열에?
물음표를 사용할 수 있습니까? – SarzTomcat 로그 파일을보고 누락 된 예외를 찾을 수 있습니다 –
주어진 제출 버튼을 클릭하면'doPost()'메소드가 제대로 호출 되었습니까? 다음은'