📜  Servlet教程:sendRedirect方法

📅  最后修改于: 2021-01-09 12:39:17             🧑  作者: Mango

Servlet中的SendRedirect

HttpServletResponse接口的sendRedirect()方法可用于将响应重定向到另一个资源,它可以是servlet,jsp或html文件。

它接受相对和绝对URL。

它在客户端工作,因为它使用浏览器的网址栏发出另一个请求。因此,它可以在服务器内部和外部工作。

forward()和sendRedirect()方法之间的区别

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”);

sendRedirect()方法的语法

public void sendRedirect(String URL)throws IOException;

sendRedirect()方法的示例

response.sendRedirect("http://www.javatpoint.com");

Servlet中sendRedirect方法的完整示例

在此示例中,我们将请求重定向到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方法将请求与请求数据一起发送到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);
    }
}

输出量