Java Servlet请求重定向的方法
程序员文章站
2022-03-21 11:37:49
httpservletresponse接口的sendredirect()方法可用于将响应重定向到另一个资源,它可以是servlet,jsp或html文件。它接受相对和绝对url。它在客户端起作用,因为...
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请求重定向的资料请关注其它相关文章!