Serving Resources notes

The portlet can create resource URLs pointing back to itself via the createResourceURL method on the PortletResponse. When an end user invokes such a resource URL the portlet container must call the serveResource method of the portlet or return a valid cached result for this resource URL

Resource URLs should be provided with the current portlet mode, window state, and render parameters that the portlet can access via the ResourceRequest with getPortletMode, getWindowState, or one of the getParameter methods.

ResourceURLs cannot change the current portlet mode, window state or render parameters. Parameters set on a resource URL are not render parameters but parameters for serving this resource and will last only for the current serveResource request. If a parameter is set that has the same name as a render parameter that this resource URL contains, the render parameter values must be the last entries in the parameter value array