這篇文章將為大家詳細(xì)講解有關(guān)Servlet請(qǐng)求重定向如何在Java中實(shí)現(xiàn),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
我們注重客戶(hù)提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好成都網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),我們努力開(kāi)拓更好的視野,通過(guò)不懈的努力,創(chuàng)新互聯(lián)贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶(hù)。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),微信小程序,網(wǎng)站開(kāi)發(fā),技術(shù)開(kāi)發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫(kù)的技術(shù)開(kāi)發(fā)工程師。HttpServletResponse接口的sendRedirect()方法可用于將響應(yīng)重定向到另一個(gè)資源,它可以是Servlet,Jsp或Html文件。
它接受相對(duì)和絕對(duì)URL。
它在客戶(hù)端起作用,因?yàn)樗褂脼g覽器的網(wǎng)址欄發(fā)出另一個(gè)請(qǐng)求。因此,它可以在服務(wù)器內(nèi)部和外部工作。
1 轉(zhuǎn)發(fā)和重定向的區(qū)別
RequestDispatcher的forward()方法與HttpServletResponse接口的sendRedirect()方法之間有很多區(qū)別。具體區(qū)別如下:
forward()方法 | sendRedirect()方法 |
---|---|
forward()方法在服務(wù)器端起作用。 | sendRedirect()方法在客戶(hù)端運(yùn)行。 |
只有1個(gè)請(qǐng)求。轉(zhuǎn)發(fā)到另一個(gè)Servlet的請(qǐng)求和原來(lái)請(qǐng)求是同一個(gè)。 | 每次重定向都有2個(gè)請(qǐng)求。重定向到另一個(gè)Servlet的請(qǐng)求是由瀏覽器重新發(fā)出的新請(qǐng)求。 |
只能轉(zhuǎn)發(fā)到當(dāng)前服務(wù)器內(nèi)部的資源。 | 重定向可以請(qǐng)求當(dāng)前服務(wù)器內(nèi)部的資源或者外部服務(wù)器資源。 |
示例:request.getRequestDispacher("servlet2").forward(request,response); | 示例:response.sendRedirect(" servlet2"); |
2 重定向的示例
在下面示例中,我們將請(qǐng)求重定向到百度。注意sendRedirect方法在客戶(hù)端工作,這就是為什么我們可以將請(qǐng)求發(fā)送到任何地方的原因。我們可以在服務(wù)器內(nèi)外發(fā)送請(qǐng)求。
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(); } }