Servlet – 带有示例的 sendRedirect() 方法
Servlet 是在服务器端运行并生成对客户端请求的动态响应的Java程序。 Servlet 接受来自浏览器的请求,对其进行处理,并生成对浏览器的响应。在处理请求时,假设如果需要从不同的服务器调用另一个 servlet,我们需要将响应重定向到该资源。为此, Java servlet 在javax.servlet.http包的 HttpServletResponse 接口中提供了 sendRedirect() 方法。为了更好地理解,让我们看一些实时示例。
例1:现在网上购物网站很多,我们可以在上面购买商品。一旦我们选择了产品,准备好购买,并点击支付,浏览器将重定向到相应的在线支付页面。在这里,来自购物网站的响应将其重定向到支付页面,并且可以在浏览器中看到一个新的 URL。
示例 2:在一些在线教育应用程序中,如果我们想要包含 google 搜索操作或包含指向另一个网站的链接以获取有关该主题的更多信息,我们需要将响应重定向到特定 URL。
HttpServletResponse 接口
HttpServletResponse 扩展了 ServletResponse 接口以提供特定于 HTTP 请求和响应的功能。它提供了访问 HTTP 标头和 cookie 的方法。
public interface HttpServletResponse extends ServletResponse
sendRedirect() 方法
sendRedirect() 方法将响应重定向到服务器内部或外部的另一个资源。它使客户端/浏览器创建一个新的请求以获取资源。它使用指定的重定向位置 URL 向客户端发送临时重定向响应。
句法:
void sendRedirect(java.lang.String location) throws java.io.IOException
- sendRedirect() 接受将请求重定向到的相应 URL。
- 可以将请求重定向到服务器内部或外部的另一个资源,例如 Servlet、HTML 页面或 JSP 页面。
- 它适用于 HTTP 响应对象,并始终为该对象发送新请求。
- 可以在浏览器中看到正在重定向的新 URL。
例子:
正如我们上面所讨论的,我们将创建一个简单的 servlet,它将页面重定向到另一个网站。
索引.html
HTML
Home
Java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/redirect")
public class ServletRedirect extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendRedirect("https://www.geeksforgeeks.org/url-rewriting-using-java-servlet/");
}
}
我们有一个带有 action =”redirect” method = “get” 的表单,因此 Index.html 映射具有 '/redirect' URL 的 servlet 并在其中执行 'doGet' 方法。
Servlet 重定向。Java
Java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/redirect")
public class ServletRedirect extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendRedirect("https://www.geeksforgeeks.org/url-rewriting-using-java-servlet/");
}
}
我们需要从 javax.servlet 导入所有需要的包。我们没有使用 web.xml 中的 servlet 映射页面,而是使用注释来指定它——@WebServlet(“/redirect”)。当 'doGet' 方法执行时,响应将重定向到指定的 URL。
输出:
在服务器上运行 Index.html,将显示以下页面。
单击以获取更多信息时,我们指定将响应重定向到该特定 URL。
这样,我们就可以在 Servlet 中使用 sendRedirect() 方法。