aspose file tools*
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


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Portals and Portlets
Bookmark "Http Session and PortletSession?" Watch "Http Session and PortletSession?" New topic
Author

Http Session and PortletSession?

Romi Dave
Greenhorn

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
ranger
Sheriff

Joined: Feb 05, 2001
Posts: 17257
    
    6

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

Mark


Perfect World Programming, LLC - Two Laptop Bag - Tube Organizer
How to Ask Questions the Smart Way FAQ
Dhananjay Inamdar
Ranch Hand

Joined: Jan 27, 2003
Posts: 130
Hi

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.

Thanks
Dhananjay


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

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?

Thanks
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.

Thanks
Dhananjay
Romi Dave
Greenhorn

Joined: Jul 19, 2006
Posts: 26
Hi,

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.

Thanks,
Cameron Wallace McKenzie
author and cow tipper
Saloon Keeper

Joined: Aug 26, 2006
Posts: 4968
    
    1

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
Greenhorn

Joined: Jun 25, 2008
Posts: 5
HI

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.



thanks
Dipankar KumarGhosal
Greenhorn

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
purpose.


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: http://aspose.com/file-tools
 
subject: Http Session and PortletSession?