在不更改页面的情况下提取和处理textarea值表单

时间:2015-07-19 20:05:29

标签: java html jsp tomcat intellij-idea

我有一个JSP文件,其中有两个textareas和一个提交按钮都在一个表单中;

<form action="" method="post">
        <textarea name="inConsole" id="in" cols="100" rows="10"> </textarea> <br/>
        <input type="submit" name="Send Command"/> <br/>
        <textarea name="outConsole" id="out" cols="100" rows="10"></textarea>
</form>

这个页面应该像任何SQL程序一样工作。所以用户在第一个textarea中键入命令并单击submit,然后textarea的值将被提取到一个字段,一个方法将处理该命令并返回一个日志(插入1行,错误:错误语法等)将显示在第二个文本区域中。

我知道如果用户传递正确,如何制作登录页面并发送数据并将用户重定向到新页面(新jsp)文件。

我无法找到的是,在使用表单操作时,如何在不进入新页面的情况下完成上述所有操作。 我已经检查了将action属性链接到servlet的其他问题,这对我来说很困惑(调用servlet的方式)。我期待为此目的使用一个简单的scriptlet,就像我用于登录页面的那个:

 <%
    DatabaseLoginTest dbLogTest = new DatabaseLoginTest();
    if (dbLogTest.DBLoginChecker(request.getParameter("user"), request.getParameter("pass")) == true){
        %>
         <p>Login Successful</p>
     <% } else { %>
        <p>Login Failed</p>
    <% } %>

我也意识到将HTML脚本(不是Javascript脚本:))添加到html并不是一种很好的做法(以及它的原因),但我认为对于一个简单的程序我可能更容易#39;正在努力。

p.s:我使用tomcat和Intellij开发这个Web应用程序 并且我已经创建了一个自定义SQL,所以我只需要提供textarea值的代码和设置另一个值的代码

更新:现在我知道我应该使用javascript但我不知道如何将javascript提取的数据发送到java方法。

1 个答案:

答案 0 :(得分:1)

如果您想在保持同一页面的同时执行此操作,则 使用Javascript。这是因为如果您希望服务器能够重新呈现页面,则必须刷新页面。

您需要为提交按钮编写onClick处理程序,并使用用户输入对服务器进行Ajax调用。此URL将提供必要的UI更改所需的数据。

您可以使用scriptlet生成将在网页中显示的HTML,但这仅适用于简单的用例,如果您的服务仅返回制作所需的数据,则会更加简单UI更改和实际UI更改由JS处理。

另外,我不认为在HTML中嵌入JS是一种不好的做法。当然,您可以通过包含JS源文件来优化它,但这是一个单独的优化。