java—如何制作一个简单的程序,让servlet和jsp一起生成html文件?

py49o6xq  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(454)

我想知道是否可以同时使用servlet和jsp发送html页面。不,我不希望jsp通过转发来自servlet的请求来完成所有工作。我希望servlet写“hello”,jsp写“用户名”。
这是我的尝试,但失败了:
索引.html:

  1. <html><body>
  2. <form action="MyServlet" method="POST">
  3. Enter name: <input type="text" name="name">
  4. <button>Submit name</button>
  5. </form>
  6. </body></html>

myservlet.java文件:

  1. @WebServlet("/MyServlet")
  2. public class MyServlet extends HttpServlet {
  3. @Override
  4. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  5. PrintWriter pw = resp.getWriter();
  6. pw.println("hello ");
  7. RequestDispatcher dispatch = req.getRequestDispatcher("test.jsp");
  8. dispatch.forward(req, resp);
  9. }
  10. }

测试.jsp:

  1. <html><body>
  2. <%= request.getParameter("name") %>
  3. </body></html>

填好表格后:

,我希望 hello elephant . 但我只知道 elephant . 我尝试将pw.flush()放在servlet的代码中,结果正好相反 hello .
现在我被困住了,因为我不明白怎么了。我猜当我刷新一个流时,响应被提交了,所以剩下的代码没有运行。但为什么用户没有得到 hello 我没有提交(刷新)流时的消息?我能像我描述的那样做吗?看来我遗漏了一些基本的东西。

vohkndzv

vohkndzv1#

使用 RequestDispatcher.include(ServletRequest, ServletResponse) 而不是 forward . 改变

  1. dispatch.forward(req, resp);

  1. dispatch.include(req, resp);

相关问题