File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Portals and Portlets and the fly likes Http Session and PortletSession? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Portals and Portlets
Bookmark "Http Session and PortletSession?" Watch "Http Session and PortletSession?" New topic

Http Session and PortletSession?

Romi Dave

Joined: Jul 19, 2006
Posts: 26
Whats the difference between Http Session and PortletSession? How are they related or how they are different and what is the scope of each? Can someone please guide me to some documentation or please explain me.

Thanks in advance
Mark Spritzler

Joined: Feb 05, 2001
Posts: 17276

The best document to explain this is the JSR SPec. WHich we have a link at the top of this forum.


Perfect World Programming, LLC - iOS Apps
How to Ask Questions the Smart Way FAQ
Dhananjay Inamdar
Ranch Hand

Joined: Jan 27, 2003
Posts: 130

When the user initially accesses a portlet, a PortletSession is created. The portlet
session stores transient data associated with an individual use of the portlet.

The PortletSession object extends from HttpSession and serves much the same
purpose. The PortletSession is intended to represent an ongoing conversation between the client and the portlet. To this end, the PortletSession can be used to store information needed between requests. The PortletSession is intended to store data between requests, not between portlets. As such, data stored in the session by one portlet is not accessible by another. The PortletSession is retrieved from the request object.


Just like you, struggeling to get the right solutions!<br /> <br />Sun Certified Java Programmer 1.5<br /> <br />Target - SCWCD
Romi Dave

Joined: Jul 19, 2006
Posts: 26
This has created few more doubts in my mind. Can there be multiple PortletSessions for a HttpSession? In my application on the home page I have different portlets each can be accessed by the link so when is the particular portletsession created?

Dhananjay Inamdar
Ranch Hand

Joined: Jan 27, 2003
Posts: 130
Hi Romi,

You are correct....every Portlet has it's own PortletSession.
As Portlet is a self-containted, reusable web-application, and has it's own saperate PortletSession. This session is not sharable across 2 portlets on the same page.

Romi Dave

Joined: Jul 19, 2006
Posts: 26

Well now to ask you more, In my application I have a home page which is a portlet and it has a common template which has links to the other portlets. Now when I start the application I first get to see Home page and a Session is created. So is this session Like a Parent portlet and any other portlet that i access are the child of it or within the main portlet? When i try to get the session id i always get the same session id irrespective of which portlet i am in. Can you please explain.

Cameron Wallace McKenzie
author and cow tipper
Saloon Keeper

Joined: Aug 26, 2006
Posts: 4968

Well, on this topic, you've got to realize that the PortletSession is just piggybacking on the HttpSession. Sure, one Portlet can't see another Portlet's PortletSession data, but if you go into a JSP, grab the HttpSession from the page, not the PortletSession, but the HttpSession (you can do it, after all, it is a JSP page), you'll find all of the various PorletSession data objects stuffed inside the HttpSession...The only difference is the Portal has given all teh PortletSession data objects crazy namespace names so that one portlet can't see another portlets session data. Do you think the application server is creating new database rows for every PortletSession though? Not a chance...That'd be way too wasteful.
Bill attagasam

Joined: Jun 25, 2008
Posts: 5

I am trying to get the session value from oracle portlet to servlet and I am getting null value

I am able to set the session value and get it back in same jsp but it's not reachable from servlet

I already went thur the oracle doc and did what it says but still it's not working for me

can someone please help me out.

Dipankar KumarGhosal

Joined: Nov 25, 2008
Posts: 9
Well both Portlets and Servlets are loaded using the same classloader.So it's a plain fact that session can be made available in both the contexts.

As far as the portlets are concerned,
The PortletSession is namespaced :
1) PORTLET_SCOPE : Only available to the particular portlet.
2) APPLICATION_SCOPE: Available to all Portlets and also available in Servlets/JSP etc

So, if you really want to share sessions among Servlets and Portlets...
1) Define the scope of the session attributes as APPLICATION_SCOPE in Portlets....
2) Access the session attributes defined or set in servlets by specifying APPLICATION_SCOPE.. else you will get null.

As far as retrieving the PortletSession from HttpRequest is concerned.. You can get them via the APIs available..
For JSR168 Struts Portlets we have WpsStrutsUtil package that will return you the PortletSession...

Hope this makes something clear...
Balan Raj
Ranch Hand

Joined: Aug 26, 2003
Posts: 74
The PortletSession object extends from HttpSession and serves much the same

The portlet session does NOT extend the HttpSession in all Portlet containers. The JSR specs do not require the PortletSession to be extended from HttpSession.

Some containers (WebSphere) implemented it this way, but this need not be true for others (Jboss)
I agree. Here's the link:
subject: Http Session and PortletSession?
It's not a secret anymore!