0

基本上,我有一个将用户重定向到另一个网页的 xml 表单。我需要表单还传递用户输入的字段。

此表单将用户重定向到 jsp 页面,我在页面中使用 java scriptlet 创建 sql 数据库,但我无法找到访问该 java scriplet 中用户输入的方法。

这是java sciptlet:

<jsp:scriptlet><![CDATA[


Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, "root", ""); 


stmt = con.createStatement();


stmt.executeUpdate("CREATE DATABASE IF NOT EXISTS new_presidents_db;");
stmt.executeUpdate("use new_presidents_db");
stmt.executeUpdate("CREATE DATABASE IF NOT EXISTS new_presidents_db;");
stmt.executeUpdate("DROP TABLE IF EXISTS presidents_table;");
stmt.executeUpdate("CREATE TABLE presidents_table (id INT, presidents_name varchar(50),         PRIMARY KEY (id));");

stmt.executeUpdate("INSERT INTO presidents_table (id, presidents_name) VALUES ('1', 'George Washington')");
stmt.executeUpdate("INSERT INTO presidents_table (id, presidents_name) VALUES ('2', 'John Adams')");
stmt.executeUpdate("INSERT INTO presidents_table (id, presidents_name) VALUES ('3', 'Thomas Jefferson')");


ResultSet result = stmt.executeQuery("SELECT * FROM presidents_table;");
String resultString=null;
Integer i = 1;
while(result.next() && i < 3)
{
resultString=result.getString(i);
out.println(resultString);
i++;
}
con.close();



]]></jsp:scriptlet>

我想要包含在 sql select 语句中,例如 SELECT * FROM Presidents_table WHERE id = "user input variable here";

但我不知道如何从表单中访问该变量。

我对java有点熟悉,但是jsp和forms对我来说是全新的。有人知道从 xml 表单中获取此变量的最佳方法吗?

4

1 回答 1

1

第一:不要在你的 JSP 中打开数据库连接。在某些模型类中执行此操作,并使用 servlet 在 JSP 和该模型类之间进行通信。基本上,使用 MVC 设计模式。

第二:使用String id = request.getParameter("id");(当然在servlet中)(如果您的输入组件是例如:)<input type="text" name="id">来获取用户输入。

此外,请查看此PreparedStatement示例以避免 SQL 注入攻击。

问候。

于 2013-04-30T16:31:51.350 回答