Đặc trưng của Portlet mà không có ở servlet

Một phần của tài liệu Xây dựng CMS MODULE cho hệ thống INTRANET của công ty TMa (Trang 67 - 73)

• Portletchophéptruycậpvàlưutrữcầuhìnhvàtốiưuhoádữliệu. • Portletchophéptruycậpvàocácthôngtinvềngườisửdụng.

• Portlet hỗ trợ chức năng viết lại URL ( URL Rewriting Function ) cho phéptạoraliênkếttrongnộidungcủanó.

• Portletcóthể lưutrữdữliệu tạothờitrongphiênlàm việccủaPortletở2 phạmvi:PhạmviứngdụngvàPhạmvicánhân.

4. Giao diện portlet

Giao diện Portlet khai báo các API cơ bản nhất của một Portlet. Mọi Portlet đượcxâydựngđềuphảihiệnthựchoátrựctiếphoặcgiántiếpgiaodiệnPortlet.

Lớp GenericPortlet hiệnthựchoágiao diệnPortletvà địnhnghĩacác chứcnăng cơ bản nhấtmà mộtPortlet cầncó. Do đó,khixây dựngPortlet, lậptrình viênnên mở rộngtrựctiếphoặcgiántiếplớpGenericPorletnày.

MộtPortletđược quảnlýthôngquachutrìnhsống củanó,bắtđầutừlúcPortlet được tảilên, tạo thểhiệncủa nóvà khởitạo,hoạt độngđể phảnhồiyêu cầucủangười sử dụng đến lúc nó được loại bỏ. Các phương thức được gọi đến trong chu trìnhsống củaPortletlà:

• GọiphươngthứcinittrongquátrìnhkhởitạocủaPortlet

• Nếu yêu cầu do máy khách gởi tới là yêu cầu hành động (Action Request) thì phương thức processAction được gọi. Nếu yêu cầu do máy khách gởi tới là yêu cầu biểu hiện (Render Request) thì phương thức processActionđượcgọi.

BùiVĩnhPhú 47 ĐặngĐình Vương

PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA

• KhiPortletContainerxácđịnhmộtPortletkhôngcònsửdụngnữathìgọi đến phương thức destroy của Portlet đó. Khi phương thức destroy được gọi thì Portlet sẽgiải phóng tài nguyênhệ thống mà nóđang sửdụng và lưulạitrạngtháihiệnthờicủanó.

5. Portlet URL

MộtPortletcóthểtạoraURLthamchiếuđếnchínhPortletđó.KhiđócácURL nàyđượcgọilàPortletURL.

Để tạo ra một Portlet URL thì Porlet cần phải sử dụng đối tượng PorletURL. Nếu phương thứccreateActionURLđược gọi thìsẽ tạo ramột URLhành độngvà nếu phươngthứccreateRenderURLđượcgọithìtạoramộtURLtrìnhdiễn.

6. Portlet Mode

KiểuPortlet xácđịnh chứcnăngmàPortlet hiệnđang thựchiện.Thôngthường, Portlet thựchiện cáctácvụvàtạo ranộidungtùythuộcvàochứcnăng hiệnthời.Kiểu Portlet cho biết những tác vụ nào một Portlet cần thực hiện và những nội dung nào Portletcầnphảitạora.

Có3kiểuPortletđượcquyđịnhlà: • VIEW

Chức năng chính của Portlet khi sử dụng kiểu VIEW là tạo ra nội dungchobiếttrạngtháicủaPortlet

Lập trình viên sẽ hiện thực hóa kiểu VIEW bằng cách định nghĩa lại phươngthứcdoViewcủalớp GenericPortlet.

Bùi Vĩnh Phú 48 Đặng Đình Vương

PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA

MọiPortletđềuphảihỗtrợkiểuVIEW • EDIT

Trong kiểu EDIT, một Portlet sẽ cung cấp nội dung và cấu hình các thành phần của nóđể người sử dụng cóthể tối ưu hóahọat động của Portlet

Lập trình viên sẽ hiện thực hóa kiểu EDIT bằng cách định nghĩa lại phươngthứcdoEditcủalớp GenericPortlet.

MọiPortletkhôngnhấtthiếtphảihỗtrợ kiểuVIEW • HELP

Trong kiểuHELP, Portletcungcấpnhữngthôngtin giúpđỡ ngườisử dụngvề Portlet.Nhữngthôngtin nàycóthểlànhữngthông tinchung về toàn bộ Portlet hoặc là các giúp đỡ cảm ngữ cảnh (Context -

sensitivehelp)

Các hằng số tượng trưng cho 3 kiểu Portlet được khai báo trong lớp PortletMode

7. Window State

Trạng thái cửa sổ cho biết khoảng không gian trên trang Web Portal dành cho nộidungcủaPortlet. (adsbygoogle = window.adsbygoogle || []).push({});

Có3trạngtháicửasổđượcđịnhnghĩa:

• NORMAL: cho biết Porlet có thể chia sẻ trang Portal với các Portlet khác. Ngoài ra, trạng thái này còn cho biết giới hạn hiển thị của thiết bị dođóPortletsẽđiềuchỉnhkíchthướcphùhợp vớivùnghiểnthị.

Bùi Vĩnh Phú 49 Đặng Đình Vương

PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA

• MAXIMIZED: chobiết chỉcó mộtPortlet hiểnthịtrên trangPortal hoặc Portletđượcưutiênhiểnthịnộidungnhiềuhơn cácPortletcònlại. • MINIMIZED: Chobiết nội dungcủa Portletchỉ được hiểnthị ít nhấtcó

thểđượchoặckhôngđượchiểnthị.

CáctrạngtháicửasổđượcđịnhtronglớpWindowState.

8. Portlet Request

Một yêu cầu gởiđến Portlet chứacác thông tin về yêu cầu từ phía máy khách, cácthamsốcủayêucầu,nộidungdữliệuyêucầu,kiểuPortlet, trạngtháicửasổ…

Yêucầuđược đạidiệnbởimộtđốitượng vàđốitượngnàyđượctruyền vàonhư làđốisốcủaphươngthứcprocessActionhayrender.

Mỗiđốitượng yêucầuchỉcóthểhọatđộngtrongphạmvicủamộtphươngthức processActionhayrender

Các chứcnăng cầnthiết củađối tượng PortletRequestđược khaibáo trong giao diệnPortletRequest.

9. Portlet Response

Một phản hồi của Portlet bao gồm những thông tin được tạo ra bởi Portlet gởi trả về cho Portlet Container dựa trên yêu cầu được gởi đến như: sự thay đổi kiểu Portlet, tiêuđề,nội dung…Portlet Containersẽsử dụngnhữngthông tinnàyđể tạora phảnhồiđếnngườisửdụng,thôngthườnglàmộttrangWebPortal.

Bùi Vĩnh Phú 50 Đặng Đình Vương

PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA

Mỗi đối tượng phản hồi chỉ có thể họat động trong phạm vi của một phương thứcprocessActionhayrender

Các chức năng cần thiết của đối tượng Portlet Response được khai báo trong giaodiệnPortletResponse.

10. Portlet Preferences

Portlet thông thường được cấu hình cho phù hợp với từng người sử dụng.Các thông tin về cấu hình của Portlet được gọi là Portlet Preference. Và Portlet Container sẽchịutráchnhiệmlưugiữnhữngthôngtincấuhìnhnày.

Portlet có thể truy cập vào các thông tin cấu hình của nó thông qua giao diện PortletPreferences. Và Portletchỉ cóthể thayđổi các thôngtin vềcấu hìnhcủa nó bên trongphươngthứcprocessAction.

Định nghĩa Portlet xác định các thuộc tính preference mà một Portlet sử dụng. Định nghĩanàybaogồm cácgiátrị khởitạo vàxácđịnh xemthuộctínhnàycó phảilà thuộctínhchỉđọchaykhông.

11. Caching

Việclưucác nộidungcầnsửdụngvào vùngnhớtạmthờiđượcthựchiệnnhằm mục đích rútngắn thời gianxử lý củaPortlet, đồng thờicũng rútngắn thờigian xử lý củaServer.

Cơ chế này họat động tùy thuộc và từng Portlet và từng người sử dụng Portlet. Nội

BùiVĩnhPhú 51 ĐặngĐình

Vương

PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA

dungđượclưutrữtạmthờikhôngđượcchiasẻgiữacácngườisửdụngkhácnhauđang sửdụngđồngthờicùngmộtPortlet.

Một Portlet muốn tăng thời gian xử lý bằng cách sử dụng cơ chế lưu trữ tạm thời nội dung cần phải định nghĩa thời gian hết hạn nội dung lưu tạm thời(tính bằng đơn vịgiây)trongđặctảtriểnkhaicủanó.VídụsauđâychobiếtmộtPortletmuốnnội dungcủanóđượclưutrữtạmthờivớithờigianhếthạnlà300giây. (adsbygoogle = window.adsbygoogle || []).push({});

... <portlet> ... <expiration-cache>300</expiration-cache> ... </portlet> ...

Một Portlet nếuđã định nghĩa thờigian hết hạnlưu trữ dữliệu tạm thờicủa nó trongđặctảtriểnkhaicủanóvẫncóthểđượclậptrìnhviênthayđổi

Thờigian hếthạn củaviệc lưutrữ tạmthời nàycó thểđược thay đổibằng cách thayđổithuộctínhcủađốitượngRenderResponse.

Nếu thời gian hết hạn này được gán bằng 0 thì việc lưu trữ dữ liệu tạm thờibị bỏqua đốivớiPortlet. Nếugiátrị nàyđượcgán bằng-1thìcácnội dungđượclưutạm thờicủaPortletsẽkhôngbaogiờbịhếthạn.

Bùi Vĩnh Phú 52 Đặng Đình Vương

PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA

Nếu mộtPortletkhôngđịnh nghĩathờigianhếthạn củadữliệu lưutrữ tạmthời trong đặc tả triển khai của nó thì việc thay đổi giá trị thời gian này trong đối tượng RenderResponsesẽkhôngcótácdụngdosẽbịPortletContainerbỏqua.

Nếu nội dung của Portlet được lưu trữ tạm thời và chưa hết hạn, đồng thời khôngcómộtyêucầunàođếnPortlettừphíangườisửdụngthìPortletContainersẽsử dụngnộidungđượclưutrữtạmthờikhicầnthiết.

NếunộidungcủaPortletđượclưutrữtạmthờivàcóyêucầuđếnPortlettừphía người sửdụng thì Portlet Container sẽ không sử dụng nội dung tạm thờiđược lưu trữ màsẽgọiđếnphươngthứcxửlýyêucầucủaPortlet

12. Ứng dụng Portlet

Một phần của tài liệu Xây dựng CMS MODULE cho hệ thống INTRANET của công ty TMa (Trang 67 - 73)