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

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

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

    泰仔在線

    java學習,心情日記,繽紛時刻
    posts - 100, comments - 34, trackbacks - 0, articles - 0

    請求轉發 請求重定向 包含

    Posted on 2006-09-07 17:42 泰仔在線 閱讀(2053) 評論(0)  編輯  收藏 所屬分類: Java 相關
    java  jsp學了幾年了,今天突然發現這些最基礎的東西都還沒有弄清楚,趕緊抽點時間把它記下來,以便以后復習!
    1、請求轉發
       請求轉發允許把請求轉發給同一應用程序中的其他Web組件。這種技術通常用于Web應用控制層的Servlet流程控制器,它檢查HTTP請求數據,并將請求轉發到合適的目標組件,目標組件執行具體的請求處理具體的請求處理操作,并生成響應結果。
    o_1.JPG

       Servlet類使用javax.servlet.RequestDispatcher.forward()方法來轉發它所收到的HTTP請求。轉發目標組件將處理該請求并生成響應結果,或者將請求繼續轉發到另一個組件。最初請求的ServletRequest和ServletResponse對象被傳遞給轉發目標組件,這使得目標組件可以訪問整個請求上下文。值得注意的是,只能把請求轉發給同一Web應用中的組件,而不能轉發給其他Web應用的組件。
       如果當前的Servlet組件要把請求轉發給一個JSP組件,如hello.jsp,可以在Servlet的service()方法中執行以下代碼:
             RequestDispatcher rd = request.getRequestDispatcher("hello.jsp");
             //Forward to requested URL
             rd.forward(request, response);
       在JSP頁面中,可以使用<jsp:forward>標簽來轉發請求,例如:
             <jsp:forward page="hello.jsp">
       對于請求轉發,轉發的源組件和目標組件共享request范圍內的共享數據。
    2、URL重定向
       請求重定向類似于請求轉發,但也有一些重要區別:
    Web組件可以將請求重定向到任一URL,而不僅僅是同一應用中的URL。
    重定向的源組件和目標組件之間不共用同一個HttpServletRequest對象,因此不能共享request范圍內的共享數據。
    o_2.JPG

       
       如果當前應用的Servlet組件要把請求轉發給URL"
    response.sendRedirect("http://jakarta.apache.org/struts");
       HttpServletResponse的sendRedirect()方法向瀏覽器返回包含重定向的信息,瀏覽器根據這一信息迅速發出一個新HTTP請求,請求訪問重定向目標組件。
    3、包含
       包含關系允許一個Web組件聚集來自同一個應用中其他Web組件的輸出數據,并使用被聚集的數據來創建響應結果。這種技術通常用于模板處理器,它可以控制網頁的布局。模板中每個頁面區域的內容來自不同的URL,從而組成單個頁面。這種技術能夠為應用程序提供一致的外觀和感覺。包含關系的源組件和目標組件共用同一個HttpServletRequest對象,因此它們共享request范圍內的共享數據。
    o_3.JPG

       Servlet類使用javax.servlet.RequestDispatcher.include()方法包含其他的Web組件。例如,如果當前的Servlet組件包含了三個JSP文件:header.jsp、main.jsp和footer.jsp,則可以在Servlet的service()方法中執行以下代碼:
    RequestDispatcher rd;
    rd 
    = req.getRequestDispatcher("/header.jsp"
    )
    rd.include(req,res);
    rd 
    = req.getRequestDispatcher("/main.jsp"
    )
    rd.include(req,res);
    rd 
    = req.getRequestDispatcher("/footer.jsp"
    )
    rd.include(req,res);
       在JSP文件中,可以通過<include>指令來包含其他的Web資源,例如:
    <%@ include file="header.jsp"%>
    <%@ include file="main.jsp"%>
    <%@ include file="footer.jsp"%>
       <來自孫衛琴----精通 Struts :基于 MVC 的 JavaWeb 設計與開發>
    主站蜘蛛池模板: 尤物视频在线免费观看| 啦啦啦手机完整免费高清观看| 久久aa毛片免费播放嗯啊| 午夜老司机永久免费看片| 无码一区二区三区AV免费| 国产精品酒店视频免费看| 亚洲中文字幕在线第六区| 国产裸模视频免费区无码| 亚洲А∨精品天堂在线| 亚洲激情视频在线观看| 成人亚洲国产va天堂| 有色视频在线观看免费高清在线直播 | 亚洲AV午夜成人影院老师机影院| 亚洲精品一卡2卡3卡三卡四卡| 亚洲人成网站免费播放| 丁香婷婷亚洲六月综合色| 黄色三级三级三级免费看| 国产亚洲综合精品一区二区三区| 亚洲熟妇无码AV| 亚洲国产免费综合| 一区二区三区精品高清视频免费在线播放 | 拍拍拍无挡视频免费观看1000| 免费福利在线观看| 香蕉成人免费看片视频app下载| 黄瓜视频影院在线观看免费| 亚洲啪啪免费视频| 免费在线视频你懂的| 国产裸模视频免费区无码| 亚洲AV电影院在线观看| 亚洲精品无码专区在线播放| 国产免费无码AV片在线观看不卡| 少妇太爽了在线观看免费视频 | 中文字幕无码免费久久99| 亚洲AV日韩精品一区二区三区| 免费乱理伦在线播放| 亚洲av再在线观看| 亚洲精品国产第1页| 国产VA免费精品高清在线| 麻豆最新国产剧情AV原创免费| 久久亚洲中文字幕精品一区| 国产日韩亚洲大尺度高清|