Java Servlet請求重定向的方法
HttpServletResponse接口的sendRedirect()方法可用于將響應(yīng)重定向到另一個資源,它可以是Servlet,Jsp或Html文件。
它接受相對和絕對URL。
它在客戶端起作用,因?yàn)樗褂脼g覽器的網(wǎng)址欄發(fā)出另一個請求。因此,它可以在服務(wù)器內(nèi)部和外部工作。
1 轉(zhuǎn)發(fā)和重定向的區(qū)別
RequestDispatcher的forward()方法與HttpServletResponse接口的sendRedirect()方法之間有很多區(qū)別。具體區(qū)別如下:
forward()方法 sendRedirect()方法 forward()方法在服務(wù)器端起作用。 sendRedirect()方法在客戶端運(yùn)行。 只有1個請求。轉(zhuǎn)發(fā)到另一個Servlet的請求和原來請求是同一個。 每次重定向都有2個請求。重定向到另一個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. JavaWeb Servlet中url-pattern的使用2. jsp中sitemesh修改tagRule技術(shù)分享3. asp(vbscript)中自定義函數(shù)的默認(rèn)參數(shù)實(shí)現(xiàn)代碼4. React優(yōu)雅的封裝SvgIcon組件示例5. 輕松學(xué)習(xí)XML教程6. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究7. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)8. JSP servlet實(shí)現(xiàn)文件上傳下載和刪除9. ASP基礎(chǔ)知識VBScript基本元素講解10. 詳解瀏覽器的緩存機(jī)制
