【问题标题】:No error , no output and data is not inserted in database in jsp没有错误,没有输出,并且没有在jsp中的数据库中插入数据
【发布时间】:2015-12-17 10:31:39
【问题描述】:

我在 JSP 中创建了一个注册表单,我已经编写了代码,当将它部署到服务器上时,没有错误,没有输出并且数据没有插入到数据库中。任何人都可以解决我的问题。 用途服务器:Tomcat 8,IDE:Eclipse Luna,数据库:Oracle 12c。

index.jsp

<html>
 <head>
 <title>Registration Form</title>
</head>
<body>
<form action="process.jsp" method="post">
    <input type="text" name="uname" value="Name..." onclick="this.value" /><br>
    <input type="text" name="uemail" value="Email..." onclick="this.value" /><br>
    <input type="password" name="upass" value="Password..."
        onclick="this.value" /><br> <input type="submit"
        value="Register">

</form>

</body>
</html>

process.jsp

<%@ page import="registration.RegisterDao"%>
<jsp:useBean id="obj" class="registration.User"></jsp:useBean>
<jsp:setProperty property="*" name="obj" />
<html>
<head>
</head>
<body>

<%
    int status = RegisterDao.register(obj);
    if (status > 0)
        out.print("You are successfully registered");
%>

</body>
</html> 

user.java

package registration;

public class User {

private String uname;
private String upass;
private String uemail;

public String getUname() {
    return uname;
}

public void setUname(String uname) {
    this.uname = uname;
}

public String getUpass() {
    return upass;
}

public void setUpass(String upass) {
    this.upass = upass;
}

public String getUemail() {
    return uemail;
}

public void setUemail(String uemail) {
    this.uemail = uemail;
}

}

provider.java

 package registration;

public interface Provider {

String DRIVER = "oracle.jdbc.driver.OracleDriver";

String CONNECTION_URL = "jdbc:oracle:thin:@localhost:1521:oracle12c";

String USERNAME = "AtulRai";
String PASSWORD = "atulrai";

}

connectionProvider.java

 package registration;

import java.sql.Connection;
import java.sql.DriverManager;

import static registration.Provider.*;

public class ConnectionProvider {

private static Connection con = null;

static {

    try {

        Class.forName(DRIVER);
        con = DriverManager.getConnection(CONNECTION_URL, USERNAME,
                PASSWORD);

    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

public static Connection getCon() {
    return con;
}

}

Registerdao.java

 package registration;

 import java.sql.Connection;
 import java.sql.PreparedStatement;

public class RegisterDao {

public static int register(User u) {
    int status = 0;

    try {

        Connection con = ConnectionProvider.getCon();

        PreparedStatement ps = con
                .prepareStatement("insert into detail values(?,?,?)");

        ps.setString(1, u.getUname());
        ps.setString(2, u.getUemail());
        ps.setString(3, u.getUpass());

    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return status;
}

}

其他详细信息是:我的表名是 DETAIL,列名是 NAME、EMAIL、PASS。

【问题讨论】:

    标签: java eclipse oracle jsp jdbc


    【解决方案1】:

    您在 DAO 类中的 register() 中缺少 executeUpdate() 语句:

    此方法执行此 PreparedStatement 对象中的 SQL 语句,该语句必须是 SQL 数据操作语言 (DML) 语句,例如 INSERT、UPDATE 或 DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。 http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#executeUpdate()

      public static int register(User u) {
      int status = 0;
    
        try {
    
        Connection con = ConnectionProvider.getCon();
    
        PreparedStatement ps = con
                .prepareStatement("insert into detail values(?,?,?)");
    
        ps.setString(1, u.getUname());
        ps.setString(2, u.getUemail());
        ps.setString(3, u.getUpass());
    
       status = ps.executeUpdate();
    
      } catch (Exception ex) {
        ex.printStackTrace();
     }
       return status;
    }
    

    【讨论】:

    • 我已经用 ps.executeUpdate() 修改了它,运行它时 url 只显示 localhost:8080/JSPLearning/RegistrationForm/… 而没有其他...??
    • @RealSkeptic:也没有输出。你能告诉我我的“状态”有什么变化吗???
    • 您可以记录(或 sysout)状态值并检查该值是什么?
    • 我检查了我的数据库。现在我可以在浏览器上插入值但没有输出,这意味着 @process.jsp 没有被执行。
    • @GuruJi 您是否添加了 VA31 建议的状态更改?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2011-02-10
    • 2020-07-29
    相关资源
    最近更新 更多