2011-11-27 26 views
0

我想創建一個servlet,它可以獲取html下拉框的參數,並使用此參數來查詢數據庫。使用html格式的參數進行java servlet查詢

我的html:

<form action="servlet/currencyservlet"> 
<select> 
<option name="usd">United States Dollar</option> 
<option name="pounds">United Kingdom Sterling Pound</option> 
</select> 
<select> 
<option name="cad">Canadian Dollars</option> 
<option name="cny">Chinese Yuan</option> 
</select> 
<input type="submit" value="Check Rate"/> 
</form> 

我的Java:

... 
... 
... 
conn = DriverManager.getConnect("jdbc:mysql://localhost:3306/currencydb", "root", ""); 
... 
try{ 
string qstr = "SELECT source_currency, target_currency FROM currencytable WHERE???? 
} 

「source_currency」 可以是 「美元」 或 「磅」,其中 「target_currency」 可以是 「人民幣」 或 「CAD」。我的查詢希望從「currencytable」中提取匯率並在servlet中顯示結果。如何解析下拉框的參數?

回答

3

您的選擇框應該有一個名稱。這個名字也提交表單時發送的HTTP參數的名稱:

<select name="sourceCurrency"> 
... 
</select> 
<select name="targetCurrency"> 
... 
</select> 

在你的servlet,你會得到源和目標貨幣與getParameter

String sourceCurrency = request.getParameter("sourceCurrency"); 
String targetCurrency = request.getParameter("targetCurrency"); 

,你可能再使用準備好的語句將這些值傳遞給您的查詢:

String sql = "SELECT exchange_rate FROM currencytable WHERE source_currency = ? and target_currency = ?"; 
PreparedStatement stmt = connection.prepareStatement(sql); 
stmt.setString(1, sourceCurrency); 
stmt.setString(2, targetCurrency); 
ResultSet rs = stmt.executeQuery(); 
+0

嗨,什麼應該是「?」的參數? – exxcellent

+1

閱讀代碼:第一個參數使用stmt.setString(1,sourceCurrency)設置,第二個參數使用stmt.setString(2,targetCurrency)設置。閱讀http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html –

相關問題