Java
TM
Portlet Specification
Version 1.0
Send comments about this document to: jsr-168-comments@jcp.org
5
10
October 7, 2003
Alejandro Abdelnur (alejandro.abdelnur@sun.com)15
Stefan Hepper (sthepper@de.ibm.com)
Java
TM
Portlet Specification, version 1.0 (10/07/2003) 2
Java(TM) Portlet Specification ("Specification") Version: 1.0
Status: FCS Specification Lead: Sun Microsystems, Inc.
("Specification Lead") Release: August 29, 2003
Copyright 2003 Sun Microsystems, Inc. All rights reserved.
NOTICE; LIMITED LICENSE GRANTS
5
Specification Lead hereby grants you a fully-paid, non-exclusive,
non-transferable, worldwide, limited license (without the right
to sublicense), under the Specification Lead's applicable
intellectual property rights to view, download, use and reproduce
the Specification only for the purpose of internal evaluation,
10
which shall be understood to include developing applications
intended to run on an implementation of the Specification
provided that such applications do not themselves implement any
portion(s) of the Specification.
Specification Lead also grants you a perpetual, non-exclusive,
15
worldwide, fully paid-up, royalty free, limited license (without
the right to sublicense) under any applicable copyrights or
patent rights it may have in the Specification to create and/or
distribute an Independent Implementation of the Specification
that: (i) fully implements the Spec(s) including all its required
20
interfaces and functionality; (ii) does not modify, subset,
superset or otherwise extend the Licensor Name Space, or include
any public or protected packages, classes, Java interfaces,
fields or methods within the Licensor Name Space other than those
required/authorized by the Specification or Specifications being
25
implemented; and (iii) passes the TCK (including satisfying the
requirements of the applicable TCK Users Guide) for such
Specification. The foregoing license is expressly conditioned on
your not acting outside its scope. No license is granted
hereunder for any other purpose.30
You need not include limitations (i)-(iii) from the previous
paragraph or any other particular "pass through" requirements in
any license You grant concerning the use of your Independent
Implementation or products derived from it. However, except with
respect to implementations of the Specification (and products
35
derived from them) that satisfy limitations (i)-(iii) from the
previous paragraph, You may neither: (a) grant or otherwise pass
through to your licensees any licenses under Specification Lead's
applicable intellectual property rights; nor (b) authorize your
licensees to make any claims concerning their implementation's
40
compliance with the Spec in question.
For the purposes of this Agreement: "Independent Implementation"
shall mean an implementation of the Specification that neither
derives from any of Specification Lead's source code or binary
code materials nor, except with an appropriate and separate
45
license from Specification Lead, includes any of Specification
Lead's source code or binary code materials; and "Licensor Name
Space" shall mean the public class or interface declarations
whose names begin with "java", "javax", "com.sun" or their
equivalents in any subsequent naming convention adopted by
50
Specification Lead through the Java Community Process, or any
recognized successors or replacements thereof.
Java
TM
Portlet Specification, version 1.0 (10/07/2003) 3
This Agreement will terminate immediately without notice from
Specification Lead if you fail to comply with any material
provision of or act outside the scope of the licenses granted
above.
TRADEMARKS
5
No right, title, or interest in or to any trademarks, service
marks, or trade names of Sun or Sun's licensors, the
Specification Lead or the Specification Lead's licensors is
granted hereunder. Sun, Sun Microsystems, the Sun logo, Java,
and the Java Coffee Cup logo are trademarks or registered
10
trademarks of Sun Microsystems, Inc. in the U.S. and other
countries.
DISCLAIMER OF WARRANTIES
THE SPECIFICATION IS PROVIDED "ASIS". Specification Lead MAKES
NO REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS OR IMPLIED,
15
INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, THAT THE
CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE OR
THAT ANY PRACTICE OR IMPLEMENTATION OF SUCH CONTENTS WILL NOT
INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADE SECRETS OR
20
OTHER RIGHTS. This document does not represent any commitment to
release or implement any portion of the Specification in any
product.
THE SPECIFICATION COULD INCLUDE TECHNICAL INACCURACIES OR
TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE
25
INFORMATION THEREIN; THESE CHANGES WILL BE INCORPORATED INTO NEW
VERSIONS OF THE SPECIFICATION, IF ANY. Specification Lead MAY
MAKE IMPROVEMENTS AND/OR CHANGES TO THE PRODUCT(S) AND/OR THE
PROGRAM(S) DESCRIBED IN THE SPECIFICATION AT ANY TIME. Any use
of such changes in the Specification will be governed by the
30
then-current license for the applicable version of the
Specification.
LIMITATION OF LIABILITY
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL
Specification Lead OR ITS LICENSORS BE LIABLE FOR ANY DAMAGES,
35
INCLUDING WITHOUT LIMITATION, LOST REVENUE, PROFITS OR DATA, OR
FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
LIABILITY, ARISING OUT OF OR RELATED TO ANY FURNISHING,
PRACTICING, MODIFYING OR ANY USE OF THE SPECIFICATION, EVEN IF
40
Specification Lead AND/OR ITS LICENSORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
You will indemnify, hold harmless, and defend Specification Lead
and its licensors from any claims arising or resulting from: (i)
your use of the Specification; (ii) the use or distribution of
45
your Java application, applet and/or clean room implementation;
and/or (iii) any claims that later versions or releases of any
Specification furnished to you are incompatible with the
Specification provided to you under this license.
RESTRICTED RIGHTS LEGEND
50
Java
TM
Portlet Specification, version 1.0 (10/07/2003) 4
U.S. Government: If this Specification is being acquired by or on
behalf of the U.S. Government or by a U.S. Government prime
contractor or subcontractor (at any tier), then the Government's
rights in the Specification and accompanying documentation shall
be only as set forth in this license; this is in accordance with
5
48 C.F.R. 227.7201 through 227.7202-4 (for Department of Defense
(DoD) acquisitions) and with 48 C.F.R. 2.101 and 12.212 (for non-
DoD acquisitions).
REPORT
You may wish to report any ambiguities, inconsistencies or
10
inaccuracies you may find in connection with your use of the
Specification ("Feedback"). To the extent that you provide
Specification Lead with any Feedback, you hereby: (i) agree that
such Feedback is provided on a non-proprietary and non-
confidential basis, and (ii) grant Specification Lead a
15
perpetual, non-exclusive, worldwide, fully paid-up, irrevocable
license, with the right to sublicense through multiple levels of
sublicensees, to incorporate, disclose, and use without
limitation the Feedback for any purpose related to the
Specification and future versions, implementations, and test
20
suites thereof.
(Form ID#011801)
Java
TM
Portlet Specification, version 1.0 (10/07/2003) 5
Contents
Java
TM
Portlet Specification................................................................................................1
PLT.1 Preface......................................................................................................................9
PLT.1.1 Additional Sources............................................................................................95
PLT.1.2 Who Should Read This Specification...............................................................9
PLT.1.3 API Reference.................................................................................................10
PLT.1.4 Other Java™ Platform Specifications.............................................................10
PLT.1.5 Other Important References............................................................................10
PLT.1.6 Terminology....................................................................................................1110
PLT.1.7 Providing Feedback.........................................................................................11
PLT.1.8 Acknowledgements.........................................................................................11
PLT.2 Overview................................................................................................................13
PLT.2.1 What is a Portal? .............................................................................................13
PLT.2.2 What is a Portlet?............................................................................................1315
PLT.2.3 What is a Portlet Container? ...........................................................................13
PLT.2.4 An Example.....................................................................................................14
PLT.2.5 Relationship with Java 2 Platform, Enterprise Edition...................................14
PLT.3 Relationship with the Servlet Specification...........................................................15
PLT.3.1 Bridging from Portlets to Servlets/JSPs..........................................................1620
PLT.3.2 Relationship Between the Servlet Container and the Portlet Container .........17
PLT.4 Concepts.................................................................................................................19
PLT.4.1 Elements of a Portal Page ...............................................................................19
PLT.4.2 Portal Page Creation........................................................................................20
PLT.4.3 Portal Page Request Sequence........................................................................2025
PLT.5 The Portlet Interface...............................................................................................21
PLT.5.1 Number of Portlet Instances............................................................................21
PLT.5.2 Portlet Life Cycle............................................................................................21
PLT.5.2.1 Loading and Instantiation.........................................................................22
PLT.5.2.2 Initialization .............................................................................................2230
PLT.5.2.3 Portlet Window ........................................................................................23
PLT.5.2.4 Request Handling.....................................................................................24
PLT.5.2.5 End of Service..........................................................................................28
PLT.6 Portlet Config.........................................................................................................29
PLT.6.1 Initialization Parameters .................................................................................2935
PLT.6.2 Portlet Resource Bundle..................................................................................29
PLT.7 Portlet URLs...........................................................................................................31
PLT.7.1 PortletURL......................................................................................................31
PLT.7.1.1 Including a Portlet Mode or a Window State...........................................32
PLT.7.1.2 Portlet URL security.................................................................................3340