【发布时间】:2011-01-30 20:29:20
【问题描述】:
是否可以从 JavaScript 变量中获取值并在 Java Servlet 中使用该值?我已经阅读了这一点,但我发现的只是通过表单提交获取 JavaScript 值。
我需要的是:
- 我有一个 html 选择组合框。
- 我需要从中提取所选值并使用此值 查询数据库。
这可能吗?
【问题讨论】:
标签: javascript servlets
是否可以从 JavaScript 变量中获取值并在 Java Servlet 中使用该值?我已经阅读了这一点,但我发现的只是通过表单提交获取 JavaScript 值。
我需要的是:
这可能吗?
【问题讨论】:
标签: javascript servlets
好吧,JavaScript 在客户端上运行,而 servlet 在您的服务器上运行。因此,您确实需要以某种方式将值发送到您的服务器。这样做的两种(典型)方法是使用表单提交或Ajax。由于您提到该值来自一个选择框,我假设您想在用户更改选择时更新页面上的某些内容,因此您可能想要使用 Ajax。
除非需要更新的数据量非常大,可能经常更改,或者您的预期客户端的带宽或计算能力确实有限(如移动设备),否则您也可以在页面上嵌入所有需要的数据并根据选择有选择地隐藏和显示数据,而不使用服务器调用。如果这在您的场景中是可能的,那么它比使用 Ajax 更有可能感觉快速且响应迅速。
【讨论】:
您可以使用 AJAX 请求将客户端值发布到服务器。由于跨浏览器问题,没有任何 javascript 库的 AJAX 很痛苦,本示例使用流行的 jQuery 库。
HTML:
<form id="example-form" action="/path/to/servlet" method="post">
<select> .... </select>
<div class="result"> The result from server is displayed here. </div>
</form>
Javascript:
$(function() {
var f = $('#example-form');
$('select', f).change(function() {
$('.result', f).html('Wait...').load(f.attr('action'), f.serialize());
});
});
【讨论】: