我正在尝试使用servlet和jsp以及MySQL Workbench作为数据库在数据库表中添加或插入值。这些是以下详细信息:
1.> Register.java
package register.com; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.sql.*; import javax.servlet.*; /** * Servlet implementation class Register */ @WebServlet("/register") public class Register extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Register() { super(); // TODO Auto-generated constructor stub } /** * @see Servlet#init(ServletConfig) */ public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub } /** * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) */ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType("text/html"); PrintWriter pw = response.getWriter(); //String connectionURL = "jdbc:mysql://127.0.0.1:3306/newData";// newData is the database //Connection connection; Connection conn=null; String url="jdbc:mysql://localhost:3306/"; String dbName="userlogindb"; String driver="com.mysql.jdbc.Driver"; //String dbUserName="root"; //String dbPassword="root"; try{ String Fname = request.getParameter("fname"); String Mname = request.getParameter("mname"); String Lname = request.getParameter("lname"); String Uname = request.getParameter("username"); String Emailid = request.getParameter("emailid"); String Mobno = request.getParameter("mobno"); String Address = request.getParameter("address"); String Password1 = request.getParameter("password1"); String Password2 = request.getParameter("password2"); Class.forName(driver).newInstance(); conn = DriverManager.getConnection(url+dbName,"root", "root"); PreparedStatement pst =(PreparedStatement) conn.prepareStatement("insert into 'userlogindb'.'registerutable'(fname,mname,lname,username,emailid,mobno,address,password1,password2) values(?,?,?,?,?,?,?,?,?)");//try2 is the name of the table pst.setString(1,Fname); pst.setString(2,Mname); pst.setString(3,Lname); pst.setString(4,Uname); pst.setString(5,Emailid); pst.setString(6,Mobno); pst.setString(7,Address); pst.setString(8,Password1); pst.setString(9,Password2); int i = pst.executeUpdate(); conn.commit(); String msg=" "; if(i!=0){ msg="Record has been inserted"; pw.println("<font size='6' color=blue>" + msg + "</font>"); } else{ msg="failed to insert the data"; pw.println("<font size='6' color=blue>" + msg + "</font>"); } pst.close(); } catch (Exception e){ pw.println(e); } } }
2.> index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form name="registrationform" action="register" method="post"> <p> Enter your first name: <input type="text" name="fname"><br> Enter your middle name: <input type="text" name="mname"><br> Enter your last name: <input type="text" name="lname"><br> </p><br> <p> Enter username: <input type="text" name="username"><br> </p><br> <p> Enter email id: <input type="text" name="emailid"><br> Enter mobile number: <input type="text" name="mobno"><br> Enter address: <textarea rows="5" cols="5" name="address"></textarea><br> </p><br> <p> Enter the password: <input type="password" name="password1"><br> Reenter the password: <input type="password" name="password2"><br> </p><br> <p> <input type="submit"> </p><br> </form> </body> </html>
3.> web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>RegisterExample</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description>Register Servlet</description> <display-name>Register</display-name> <servlet-name>Register</servlet-name> <servlet-class>register.com.Register</servlet-class> </servlet> <servlet-mapping> <servlet-name>Register</servlet-name> <url-pattern>/register</url-pattern> </servlet-mapping> </web-app>
4.> 我已经添加了mysql-connector-java-5.0.8-bin.jar和servlet-api-3.0.jar 来添加它。我已经在数据源资源管理器中创建了到数据库的连接。
当我进行编译或调试时,没有显示错误。在运行期间也没有错误。当我填写表格并提交时,它仅显示空白屏幕:(没有输出显示。:(同样在数据库中,值未更新。
请帮我。这个片段让我感到宿醉。
检查doPost()是否从jsp表单中调用了servlet的方法并删除了conn.commit。
doPost()
conn.commit