【原創】WEB元件的關聯關係
J2EE 平臺為特定URL的 Web元件提供三種相互關聯,分別是請求轉發、URL重定向和包含,這幾種關聯關係之間是有區別的。本節將討論如何使用Java Servlet API來實現請求轉發、URL重定向和包含。
一、請求轉發
請求轉發允許元件傳送請求到某個應用程式中的URL,並通過同一應用程式中的不同URL中的元件來處理該請求,它檢查Web請求中的資料,並將請求定向到合適的元件,以便進行處理。
Servlet可以使用javax.servlet.RequestDispatcher.forward()方法來轉發它所收到的HTTP 請求。接收轉發請求的元件能夠處理該請求並生成一個響應, 或者它還可以將請求轉發到另一個元件。 最初請求的ServletRequest 和 ServletResponse 物件被傳遞給轉發目標元件,通過這種方式,目標元件可以訪問整個請求上下文。
如果Servlet要把請求轉發給同一WEB應用元件,可以使用下面兩行程式碼:
//獲得RequestDispatcher物件
RequestDispatcher requestDispatcher = request.getRequestDispatcher(url);
//把請求轉發到url指定的WEB元件
requestDispatcher.forward(request, reponse);
request和reponse分別為ServletRequest 和 ServletResponse 物件。
在JSP頁面中,可以使用
對於請求轉發,轉發的源元件和目標元件共享request(即一次請求)範圍內的共享資料。
二、URL重定向
URL 重定向類似於請求轉發, 但也有一些重要的區別,Web元件可以將請求重定向到任一URL, 而不僅僅是同一應用上下文中的URL。另外,重定向的源元件和目標元件之間不共用同一個Request物件,因此不能共享request範圍內的共享資料。
URL 重定向可以通過方法javax.servlet.ServletResponse.sendRedirect()完成,這個方法的唯一引數就是重定向的目標URL ,例如:
response. sendRedirect(url);
提示: URL重定向相當於客戶端重新傳送了一次Http請求。同一WEB應用也可以用重定向,但WEB元件之間不能共用上下文資訊,而且重定向的效率會比較低。
三、包含
包含關係允許一個Web元件聚集來自同一個應用中其他的Web元件輸出資料,並使用被聚集的資料來建立響應結果。在Servlet中可以使用RequestDispatcher.include()方法包含其它的Web元件。
在Servlet中可以寫成RequestDispatcher rd=request.getRequestDispatcher(url)來獲取一個包含物件,然後呼叫rd.include(request,response)包含。
在JSP中使用標籤,例如來包含一個檔案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13081368/viewspace-440423/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 表的關聯關係
- Hibernate 的關聯關係對映
- python 類關聯關係Python
- mybatis關聯關係對映MyBatis
- vue的元件巢狀關係Vue元件巢狀
- 8 張圖掌握 Laravel 的 Eloquent 關聯關係Laravel
- 物件導向程式設計程式碼詳解(依賴關係,關聯關係,組合關係)物件程式設計
- 物聯網與APP的關係?APP
- spring cloud alibaba 元件版本關係 以及 畢業版本依賴關係SpringCloud元件
- SAP Spartacus 的 TMS 和 Event Service 實現的關聯關係
- 在Java中,以下有關類的關聯關係描述錯誤的是()Java
- WPF 控制元件類派生關係控制元件
- spring-cloud-alibaba 元件版本關係SpringCloud元件
- 關於 Service Worker 和 Web 應用對應關係的討論Web
- 物聯網與erp軟體的關係
- 關於 Angular 部署以及 index.html 裡 base hRef 屬性的關聯關係AngularIndexHTML
- RXJS元件間超越父子關係的相互通訊JS元件
- Web3和元宇宙之間的關係Web元宇宙
- Flutter 吐血整理元件繼承關係圖Flutter元件繼承
- Intelligent Enterprise 和企業數字化轉型的關聯關係Intel
- SAP Business Technology Platform 上 Roles,Roles collection 和 Scopes 的關聯關係Platform
- 設計模式存在哪些關聯關係,六種關係傻傻分不清--- UML圖示詳解設計模式
- JPA關係對映系列五:many-to-many 關聯表存在額外欄位關係對映
- 敏捷開發領域裡的 Epic 以及和 User Story 的關聯關係敏捷
- SAP WM 通過2-Step Picking建立的TO之間的關聯關係
- 好程式設計師web前端分享SDK與API之間的關係和聯絡程式設計師Web前端API
- 海量文字中挖掘人物關聯關係核心技術介紹
- JPA關係對映系列四:many-to-many 關聯對映
- 【集合論】二元關係 ( 二元關係記法 | A 到 B 的二元關係 | 二元關係個數 | 二元關係示例 )
- 資料關係比較:相關性 vs 因果關係
- UnityInspector給元件自動關聯引用Unity元件
- Web Sql 關聯式資料庫WebSQL資料庫
- vue父子關係元件間的雙向資料繫結Vue元件
- SAP HUM 將HU與檢驗批號碼解除關聯關係
- [原創]請問需求捕獲、需求分析、系統分析之間的關係是怎樣的?
- Flutter深入淺出元件篇---繼承關係圖Flutter元件繼承
- 在 CSDN 上面看到的一篇關於 Laravel 關聯表模型和多對多關係的文章Laravel模型
- Laravel 不在模型中定義關聯關係的解決方法(拒絕背鍋)Laravel模型
- 102422關係