📅  最后修改于: 2021-01-09 12:39:17             🧑  作者: Mango
HttpServletResponse接口的sendRedirect()方法可用于将响应重定向到另一个资源,它可以是servlet,jsp或html文件。
它接受相对和绝对URL。
它在客户端工作,因为它使用浏览器的网址栏发出另一个请求。因此,它可以在服务器内部和外部工作。
RequestDispatcher的forward()方法与HttpServletResponse接口的sendRedirect()方法之间有很多区别。它们如下:
forward() method | sendRedirect() method |
---|---|
The forward() method works at server side. | The sendRedirect() method works at client side. |
It sends the same request and response objects to another servlet. | It always sends a new request. |
It can work within the server only. | It can be used within and outside the server. |
Example: request.getRequestDispacher(“servlet2”).forward(request,response); | Example: response.sendRedirect(“servlet2”); |
public void sendRedirect(String URL)throws IOException;
response.sendRedirect("http://www.javatpoint.com");
在此示例中,我们将请求重定向到Google服务器。注意sendRedirect方法在客户端起作用,这就是为什么我们可以将请求发送到任何地方的原因。我们可以在服务器内外发送请求。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DemoServlet extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
res.setContentType("text/html");
PrintWriter pw=res.getWriter();
response.sendRedirect("http://www.google.com");
pw.close();
}}
在此示例中,我们使用sendRedirect方法将请求与请求数据一起发送到Google服务器。
sendRedirect example
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MySearcher extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name=request.getParameter("name");
response.sendRedirect("https://www.google.co.in/#q="+name);
}
}