如何在提交前获取scriptlet中的ID值?
我的实际情况是---我创建了一个JSP页面,其中员工ID是输入。现在模糊了,我想获取此ID并将其传递给SQL查询进行验证。是否可以在提交表单之前将ID值发送给SQL?如果是这样,请通过示例相应地指导我。如果我使用request.getParameter
,则ID值将显示为null
。
答案 0 :(得分:1)
发送ajax请求。 jQuery对此非常有帮助。开球的例子:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$("#id").blur(function() {
$.getJSON("validateId", $(this).serialize(), function(data) {
$("#id_message").text(data.valid ? '' : 'invalid!');
});
});
});
</script>
<style>
.error { color: red; }
</style>
</head>
<body>
<form action="someservlet" method="post">
<label for="id">id</label>
<input id="id" name="id" />
<span id="id_message" class="error"></span>
<br/>
<input type="submit">
</form>
</body>
</html>
servlet映射到/validateId
的网址格式,并在doGet()
方法中执行以下操作:
boolean valid = validateId(request.getParameter("id"));
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write("{valid:" + valid "}");
就是这样。 validateId()
方法示例当然应该执行数据库作业,并根据结果返回true
或false
。
请注意,您仍需要在URL someservlet
后面的servlet中在服务器端执行相同的验证。 JavaScript是可禁用/可欺骗/可攻击的。当服务器端验证失败时,只需将消息放在请求范围的映射中,让servlet重新显示JSP并让JSP使用EL显示消息。
<span id="id_message" class="error">${messages.id}</span>
答案 1 :(得分:0)
...是的,通过使用javascript,你的ajax调用将不得不与服务器通信,这里没有样本,但你应该能够通过一些'googling'找到很多例子