- sendRedirect方法
- sendRedirect()方法的语法
- RequestDispatcher接口的示例
HttpServletResponse接口的sendRedirect()方法可用于将响应重定向到另一个资源, 它可以是servlet, jsp或html文件。
它接受相对和绝对URL。
它在客户端起作用, 因为它使用浏览器的网址栏发出另一个请求。因此, 它可以在服务器内部和外部工作。
forward()和sendRedirect()方法之间的区别
RequestDispatcher的forward()方法与HttpServletResponse接口的sendRedirect()方法之间有很多区别。它们如下:
forward() method | sendRedirect() method |
---|---|
forward()方法在服务器端起作用。 | sendRedirect()方法在客户端运行。 |
它将相同的请求和响应对象发送到另一个servlet。 | 它总是发送一个新请求。 |
它只能在服务器内工作。 | 它可以在服务器内部和外部使用。 |
示例:request.getRequestDispacher(” servlet2″)。forward(request, response); | 示例:response.sendRedirect(” servlet2″); |
sendRedirect()方法的语法
public void sendRedirect(String URL)throws IOException;
sendRedirect()方法的示例
response.sendRedirect("http://www.srcmini02.com");
servlet中sendRedirect方法的完整示例
在此示例中, 我们将请求重定向到Google服务器。注意sendRedirect方法在客户端工作, 这就是为什么我们可以将请求发送到任何地方的原因。我们可以在服务器内外发送请求。 |
DemoServlet.java
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服务器。
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>sendRedirect example</title>
</head>
<body>
<form action="MySearcher">
<input type="text" name="name">
<input type="submit" value="Google Search">
</form>
</body>
</html>
MySearcher.java
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);
}
}
下载此示例(在Eclipse中开发)