2014-01-21 42 views
0

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

非常感谢。

+0

HTTP重定向将始终使用GET。 – NINCOMPOOP

回答

0

response.sendRedirect始终是一个GET

+0

但它是如何决定的? 我认为doGet()是默认的,因此doGet会被调用?我对吗?如果doGet没有实现呢?它会调用doPost()吗? – Sachin

0

重定向总是使用get方法, 重定向意味着一个新的请求.. 当我们给发送重定向实际发生的是来自用户的新的请求.. ,它始终是get .. 因为它是一个新的请求,我们无法访问旧的请求参数

0

sendRedirect()始终是一个2步骤过程,在该过程中,服务器将URL位置和状态码301发送到客户端浏览器。 客户端浏览器然后GET的URL,然后去那个URL位置(你可以在地址栏中看到这个网址)。

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

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

相关问题