<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 32,  comments - 3,  trackbacks - 0
    sendRedirect()與forward()實現轉向的異同
           1.前面慢,后者快
           2.前面無法讀取request.setAttribute()所保存的數值,而后者可以讀取
           3.前者地址欄顯示真正轉向后的地址,而后者顯示的是轉向前的地址
           4.前者,轉向地址開始的"/",表示的是本機的根目錄;而后者,"/"表示的是應用的根目錄

    1.RequestDispatcher.forward()

            是在服務器端起作用,當使用forward()時,Servletengine傳遞HTTP請求從當前的Servlet or JSP到另外一個Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此時form提交的所有信息在 b.jsp都可以獲得,參數自動傳遞.

            但forward()無法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同時forward()無法在后面帶參數傳遞,比如servlet?name=frank,這樣不行,可以程序內通過 response.setAttribute("name",name)來傳至下一個頁面.

            重定向后瀏覽器地址欄URL不變. 因為完成一個業務操作往往需要跨越多個步驟,每一步驟完成相應的處理后,轉向到下一個步驟。比如,通常業務處理在Servlet中處理,處理的結果轉向到一個 JSP頁面進行顯示。這樣看起來類似于Servlet鏈的功能,但是還有一些區別。一個RequestDispatcher對象可以把請求發送到任意一個服務器資源,而不僅僅是另外一個Servlet。

    注意,只有在尚未向客戶端輸出響應時才可以調用forward()方法,如果頁面緩存不為空,在重定向前將自動清除緩存。否則將拋出一個異常

    例:servlet文件中重定向


    public void doPost(HttpServletRequest request,HttpServletResponse response)

            throws ServletException,IOException

    {

            response.setContentType("text/html; charset=gb2312");

            ServletContext sc = getServletContext();

            RequestDispatcher rd = null;

            rd = sc.getRequestDispatcher("/index.jsp");

            rd.forward(request, response);

    }

         
     
    2.response.sendRedirect()

            是在用戶的瀏覽器端工作,sendRedirect()可以帶參數傳遞,比如servlet?name=frank傳至下個頁面,同時它可以重定向至不同的主機上,且在瀏覽器地址欄上會出現重定向頁面的URL.

            HttpServletResponse接口定義了可用于轉向的sendRedirect()方法。代碼如下:

            public void sendRedirect(java.lang.String location)throws java.io.IOException

            這個方法將響應定向到參數location指定的、新的URL。location可以是一個絕對的URL,如response.sendRedirect ("  

            RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的區別是:前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址;后者則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用Request Dispatcher.forward()方法,并且,這樣也有助于隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用 HttpServletResponse.sendRequest()方法。

    主站蜘蛛池模板: 在线观看特色大片免费视频| 国产91成人精品亚洲精品| jizz中国免费| 精品亚洲一区二区三区在线观看| 在线观看亚洲视频| 免费在线观看中文字幕| 美女扒开屁股让男人桶爽免费| 日本视频免费在线| 日韩精品亚洲专区在线影视| 国产伦精品一区二区三区免费下载 | 91亚洲国产成人久久精品网址| 无码国产精品一区二区免费vr | 成人人免费夜夜视频观看| 77777午夜亚洲| 日本免费电影一区| 日本视频免费观看| 亚洲成A人片在线观看WWW| 日韩精品人妻系列无码专区免费| 亚洲精品动漫在线| 搡女人真爽免费视频大全| 亚洲AV无码国产精品永久一区| 亚洲M码 欧洲S码SSS222| 久久高潮一级毛片免费| 久久国产亚洲高清观看| 最近中文字幕免费mv视频8| 亚洲国产成人AV网站| 亚洲色无码一区二区三区| 人妻无码一区二区三区免费 | 自拍偷自拍亚洲精品第1页 | 无人在线直播免费观看| 色婷婷精品免费视频| 亚洲成av人片天堂网| 免费a级毛片高清视频不卡| 日韩毛片在线免费观看| 亚洲精品午夜无码专区| 波多野结衣中文字幕免费视频| 免费福利在线观看| 亚洲美女视频一区| 亚洲av区一区二区三| 99ee6热久久免费精品6| 色多多免费视频观看区一区|