【原創】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關聯關係
- mybatis關聯關係對映MyBatis
- python 類關聯關係Python
- Hibernate 的關聯關係對映
- 8 張圖掌握 Laravel 的 Eloquent 關聯關係Laravel
- 兩個類的關係,應該如何關聯?
- Solr主要元件關係圖Solr元件
- 物件導向程式設計程式碼詳解(依賴關係,關聯關係,組合關係)物件程式設計
- 物聯網與APP的關係?APP
- Laravel Eloquent 的關係模型聯動Laravel模型
- CPA二十--關聯方關係的披露要求(轉載)
- 樹形或級聯關係
- ERP和其他管理軟體之間的邏輯關係(原創)
- SAP Spartacus 的 TMS 和 Event Service 實現的關聯關係
- 在Java中,以下有關類的關聯關係描述錯誤的是()Java
- Web Service和SOAP以及HTTP的關係? .WebHTTP
- CPA二十--關聯方關係的判斷標準(轉載)
- Mybatis 多表關聯查詢(1) one-to-one關係MyBatis
- spring cloud alibaba 元件版本關係 以及 畢業版本依賴關係SpringCloud元件
- 關於 Angular 部署以及 index.html 裡 base hRef 屬性的關聯關係AngularIndexHTML
- Hibernate 實體關聯關係對映—-總結薦
- 關於 Service Worker 和 Web 應用對應關係的討論Web
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- Flutter 吐血整理元件繼承關係圖Flutter元件繼承
- 物聯網與erp軟體的關係
- 設計模式存在哪些關聯關係,六種關係傻傻分不清--- UML圖示詳解設計模式
- JPA關係對映系列五:many-to-many 關聯表存在額外欄位關係對映
- SAP Business Technology Platform 上 Roles,Roles collection 和 Scopes 的關聯關係Platform
- 請教cmp關聯的問題,1:1,1:n多關係
- 敏捷開發領域裡的 Epic 以及和 User Story 的關聯關係敏捷
- 關於CMP的關係,求教...
- 海量文字中挖掘人物關聯關係核心技術介紹
- JPA關係對映系列四:many-to-many 關聯對映
- UML關係(泛化,實現,依賴,關聯(聚合,組合))
- 依據前後資料關聯關係,生成多行資料
- hibernate 關係對映之 主鍵關聯一對一