Hi,

Thanks guys for looking into this.

All requests to my app pass through a single servlet, say *Main*. So, I
thought I need not to add additional filter and I used a ThreadLocal
variable to store session id :

public static final ThreadLocal<String> sessionID = new
ThreadLocal<String>();

And for every request I am doing

if(*Main*.sessionID.get() == null)

*Main*.sessionID.set(req.getSession().getId());

But it doesn't seem to work. According to my understanding
*Main*.sessionID.get()
should be null each new session (or each new request, I am not sure here).
Did I get something wrong?


2010/1/9 A1programmer <[email protected]>

> You probably want to architect the classes in such a way that they are
> not tightly coupled to the http servlet session.
>
> Anyway, when you were working with ThreadLocal earlier, did you first
> set the ServletRequest from the filter?
>
> class UserService {
>    private UserDAO userDAO;
>
>   public Collection <Item> getItemsForUser(User user){
>      return userDao.getItemsForUser(user);
>   }
>
> }
>
>
> class UserDAO {
>
>   public Collection<Item> getItemsForUser(User user) {
>
>       Long userId = user.getId();
>       String userName = user.getUserName();
>
>       // query the database based on user information
>
>   }
>
> }
>
> On Jan 9, 3:53 am, Prashant Gupta <[email protected]> wrote:
> > I tried following code, getting null all the time.
> >
> > public static HttpSession getSession(){
> > return new ThreadLocal<HttpServletRequest>().get().getSession();
> >
> > }
> >
> > 2010/1/9 Elias Mårtenson <[email protected]>
> >
> >
> >
> > > On 9 Jan, 01:27, Prashant Gupta <[email protected]> wrote:
> >
> > > > I am trying to implement my own user management system, for that I
> need
> > > some
> > > > way to make session id available to all classes independent of
> whether it
> > > > extends HttpServlet or not. I know there is some way to do that but I
> am
> > > not
> > > > able to find it. Any kind of help would be appreciated.
> >
> > > One way to do it is to use a servlet filter to make the user
> > > information available through a ThreadLocal instance. That way you can
> > > have a single static method that returns the user wherever you are.
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Google App Engine for Java" group.
> > > To post to this group, send email to
> > > [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-appengine-java%[email protected]><google-appengine-java%2B
> [email protected]>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-appengine-java?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine-java%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>
>
>
--
You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to