1 / 80

Java Portlets (JSR-168)

Java Portlets (JSR-168). SSE USTC Qing Ding. Agenda. Java Portlet (JSR 168) WSRP Products (only a few slides) Sun Java Enterprise Systeem Portal Server, Portlet Builder. What is a Portlet?. What is a Portlet?. Java technology based web component Managed by a portal container

todd
Download Presentation

Java Portlets (JSR-168)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Portlets(JSR-168) SSE USTC Qing Ding

  2. Agenda • Java Portlet (JSR 168) • WSRP • Products (only a few slides) • Sun Java Enterprise Systeem Portal Server, Portlet Builder

  3. What is a Portlet?

  4. What is a Portlet? • Java technology based web component • Managed by a portal container • Generates a piece of markup called “fragment” • Adheres to certain rules such as no <html> tags, for instance • Fragment generated by a Portlet aggregates with that from other Portlets to form a portal page • Fragment generated by a Portlet may vary from one user to another depending on the user configuration

  5. What does JSR-168 define? • Portlet API • Portlet Requests • Preferences • User information • Security • Deployment packaging • Portlet Container • Extension of servlet container • Contract between component and container

  6. What are out-scope of JSR 168? • Aggregation • Layout management • Page personalization and configuration engines • Portal administration and configuration

  7. Default Desktop

  8. Portal/Portlet Architecture

  9. Portal and Portlet Interaction

  10. Why Portlet? (Why can't we use Servlet?)

  11. Why Portlets? • Servlet architecture does not define the Desktop metaphor where markup aggregation can occur • Servlet architecture does not define the possible states and transitions of an included Servlet or JSP • Servlet architecture does not define how the state of one Servlet or JSP affects the display of the other included Servlets or JSPs

  12. Why Portlets? • Servlet architecture does not define a personalization interface nor the idea of persisting the personalization information • Servlet architecture does not define URLrewriting functions to allow the creation of links and actions targeted to a specific form within the fragment of a page (Portlet markup fragment) • Servlet architecture does not support caching scheme of fragments

  13. Portlet Architecture

  14. Portal ArchitectureWith JSR 168 Support

  15. Portal • A “specialized” web application that provides value-added services such as • Personalization • Single Sign-On • Content aggregation from various sources • Secure search facilities • Localization of content • A Portal “page” represents a complete markup document consisting of several Portlet components

  16. Portlet Container • Portlets are deployed in a Portlet container such that container can • Provides runtime environment for Portlets • Manage life cycle of Portlets • Provide persistent storage for storing Portlet preferences • Cache the portlets • Receive requests from the portal to execute requests on the portlet • Not responsible for contents aggregation

  17. Portlet vs. Servlet (Portlet is built over Servlet Architecture)

  18. Similarity with Servlet • Both are Java technology based web components • Life-cycle is managed by a specialized container • Servlet by servlet container • Portlet by portlet container • Both generate dynamic content • Both interact with web client via a request/response paradigm

  19. Deployment model • Classloading • Packaging and deployment • Lifecycle management • Session management • Request dispatching

  20. Differences from Servlet • Portlets only generatemarkup fragments, not complete documents • Portlets are not directly bound to a URL • Web clients interact with portlets through a portal system • Portlets have a more refined request handling • action requests and render requests • Portlets have predefined states • portlet modes and window states • Portlets can exist many times in a portal page

  21. Extra Features of Portlets • Portlets have means for accessing and storing persistent configuration and customization data • Portlets have access to user profile information • Portlets have URL rewriting functions for creating hyperlinks within their content • allow portal server agnostic creation of links and actions in page fragments • Portlets can store transient data in the portlet session in two different scopes • application-wide scope • the portlet private scope

  22. Servlet Features Forbidden to Portlets • Setting the character set encoding of the response • Setting HTTP headers on the response • The URL of the client request to the portal

  23. Servlet Features that are leveraged by Portlets • Portlets can leverage servlets, JSPs and JSP tag-libraries for generating content • Content should be markup fragment • A portlet can call servlets and JSPs using a request dispatcher

  24. Integration between the two • Attributes set in the portlet request are available in the included servlet request • Attributes set in the portlet session are accessible from the servlet session and vice versa • Portlet and the included servlet or JSP share the same output stream

  25. Portlet and Web App. Frameworks

  26. Struts/JSF are built over Servlets • Struts/JSF can be built over Portlets • APIs exposed to Struts/JSF developers should remain the same • Struts/JSF developers must be aware of the markup fragment he has to produce • The markup fragment must follow the rules • Generate Portlet URL

  27. Exo Portal Build on JSF, Struts

  28. Portlet Modes & Windows State

  29. Portlet Modes • Indicates function that a portlet performs • Execute different tasks and generate different content based on the function they perform • Portals must support three modes • VIEW • Portlet renders markup fragment in this mode • EDIT • Used to change per-user settings to customize rendering • HELP • Used to display help information

  30. Portlet Modes (Contd.) • Portals might support other custom modes • ABOUT • CONFIG • EDIT_DEFAULTS • PREVIEW • PRINT • Portals might support other vendor specific modes

  31. Windows State • Is an indicator of the amount of portal page space that will be assigned to the content generated by a portlet • Provided by portlet container • Three states • NORMAL • MAXIMIZED • MINIMIZED • Custom states are possible

  32. Portlet Features

  33. Portlet Persistence • Portlets can store persistent data for a given user in a PortletPreferences object • Preferences are read-write in the action phase (processAction()) and read-only in render phase • Usually user preferences are modified in EDIT mode

  34. User Profile Attributes • Can store information about user that can be used to personalize content for that user • User profile information is represented as a USER_INFO structure which is then mapped to the real information in datastore • Portlet defines the attributes it wants to access in the deployment descriptor

  35. Portal context • Can provide information on • Portal vendor • Version • Used by portlets to find out more information about additional extensions supported by Portal

  36. Security • Authentication is left to the underlying servlet container • Authorization • Follows J2EE ‘roles’ model • Supports programmatic role checking

  37. Session Management • Facade on top of the HttpSession • Two scopes: APPLICATION & PORTLET • PORTLET is a convenience namespacing • It’s common for portlets to appear more than once in a page (i.e.: EU-News, US-News) • Servlets, JSPs and Portlets within a Portlet Application share the same session • Session creation event notification is supported

  38. Portlet Request Dispatcher • Portlets can include Servlets, JSPs and static content during a render request • Similar to Servlet’s RequestDispatcher

  39. Localization • Portlets can be localized by using resource bundles • Resource bundles are specified in deployment descriptor • Portlet can access resource bundle via PortletContext.getResourceBundle() API

  40. Caching • Expiration based caching • Declarative caching • Specify <expiration-cache> element in deployment descriptor for the portlet • Programmatic caching • Modify EXPIRATION_CACHE property of render response

  41. Portlet URL • Portlets are always accessed through a Portal • Portlets do not have a direct URL mapping • Portlet URLs allow Portlets to create URLs that target to themselves (through the Portal end-point)

  42. Portlet API's

  43. Portlet Life Cycle

  44. GenericPortlet class • Implements Portlet interface • Render()--like service() in servlets, calls specified render methods based on Portlet mode • doView() for View mode • doEdit() for Edit mode • doHelp() for Help mode • Is extended by portlet developers • Override render methods as necessary

  45. DoView()

  46. DoEdit()

  47. ProcessAction()

  48. Other Interfaces/Classes • PortletConfig, PortletContext, PortalContext,PortletSession • PortletPreferences interface • WindowState (MINIMIZED, NORMAL & MAXIMIZED) • PortletMode (VIEW, EDIT & HELP) • PortletURL • PortletRequestDispatcher • Portlet Tag Library

More Related