【问题标题】:Servlet response in particular part of HTMLServlet 响应在 HTML 的特定部分
【发布时间】:2017-12-17 05:42:57
【问题描述】:

我已经尝试了超过 2 天来找出如何将来自 Servlet 的响应放置到 HTML 页面的特定位置。位置应该在“我想在这里!!!”的地方是

<form name="input" action="ExamServlet" method="get">
<table>
  <tr>
   <th>Nr.</th>
   <th>"Here i want to be!!!"</th>
  </tr>
   <tr>
    <td>3+1=4?</td>
 <input type="submit" value="Einreichen">
 </form>

servlet 的 doGet 方法在这里:

        PrintWriter pwritter=response.getWriter();
    pwritter.print("here i am ");
    RequestDispatcher dis=request.getRequestDispatcher("Exam.html");
    dis.include(request, response);

正如大多数有经验的程序员会注意到的那样,我在 html 表上方得到了“我在这里”的值。

更准确地说:

仅使用 servlet 和 HTML 是否有可能达到我想要的效果?如果是,小提示将是完美的! 如果没有,我应该使用 JavaScript 吗?我宁愿没有它...

提前致谢!! 德克尔

【问题讨论】:

标签: java html servlets


【解决方案1】:

尝试在需要输入数据的位置之前先放入 html 的输出流部分:

pwritter.print("<form name="input" action="ExamServlet" method="get">" +
"<table>"+
  "<tr>"+
   "<th>Nr.</th>"+
   "<th>");

然后把你的数据放在那里:

pwritter.print("here i am ");

然后把剩下的静态html。

pwritter.print("</th>"+
  "</tr>"+
   "<tr>"+
    "<td>3+1=4?</td>"+
 "<input type="submit" value="Einreichen">"+
 "</form>");

然后做dis.forward(request, response);

【讨论】:

    【解决方案2】:

    我建议您采用不同的方法。为什么不通过 javascript 通过 Ajax 调用您的 servlet。然后在 java 脚本函数中捕获响应,然后使用 document.getElementById("someId").innerHtml 方法插入 servlet 的响应。

    不会有页面刷新和提交。只需对 servlet 进行 ajax 调用,捕获响应并写入响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      相关资源
      最近更新 更多