如何在提交之前从JSP传递id值以选择查询作为输入?

时间:2011-03-26 07:48:53

标签: javascript jsp

如何在提交前获取scriptlet中的ID值? 我的实际情况是---我创建了一个JSP页面,其中员工ID是输入。现在模糊了,我想获取此ID并将其传递给SQL查询进行验证。是否可以在提交表单之前将ID值发送给SQL?如果是这样,请通过示例相应地指导我。如果我使用request.getParameter,则ID值将显示为null

2 个答案:

答案 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()方法示例当然应该执行数据库作业,并根据结果返回truefalse

请注意,您仍需要在URL someservlet后面的servlet中在服务器端执行相同的验证。 JavaScript是可禁用/可欺骗/可攻击的。当服务器端验证失败时,只需将消息放在请求范围的映射中,让servlet重新显示JSP并让JSP使用EL显示消息。

            <span id="id_message" class="error">${messages.id}</span>

答案 1 :(得分:0)

...是的,通过使用javascript,你的ajax调用将不得不与服务器通信,这里没有样本,但你应该能够通过一些'googling'找到很多例子