【问题标题】:for sendredirect which method gets called doGet or doPost() [duplicate]对于 sendredirect,哪个方法被调用 doGet 或 doPost() [重复]
【发布时间】:2014-02-11 00:11:14
【问题描述】:

我是 servlet 的新手。 我的问题是如果我使用 response.sendredirect() 哪个方法被称为 doGet 或 doPost()? 我知道在 jsp 到 servlet 的 get 或 post 方法将根据方法类型被调用。 但是,如果它是使用 response.sendRedirect() 的 servlet 到 servlet 请求,将调用哪个方法? servlet 引擎如何决定调用哪个方法?

谢谢你。

【问题讨论】:

  • HTTP 重定向将始终使用 GET 。

标签: java jsp jakarta-ee servlets


【解决方案1】:

response.sendRedirect 始终是 GET

【讨论】:

  • 但它是如何决定的?我认为 doGet() 是默认的,因此 doGet 会被调用吗?我对吗?如果 doGet 没有实现呢?它会调用 doPost() 吗?
【解决方案2】:

redirect 总是使用 get 方法, 重定向意味着一个新的请求.. 当我们给发送重定向时,实际发生的是来自用户的新请求.. 它总是得到.. 由于这是一个新请求,我们无法访问旧请求参数

【讨论】:

    【解决方案3】:

    sendRedirect() 始终是一个两步过程,其中服务器向客户端浏览器发送 URL 位置和状态代码 301。 客户端浏览器然后 GET 的 URL,然后转到该 url 位置。(您可以在地址栏中看到此 url)。

    请记住,对 Http 或 URL 链接的请求始终是 Get 请求,无论 URL 是指向应用程序内的 servlet 还是指向外部位置。

    参考 http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletResponse.html#sendRedirect%28java.lang.String%29

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 2013-06-29
      • 1970-01-01
      相关资源
      最近更新 更多