Java MySql Jsp错误

Java MySql Jsp错误,java,mysql,jsp,Java,Mysql,Jsp,此页面从用户输入信息并按register的另一页面重定向。这段代码应该将信息保存到数据库中,并自动将它们重定向到index.jsp。出于某种奇怪的原因,信息确实被保存到了数据库中,但我仍然收到了这个错误 以下是错误和代码: org.apache.jasper.JasperException: An exception occurred processing JSP page /savereg.jsp at line 19 16: Statement st=con.createStatement

此页面从用户输入信息并按register的另一页面重定向。这段代码应该将信息保存到数据库中,并自动将它们重定向到index.jsp。出于某种奇怪的原因,信息确实被保存到了数据库中,但我仍然收到了这个错误

以下是错误和代码:

org.apache.jasper.JasperException: An exception occurred processing JSP page /savereg.jsp at line 19

16: Statement st=con.createStatement();
17: String sqlqueryCommand="insert into subscriber(name, street_address, city, state, zip, email, login, password) values('" + name + "','" + address + "','" + city + "','" + state + "','" + zip + "','" + email + "','" + user + "','" + pass + "')";
18: 
19: st.executeUpdate(sqlqueryCommand);
20: 
21: response.sendRedirect("index.jsp");
22: %>

尝试使用Try/catch块和记录器。您的代码易受sql注入攻击。确保在使用数据库连接后关闭它。请尝试以下代码:

Connection dbConnection = null;
PreparedStatement preparedStatement = null;
String insertTableSQL = "insert into subscriber(name, street_address, city, state, zip, email, login, password) values(?, ?, ?, ?, ?, ?, ?, ?)";

try{

   dbConnection = getDBConnection();
   preparedStatement = dbConnection.prepareStatement(insertTableSQL);

   preparedStatement.setString(1, name);
   preparedStatement.setString(2, street_address);
   preparedStatement.setString(3, city);
   preparedStatement.setString(4, state);
   preparedStatement.setString(5, zip);
   preparedStatement.setString(6, email);
   preparedStatement.setString(7, login);
   preparedStatement.setString(8, password); 
   preparedStatement.executeUpdate();


} catch (Exception e){
 e.printStackTrace();   
} finally {
   preparedStatement.close();
   dbConnection.close();
}

使用JDBC语句参数。不要像那样构建sql。您可能得到了附加的SQL注入,或者当值包含单引号或其他特殊字符时,您的SQL将无效(您的情况可能是:SQL无效)


我真的建议您在Javaservlet中处理INSERT,然后在servlet代码中处理重定向。不应该在JSP中使用任何类似的代码。

有什么例外?另外,这种执行sql的方法容易受到sql注入攻击。当我在st.executeUpdate(sqlqueryCommand)周围放置一个try-catch块时,它会更新和重定向。