我想知道是否可以同时使用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
我没有提交(刷新)流时的消息?我能像我描述的那样做吗?看来我遗漏了一些基本的东西。
1条答案
按热度按时间vohkndzv1#
使用
RequestDispatcher.include(ServletRequest, ServletResponse)
而不是forward
. 改变到