KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jodd > petite > scope > SessionScope


1 // Copyright (c) 2003-2007, Jodd Team (jodd.sf.net). All Rights Reserved.
2

3 package jodd.petite.scope;
4
5 import jodd.servlet.RequestContextListener;
6 import jodd.madvoc.MadvocException;
7
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import java.util.HashMap JavaDoc;
10 import java.util.Map JavaDoc;
11
12 /**
13  * Session scope stores unique object instances per single http session.
14  * It uses {@link RequestContextListener} for accessing the request.
15  */

16 public class SessionScope implements Scope {
17
18     protected Map JavaDoc<String JavaDoc, Object JavaDoc> instances = new HashMap JavaDoc<String JavaDoc, Object JavaDoc>();
19
20     public Object JavaDoc lookup(String JavaDoc name) {
21         HttpServletRequest JavaDoc request = RequestContextListener.getRequest();
22         if (request == null) {
23             throw new MadvocException("No request binded to current thread (maybe RequestContextListener is not specified?).");
24         }
25         String JavaDoc id = request.getSession().getId() + '-' + name;
26         return instances.get(id);
27     }
28
29     public void register(String JavaDoc name, Object JavaDoc object) {
30         HttpServletRequest JavaDoc request = RequestContextListener.getRequest();
31         if (request == null) {
32             throw new MadvocException("No request binded to current thread (maybe RequestContextListener is not specified?).");
33         }
34         String JavaDoc id = request.getSession().getId() + '-' + name;
35         instances.put(id, object);
36     }
37
38 }
39
40
41
42
Popular Tags