У меня есть простая форма для извлечения данных из 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
Servlet:
@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);
}
}
}
Когда я нажал на кнопку submit
в HTML форме, ничего не происходит, даже любое исключение!
Файл jar-файла для подключения к MySQL присутствует в папке lib Tomcat.
Вы заполните форму с Post метода? – Sarz
Вы можете посмотреть файлы журнала tomcat, чтобы найти пропущенное исключение –
Является ли метод 'doPost()' вызван правильно, когда вы нажимаете кнопку отправки? Вот недопустимая HTML-надпись '