带有html表单参数的java servlet查询

时间:2011-11-27 10:18:48

标签: java

我正在尝试创建一个servlet,它可以获取html中下拉框的参数,并使用此参数来查询数据库。

我的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”可以是“usd”或“磅”,其中“target_currency”可以是“cny”或“cad”。我的查询希望从“currencytable”中提取汇率并在servlet中显示结果。如何解析下拉框的参数?

1 个答案:

答案 0 :(得分: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();
相关问题