JSP页面如何处理GET和POST方法?

时间:2015-01-26 12:09:07

标签: java jsp

编写servlet时,我们通常会覆盖从doGet()类继承的doPost()HTTPServlet方法。

但是在编写JSP时,所有模板HTML,scriptlet和表达式都会进入_jspService()方法。我们没有机会制作doXXX()方法。

那么JSP页面如何处理GETPOST以及所有其他HTTP方法?

1 个答案:

答案 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实现 - 但你仍然可以做同样的事情。