Re: [appengine-java] Re: how to get session id under a Class which doesn't extend HttpServlet?
anyone??? 2010/1/12 Prashant Gupta nextprash...@gmail.com 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 ThreadLocalString sessionID = new ThreadLocalString(); 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 derrick.simp...@gmail.com 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 CollectionItem 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 nextprash...@gmail.com wrote: I tried following code, getting null all the time. public static HttpSession getSession(){ return new ThreadLocalHttpServletRequest().get().getSession(); } 2010/1/9 Elias Mårtenson loke...@gmail.com On 9 Jan, 01:27, Prashant Gupta nextprash...@gmail.com 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%2B unsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: how to get session id under a Class which doesn't extend HttpServlet?
ok, thanks a lot. 2010/1/14 Stephan Hartmann hartm...@metamesh.de 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 nextprash...@gmail.com anyone??? 2010/1/12 Prashant Gupta nextprash...@gmail.com 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 ThreadLocalString sessionID = new ThreadLocalString(); 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 derrick.simp...@gmail.com 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 CollectionItem 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 nextprash...@gmail.com wrote: I tried following code, getting null all the time. public static HttpSession getSession(){ return new ThreadLocalHttpServletRequest().get().getSession(); } 2010/1/9 Elias Mårtenson loke...@gmail.com On 9 Jan, 01:27, Prashant Gupta nextprash...@gmail.com 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%2B unsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: how to get session id under a Class which doesn't extend HttpServlet?
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 ThreadLocalString sessionID = new ThreadLocalString(); 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 derrick.simp...@gmail.com 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 CollectionItem 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 nextprash...@gmail.com wrote: I tried following code, getting null all the time. public static HttpSession getSession(){ return new ThreadLocalHttpServletRequest().get().getSession(); } 2010/1/9 Elias Mårtenson loke...@gmail.com On 9 Jan, 01:27, Prashant Gupta nextprash...@gmail.com 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%2B unsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: how to get session id under a Class which doesn't extend HttpServlet?
I googled some keywords picked up from your reply and found some useful stuff and I think it will workout for me. Thanks a lot... 2010/1/10 Elias Mårtenson loke...@gmail.com On 9 Jan, 16:53, Prashant Gupta nextprash...@gmail.com wrote: I tried following code, getting null all the time. public static HttpSession getSession(){ return new ThreadLocalHttpServletRequest().get().getSession(); } You also need to create a filter where you actually put the data in the TheadLocal. I am just about to go out, so I don't actually have time to write the code for you. Sorry about that. Regards, Elias -- 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: how to get session id under a Class which doesn't extend HttpServlet?
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 CollectionItem 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 nextprash...@gmail.com wrote: I tried following code, getting null all the time. public static HttpSession getSession(){ return new ThreadLocalHttpServletRequest().get().getSession(); } 2010/1/9 Elias Mårtenson loke...@gmail.com On 9 Jan, 01:27, Prashant Gupta nextprash...@gmail.com 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B unsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: how to get session id under a Class which doesn't extend HttpServlet?
I tried following code, getting null all the time. public static HttpSession getSession(){ return new ThreadLocalHttpServletRequest().get().getSession(); } 2010/1/9 Elias Mårtenson loke...@gmail.com On 9 Jan, 01:27, Prashant Gupta nextprash...@gmail.com 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: how to get session id under a Class which doesn't extend HttpServlet?
On 9 Jan, 16:53, Prashant Gupta nextprash...@gmail.com wrote: I tried following code, getting null all the time. public static HttpSession getSession(){ return new ThreadLocalHttpServletRequest().get().getSession(); } You also need to create a filter where you actually put the data in the TheadLocal. I am just about to go out, so I don't actually have time to write the code for you. Sorry about that. Regards, Elias -- 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: how to get session id under a Class which doesn't extend HttpServlet?
On 9 Jan, 01:27, Prashant Gupta nextprash...@gmail.com 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.