2013-04-30 37 views
0

基本上,我有一個將用戶重定向到另一個網頁的xml表單。我需要該表單也傳遞給用戶輸入的字段。從jsp頁面中的java代碼片段訪問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 = 「用戶輸入變量這裏」;

但我不知道如何從窗體訪問該變量。

我對Java有些熟悉,但jsp和窗體對我來說是全新的。任何人都知道從xml表單獲取這個變量的最佳方式?

+1

您確實需要閱讀關於使用JSP和Servlet進行編程的內容,同時牢記MVC分離關注點。 – skuntsel 2013-04-30 16:48:30

回答

1

第一:不要在JSP中打開數據庫連接。在某些模型類中執行此操作,並使用servlet在JSP和該模型類之間進行通信。基本上使用MVC設計模式。

第二:使用String id = request.getParameter("id");(當然是在servlet中)(如果您的組件爲輸入例如:<input type="text" name="id">)以獲取用戶輸入。

另外,看看這個PreparedStatement的例子,以避免SQL注入攻擊。

問候。

+0

一個很好的概述。不過,我認爲爲每個主題提供有用的鏈接對於OP來說都是非常寶貴的。 – skuntsel 2013-04-30 16:50:21

+0

是的......一方面,我的答案似乎很差,因爲他顯然對servlet和jsp有一點或沒有經驗。 – 2013-04-30 16:52:07

+0

我發現你的答案完全適合這個問題(我仍然做了一些格式更正)。 – skuntsel 2013-04-30 16:53:08

相關問題