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编程的新手,请帮助我一点点
答案 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)
客户端 - 服务器交互有很多可能性。我看到两种常见的情况:
out.println("");
行,并添加HTML表单中的提交按钮来实现此目的。但实际上你需要一些东西来生成动态HTML页面,你可以使用JSP或模板引擎,如Velocity,FreeMarker或其他东西。还有很多框架。