Java Servlet請求重定向的方法
HttpServletResponse接口的sendRedirect()方法可用于將響應(yīng)重定向到另一個(gè)資源,它可以是Servlet,Jsp或Html文件。
它接受相對和絕對URL。
它在客戶端起作用,因?yàn)樗褂脼g覽器的網(wǎng)址欄發(fā)出另一個(gè)請求。因此,它可以在服務(wù)器內(nèi)部和外部工作。
1 轉(zhuǎn)發(fā)和重定向的區(qū)別
RequestDispatcher的forward()方法與HttpServletResponse接口的sendRedirect()方法之間有很多區(qū)別。具體區(qū)別如下:
forward()方法 sendRedirect()方法 forward()方法在服務(wù)器端起作用。 sendRedirect()方法在客戶端運(yùn)行。 只有1個(gè)請求。轉(zhuǎn)發(fā)到另一個(gè)Servlet的請求和原來請求是同一個(gè)。 每次重定向都有2個(gè)請求。重定向到另一個(gè)Servlet的請求是由瀏覽器重新發(fā)出的新請求。 只能轉(zhuǎn)發(fā)到當(dāng)前服務(wù)器內(nèi)部的資源。 重定向可以請求當(dāng)前服務(wù)器內(nèi)部的資源或者外部服務(wù)器資源。 示例:request.getRequestDispacher('servlet2').forward(request,response); 示例:response.sendRedirect(' servlet2');
2 重定向的示例
在下面示例中,我們將請求重定向到百度。注意sendRedirect方法在客戶端工作,這就是為什么我們可以將請求發(fā)送到任何地方的原因。我們可以在服務(wù)器內(nèi)外發(fā)送請求。
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 重定向創(chuàng)建自定義百度搜索
在下面示例中,我們使用sendRedirect方法將請求與請求數(shù)據(jù)一起發(fā)送到百度服務(wù)器。
3.1 編寫搜索表單
<%@ page contentType='text/html;charset=UTF-8' language='java' %><html><head> <meta charset='UTF-8'> <title>一點(diǎn)教程網(wǎng)-請求重定向案例</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 運(yùn)行測試

輸入搜索關(guān)鍵詞,點(diǎn)擊百度搜索,效果如下:

以上就是使用Java Servlet請求重定向的詳細(xì)內(nèi)容,更多關(guān)于Java Servlet請求重定向的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. Android如何加載Base64編碼格式圖片2. 詳解Android studio 動(dòng)態(tài)fragment的用法3. 解決Android studio xml界面無法預(yù)覽問題4. 基于android studio的layout的xml文件的創(chuàng)建方式5. 圖文詳解vue中proto文件的函數(shù)調(diào)用6. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁效果(實(shí)例代碼)7. 什么是python的自省8. 使用Android studio查看Kotlin的字節(jié)碼教程9. Vuex localStorage的具體使用10. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)

網(wǎng)公網(wǎng)安備