如何将servlet发送的结果放入html输入框?

时间:2016-02-11 17:02:14

标签: java html servlets

HTML文件

<form method = "post"  action = "getSum">
     Enter first no. : <input type = "text" name = "First"/>
     Enter Second no.: <input type = "text" name = "Second"/>
     SUM :             <input type = "text" name = "Sum"/>    
</form>

sum.java

package calculation;


public class sum extends HttpServlet {
private static final long serialVersionUID = 1L;

public sum() {
    super();
  }

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    int first = Integer.parseInt(request.getParameter("First"));
    int second = Integer.parseInt(request.getParameter("Second"));
    int sum = first+second;
    PrintWriter out = response.getWriter();
    out.println("");


}

}

我想把servlet发送的结果放到我在html文件中输入的输入框中怎么做?我是servlet编程的新手,请帮助我一点点

3 个答案:

答案 0 :(得分:2)

简而言之。

在servlet的doGet()方法中创建表单。在action属性中,在method属性中指定servlet的名称,指定POST

  ...
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out.println(...) // form here
  ...

您可以使用*.html文件,而不是在servlet中创建表单。

在servlet的doPost()方法中获取传递的参数。

...
request.getParameter("First");
request.getParameter("Second");
request.getParameter("Sum");
...

执行必要的检查,生成带有填充字段的表单。

然后调用servlet,您将看到空白表单。在字段中写入值并提交表单。您将看到填写的表格。

虽然在这种情况下使用JSP更好 - What is the difference between JSF, Servlet and JSP?

答案 1 :(得分:1)

最简单的方法是在servlet中生成所有HTML。调用doGet时,返回空的HTML表单。调用doPost()时,返回填充了数据的HTML表单。

doGet(...){
   out.println("<html> ... <form> .... </form> ... </html>
}

doPost(...){
   out.println("<html> ...<form> populate inputs </form> ... </html>");
}

您还可以创建新方法

renderHtml(Integer first, Integer second, Integer sum) {
   // print out html. If first, second, or sum is null, then don't add those to
   // the value of the input boxes
}
您调用的

可以消除重复代码。

下一个级别是使用templating system类似:jsp,Velocity,FreeMarker等....

答案 2 :(得分:1)

客户端 - 服务器交互有很多可能性。我看到两种常见的情况:

  • 用户按下按钮后,服务器返回客户端的完整HTML页面。在您的代码中,您可以简单地修改Servlet中的out.println("");行,并添加HTML表单中的提交按钮来实现此目的。但实际上你需要一些东西来生成动态HTML页面,你可以使用JSP或模板引擎,如Velocity,FreeMarker或其他东西。还有很多框架。
  • 使用AJAX。按下按钮后,服务器将一些数据返回给客户端(例如以JSON格式),客户端不会重新加载HTML页面,但可以刷新它的某些部分(即在您的情况下更新输入框值)。在这种情况下,您应该在客户端编写一些JavaScript代码来发送请求(而不是使用默认的HTML表单提交)和更新页面数据。您可以使用JQuery来简化您的工作(或其他库)。在Servlet中,您需要解析客户端请求并做出响应。您还可以使用许多库和框架。例如Gson用于解析/生成JSON或spring-web框架。