In this case listener and filter do essentially the same thing, only
using different hooks provided by servlet container. In fact we are
planning to cut down on this redundancy, keeping the filter and
deprecating the listener:
http://objectstyle.org/cayenne/lists/cayenne-devel/2006/04/0001.html
Andrus
On Apr 5, 2006, at 2:41 AM, Cypher ! wrote:
Or is this a better method, using the Listener in Servlet 2.4
rather than the filter in Servlet 2.3
<listener>
<listener-
class>org.objectstyle.cayenne.conf.WebApplicationContextProvider</
listener-class>
</listener>
Sample DataContext retrieval code:
import org.objectstyle.cayenne.access.DataContext;
...
// get session DataContext bound to the current request thread
DataContext context = DataContext.getThreadDataContext();
What are the advantages.
From: "Cypher her" <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
Subject: RE: accessing cayenne sessions
Date: Tue, 04 Apr 2006 22:36:53 +0000
Hi
I am using Tapestry 4, Java 1.5, JBoss 4 and Cayenne 1.2.
So if I undrstand you correctly I can create a subclass of BasePage
which will have a getSession() method. But in that page, to get the
session I would need to use the WebApplicationContextFilter and do
something like
add his to my web.xml
<filter>
<filter-name>CayenneFilter</filter-name>
<filter-
class>org.objectstyle.cayenne.conf.WebApplicationContextFilter</
filter-class>
</filter>
...
<filter-mapping>
<filter-name>CayenneFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
and create a class like this
import org.objectstyle.cayenne.access.DataContext;
public class MyBasePage extends BasePage
{
public DataContext getDataContext()
{
return DataContext.getThreadDataContext();
}
}
and all of my pages should subclass MyBasePage. And I am assuming
Tapestry and the servlet container will take care of making sure
the Session is consistent throughout the workflow i.e. each user
gets a unique DataContext and they maintain the same DataContext
from page to page until the session times out..
Thanks again for your help.
Lawrence
From: "Gentry, Michael (Contractor)" <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: <[email protected]>
Subject: RE: accessing cayenne sessions
Date: Tue, 4 Apr 2006 10:45:29 -0400
Yes, but using Tapestry you can have a common superclass for your
pages
that provides a getSession() method and it works transparently. You
don't need to think about Http*.
/dev/mrg
-----Original Message-----
From: Mike Kienenberger [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 04, 2006 10:26 AM
To: [email protected]
Subject: Re: accessing cayenne sessions
On 4/4/06, Cyp her <[EMAIL PROTECTED]> wrote:
> * Are there any convenient methods for accessing the Session like in
> WebObjects where there is a session class in the application?
In servlets, there's an HttpSession object that you can pull out of
the HttpServletRequest. Instead of being a subclassable object, it
instead holds references to a Map (think NSDictionary) where you can
store objects the entire session. How you get a reference to your
HttpSession object depends on the framework.
http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/http/
Http
Session.html
_________________________________________________________________
Be the first to hear what's new at MSN - sign up to our free
newsletters! http://www.msn.co.uk/newsletters
_________________________________________________________________
The new MSN Search Toolbar now includes Desktop search! http://
join.msn.com/toolbar/overview