public class CornelltaxiServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
//resp.setContentType("text/plain");
//resp.getWriter().println("Hello, world");
}
}
根据我对doGet和doPost的理解,我把“Hello,world”消息放在哪里并不重要。但是,当我尝试使用doPost方法打印它时,它不起作用。有人可以帮我解释一下吗?
另外,来自
void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Preprocess request: we actually don't need to do any business stuff, so just display JSP.
request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
}
request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
这是做什么的?
答案 0 :(得分:2)
请求HTTP GET时调用doGet()
方法(例如,当您在浏览器中键入servlet的URL时)。然后Hello, world
将出现在浏览器中。
doPost()
将用于HTTP POST。你需要例如:
<form method="POST" action="/your/servlet"
当您提交此类表单时,您应该在浏览器中看到“Hello,world”(即取消注释时)。
至于你的第二个问题:
request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
这会将请求处理转发到hello.jsp
。基本上,将呈现该文件的内容而不是Hello, world
。使用resp.getWriter()
发送内容并转发是错误的。选一个。