编写servlet时,我们通常会覆盖从doGet()
类继承的doPost()
和HTTPServlet
方法。
但是在编写JSP时,所有模板HTML,scriptlet和表达式都会进入_jspService()
方法。我们没有机会制作doXXX()
方法。
那么JSP页面如何处理GET
和POST
以及所有其他HTTP方法?
答案 0 :(得分:0)
如果你看一下HTTPServlet如何调用你的doGet()
,doPost()
等等(只是重要的一行......),这一点就变得清晰了。
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String method = req.getMethod();
if (method.equals(METHOD_GET)) {
doGet(req, resp);
} else if (method.equals(METHOD_POST)) {
doPost(req, resp);
} else if (method.equals(METHOD_PUT)) {
doPut(req, resp);
}
[...]
}
这也是你在JSP中如何做到的 - 因为_jspService()
与service()
中的HttpServlet
大致相同。检查request.getMethod()
并根据所谓的方法执行操作。
因此,JSP不是像HttpServlet
这样的方便方法,而是一个更原始的Servlet实现 - 但你仍然可以做同样的事情。