基本上,我有一个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和表单对我来说是全新的。有人知道从xml表单中获取此变量的最佳方法吗?
答案 0 :(得分:1)
首先:不要在JSP中打开数据库连接。在某个模型类中执行此操作,并使用servlet在JSP和该模型类之间进行通信。基本上,使用MVC设计模式。
第二:使用String id = request.getParameter("id");
(当然是在servlet中)(如果输入的组件是例如:<input type="text" name="id">
)来获取用户输入。
另外,请查看此PreparedStatement示例以避免SQL注入攻击。
问候。