2011-11-27 62 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 –