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

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

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

    隨筆 - 3, 文章 - 152, 評論 - 17, 引用 - 0
    數據加載中……

    全解forward()和sendRedirect()

    昨天在servlet中搞些頁面重定向的問題,在處理頁面的path時遇到了一些惱人的問題,今天來深究一下:

    Javax.servlet.RequestDispatcher.forward(ServletRequest request, ServletResponse response)

    Javax.servlet.http.HttpServletResponse.sendRedirect(String location)

    forward

    作用于服務器端,重定向后客戶端瀏覽器地址欄的URL不變,無法通過get方式傳遞參數,不過可以通過HttpServletResponse. setAttribute(key, values)來做:

    JDKDOC中的描述:

    Forwards a request from a servlet to another resource (servlet, JSP file, or HTML file) on the server. This method allows one servlet to do preliminary processing of a request and another resource to generate the response.

    forward should be called before the response has been committed to the client (before response body output has been flushed). If the response already has been committed, this method throws an IllegalStateException. Uncommitted output in the response buffer is automatically cleared before the forward.

    這個方法允許一個servlet對一個請求作完處理后,并使用另一個資源作響應。

    forward應該在向客戶端發出響應之前被調用(response的輸出流被刷新之前),如果已經向客戶端發出了響應,這個方法將拋出一個“IllegalStateException”的異常。未發出響應response的輸出緩沖區在調用forward會被自動的清空。

    得到RequestDispatcher引用的方法:

    1、  javax.servlet.ServletContext.getRequestDispatcher(String path)

    JDKDOC中的描述:

    The pathname must begin with a "/" and is interpreted as relative to the current context root. Use getContext to obtain a RequestDispatcher for resources in foreign contexts. This method returns null if the ServletContext cannot return a RequestDispatcher.

    用的最多,最容易理解的方法,path必須是以“/”開頭,路徑是相對于全局上下文路徑,對應于web應用的根目錄

    2javax.servlet.ServletRequest.getRequestDispatcher(String path)

    JDKDOC中的描述:

    The pathname specified may be relative, although it cannot extend outside the current servlet context. If the path begins with a "/" it is interpreted as relative to the current context root. This method returns null if the servlet container cannot return a RequestDispatcher.

    可以是相對地址,以當前資源的根目錄,但不能超出當前資源根目錄。

    可以是以“/”開頭的地址,當前root作為根目錄環境。

    2、  javax.servlet.ServletContext.getNamedDispatcher(String name)

    JDKDOC中的描述:

    Servlets (and JSP pages also) may be given names via server administration or via a web application deployment descriptor.

    得到名為name的資源。

    Servlets(也可是JSP 頁面)可能會有個給定的名字,該名字是服務器或者web應用的部署描述web.xml提供的。

    sendRedirect

    工作在客戶端,重定向后客戶端瀏覽器地址欄的URL變為新的資源URL,可以通過get方式傳遞參數。

           JDKDOC的描述:

    Sends a temporary redirect response to the client using the specified redirect location URL. This method can accept relative URLs; the servlet container must convert the relative URL to an absolute URL before sending the response to the client. If the location is relative without a leading '/' the container interprets it as relative to the current request URI. If the location is relative with a leading '/' the container interprets it as relative to the servlet container root.

    If the response has already been committed, this method throws an IllegalStateException. After using this method, the response should be considered to be committed and should not be written to.

    這個方法可以接受相對的URL,在發送響應之前servlet容器會將其轉化為絕對的URL。如果相對的URL不以“/”開頭,容器將解釋為是相對當前請求的路徑URI,如果是以“/”開頭,則解釋為是相對于servlet容器的更目錄環境。

    注意:如果已經向客戶端響應了請求,這個方法將拋出一個“IllegalStateException”的異常。調用了這個方法后,這個響應是否被提交或是否提交完畢。

           sendRedirect比較簡單,參數location就是代表重定向目標新資源。

           localtion可以有以下幾種情況:

    可以是絕對地址,如:http://localhost:8080/servlet/a.jsp

    可以是相對地址,相對于當前訪問資源的根目錄,如:a.jsp

    可以是以“/”開頭的地址,則認為是先對該web應用的根目錄,如:/a.jsp

    posted on 2005-08-01 15:44 閱讀(459) 評論(0)  編輯  收藏 所屬分類: Jsp & Servlet


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 美女黄网站人色视频免费| 亚洲人成在线播放| 免费在线观看亚洲| 亚洲国产精品成人AV在线| 女人18毛片免费观看| 亚洲区日韩精品中文字幕| 日韩中文字幕免费| 国产亚洲精品精品精品| 国产免费网站看v片在线| 亚洲AV无码精品无码麻豆| 91av免费观看| 亚洲第一成人在线| 国产片免费在线观看| 特a级免费高清黄色片| 亚洲色无码专区在线观看| 久久精品免费观看国产| 亚洲人成在线播放| 真实乱视频国产免费观看| sihu国产精品永久免费| 亚洲AV无码日韩AV无码导航 | 亚洲av乱码一区二区三区香蕉| 日韩免费a级毛片无码a∨ | 在线看片韩国免费人成视频| 激情亚洲一区国产精品| 免费国产成人高清视频网站| 中文字幕无线码中文字幕免费| 日本久久久久亚洲中字幕| 成人影片麻豆国产影片免费观看 | 久久久久亚洲Av片无码v| ww4545四虎永久免费地址| 亚洲精品天堂成人片AV在线播放| 亚洲精品成人网久久久久久| 中文字幕无码精品亚洲资源网久久| 国产美女做a免费视频软件| 国产中文字幕在线免费观看| 亚洲春色另类小说| 亚洲AⅤ视频一区二区三区 | 亚洲无码在线播放| 成年免费大片黄在线观看岛国 | 日韩毛片一区视频免费| 国产亚洲精品国产|