Threads do not end when they finished serving a request. Instead they will
catch up another request in the queue and serve it.
So basically at the end of your service method of your servlet you should
explicitly set the value of your ThreadLocal to null, prefferably in a
finally block.


2010/1/14 Prashant Gupta <[email protected]>

> anyone???
>
> 2010/1/12 Prashant Gupta <[email protected]>
>
> 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]<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