Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在eclipse中使用servlet和jsp将数据插入数据库_Java_Mysql_Xml_Jsp_Servlets - Fatal编程技术网

Java 在eclipse中使用servlet和jsp将数据插入数据库

Java 在eclipse中使用servlet和jsp将数据插入数据库,java,mysql,xml,jsp,servlets,Java,Mysql,Xml,Jsp,Servlets,我正在尝试使用servlet、jsp和MySQL工作台作为数据库向数据库表中添加或插入值。详情如下: 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.annota

我正在尝试使用servlet、jsp和MySQL工作台作为数据库向数据库表中添加或插入值。详情如下:

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);  
        }  

}

}
package register.com;
导入java.io.IOException;
导入java.io.PrintWriter;
导入javax.servlet.ServletConfig;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入java.sql.*;
导入javax.servlet.*;
/**
*Servlet实现类寄存器
*/
@WebServlet(“/寄存器”)
公共类寄存器扩展HttpServlet{
私有静态最终长serialVersionUID=1L;
/**
*@参见HttpServlet#HttpServlet()
*/
公众登记册(){
超级();
//TODO自动生成的构造函数存根
}
/**
*@see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config)抛出ServletException{
//TODO自动生成的方法存根
}
/**
*@参见HttpServlet#服务(HttpServletRequest请求,HttpServletResponse响应)
*/
受保护的无效服务(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
//TODO自动生成的方法存根
}
/**
*@参见HttpServlet#doGet(HttpServletRequest请求,HttpServletResponse响应)
*/
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
//TODO自动生成的方法存根
}
/**
*@请参阅HttpServlet#doPost(HttpServletRequest请求,HttpServletResponse响应)
*/
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
//TODO自动生成的方法存根
response.setContentType(“text/html”);
PrintWriter pw=response.getWriter();
//字符串connectionURL=“jdbc:mysql://127.0.0.1:3306/newData“;//newData是数据库
//连接;
连接conn=null;
String url=“jdbc:mysql://localhost:3306/";
字符串dbName=“userlogindb”;
String driver=“com.mysql.jdbc.driver”;
//字符串dbUserName=“root”;
//字符串dbPassword=“root”;
试试{
字符串Fname=request.getParameter(“Fname”);
字符串Mname=request.getParameter(“Mname”);
字符串Lname=request.getParameter(“Lname”);
字符串Uname=request.getParameter(“用户名”);
字符串Emailid=request.getParameter(“Emailid”);
字符串Mobno=request.getParameter(“Mobno”);
字符串地址=request.getParameter(“地址”);
字符串Password1=request.getParameter(“Password1”);
字符串Password2=request.getParameter(“Password2”);
Class.forName(driver.newInstance();
conn=DriverManager.getConnection(url+dbName,“根”,“根”);
PreparedStatement pst=(PreparedStatement)conn.prepareStatement(“插入到'userlogindb.'RegisterTable'(fname,mname,lname,username,emailid,mobno,address,password1,password2)值(?,,,,,,,,,,,,,,?);//try2是表的名称
pst.setString(1,Fname);
pst.setString(2,Mname);
pst.setString(3,Lname);
pst.设置管柱(4,Uname);
pst.setString(5,Emailid);
pst.设置管柱(6,移动编号);
pst.setString(7,地址);
pst.setString(8,密码1);
pst.setString(9,密码2);
int i=pst.executeUpdate();
conn.commit();
字符串msg=“”;
如果(i!=0){
msg=“已插入记录”;
pw.println(“+msg+”);
}  
否则{
msg=“插入数据失败”;
pw.println(“+msg+”);
}  
pst.close();
}  
捕获(例外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>

在此处插入标题

输入您的名字:
输入中间名:
输入您的姓氏:

输入用户名:

输入电子邮件id:
输入手机号码:
输入地址:

输入密码:
重新输入密码:


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>

注册表示例
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
注册Servlet
登记
登记
register.com.register
登记
/登记册
4.>我添加了mysql-connector-java-5.0.8-bin.jar,还需要添加servlet-api-3.0.jar。我已经在数据源资源管理器中创建了到数据库的连接

当我编译或调试时,它不会显示任何错误。在运行期间也没有错误。 当我填写表格并提交时,它只显示空白屏幕:( 不显示任何输出:( 数据库中的值也不会更新


请帮帮我。我对这段代码有点想入非非。

你能通过放置logger或println()来检查
I
的值吗?并在最后关闭db conn进行检查。剩下的代码看起来不错,应该可以正常工作。

检查
doPost()
从jsp表单调用servlet的方法,并删除
conn.commit

相同的问题在
PreparedStatement
使用简单语句中获取主要问题,然后您成功地在下面插入相同的使用记录

String  st2="insert into 
user(gender,name,address,telephone,fax,email,
     destination,sdate,edate,Participant,hcategory,
     Culture,Nature,People,Cities,Beaches,Festivals,username,password) 
values('"+gender+"','"+name+"','"+address+"','"+phone+"','"+fax+"',
       '"+email+"','"+desti+"','"+sdate+"','"+edate+"','"+parti+"',
       '"+hotel+"','"+chk1+"','"+chk2+"','"+chk3+"','"+chk4+"',
       '"+chk5+"','"+chk6+"','"+user+"','"+password+"')";


int i=stm.executeUpdate(st2);

在JSP中的
标记行, 试试这个代码

<form name="registrationform" action="Register" method="post">

从Register.java中删除conn.commit


在您的jsp更改操作中,我遇到了一个类似的问题,并且能够通过确定要使用哪个JDBC驱动程序来解决它。在我的情况下,我连接到了Oracle数据库。在创建co之前,我放置了以下语句
String user = request.getParameter("uname");
out.println(user); 
String pass = request.getParameter("pass");
out.println(pass); 
Class.forName( "com.mysql.jdbc.Driver" );
Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/rental","root","root" ) ;
out.println("hello");
Statement st = conn.createStatement();
String sql = "insert into login (user,pass) values('" + user + "','" + pass + "')";
st.executeUpdate(sql);