您的位置:首页技术文章
文章详情页

Java Servlet请求重定向的方法

【字号: 日期:2022-08-21 11:19:30浏览:12作者:猪猪

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

它接受相对和绝对URL。

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

1 转发和重定向的区别

RequestDispatcher的forward()方法与HttpServletResponse接口的sendRedirect()方法之间有很多区别。具体区别如下:

forward()方法 sendRedirect()方法 forward()方法在服务器端起作用。 sendRedirect()方法在客户端运行。 只有1个请求。转发到另一个Servlet的请求和原来请求是同一个。 每次重定向都有2个请求。重定向到另一个Servlet的请求是由浏览器重新发出的新请求。 只能转发到当前服务器内部的资源。 重定向可以请求当前服务器内部的资源或者外部服务器资源。 示例:request.getRequestDispacher('servlet2').forward(request,response); 示例:response.sendRedirect(' servlet2');

2 重定向的示例

在下面示例中,我们将请求重定向到百度。注意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;charset=utf-8'); PrintWriter pw=res.getWriter(); res.sendRedirect('http://www.baidu.com'); pw.close(); }}

3 重定向创建自定义百度搜索

在下面示例中,我们使用sendRedirect方法将请求与请求数据一起发送到百度服务器。

3.1 编写搜索表单

<%@ page contentType='text/html;charset=UTF-8' language='java' %><html><head> <meta charset='UTF-8'> <title>一点教程网-请求重定向案例</title> <meta http-equiv='content-type' content='text/html' charset='UTF-8'></head><body><form action='search'> <input type='text' name='name'> <input type='submit' value='百度搜索'></form></body></html>

3.2 编写SearchServlet

import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class SearchServlet extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { String name=req.getParameter('name'); res.sendRedirect('https://www.baidu.com/s?wd='+name); }}

3.3 配置web.xml

<?xml version='1.0' encoding='UTF-8'?><web-app xmlns='http://xmlns.jcp.org/xml/ns/javaee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd' version='3.1'> <servlet> <servlet-name>SearchServlet</servlet-name> <servlet-class>SearchServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SearchServlet</servlet-name> <url-pattern>/search</url-pattern> </servlet-mapping> </web-app>

3.4 运行测试

Java Servlet请求重定向的方法

输入搜索关键词,点击百度搜索,效果如下:

Java Servlet请求重定向的方法

以上就是使用Java Servlet请求重定向的详细内容,更多关于Java Servlet请求重定向的资料请关注好吧啦网其它相关文章!

标签: Java
相关文章: