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

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

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

<html><body>
    <form action="MyServlet" method="POST">
        Enter name: <input type="text" name="name">
        <button>Submit name</button>
    </form>
</body></html>

myservlet.java文件:

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter pw = resp.getWriter();
        pw.println("hello ");

        RequestDispatcher dispatch = req.getRequestDispatcher("test.jsp");
        dispatch.forward(req, resp);
    }
}

测试.jsp:

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

填好表格后:

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

vohkndzv

vohkndzv1#

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

dispatch.forward(req, resp);

dispatch.include(req, resp);

相关问题