Java Servlet請求重定向的方法
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請求重定向的資料請關注好吧啦網其它相關文章!
相關文章:
