您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Servlet請求重定向如何在Java中實現,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
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 運行測試
輸入搜索關鍵詞,點擊百度搜索,效果如下:
關于Servlet請求重定向如何在Java中實現就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。