从jsp页面中的java片段访问xml表单变量的最简单方法?

时间:2013-04-30 16:12:40

标签: java xml forms jsp

基本上,我有一个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表单中获取此变量的最佳方法吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

问候。