1 16 package org.apache.commons.jxpath.servlet; 17 18 import java.util.Enumeration ; 19 import java.util.HashSet ; 20 21 import javax.servlet.http.HttpSession ; 22 23 import org.apache.commons.jxpath.JXPathException; 24 25 32 public class HttpSessionHandler extends ServletContextHandler { 33 34 protected void collectPropertyNames(HashSet set, Object bean) { 35 HttpSessionAndServletContext handle = 36 (HttpSessionAndServletContext) bean; 37 super.collectPropertyNames(set, handle.getServletContext()); 38 HttpSession session = handle.getSession(); 39 if (session != null) { 40 Enumeration e = session.getAttributeNames(); 41 while (e.hasMoreElements()) { 42 set.add(e.nextElement()); 43 } 44 } 45 } 46 47 public Object getProperty(Object bean, String property) { 48 HttpSessionAndServletContext handle = 49 (HttpSessionAndServletContext) bean; 50 HttpSession session = handle.getSession(); 51 if (session != null) { 52 Object object = session.getAttribute(property); 53 if (object != null) { 54 return object; 55 } 56 } 57 return super.getProperty(handle.getServletContext(), property); 58 } 59 60 public void setProperty(Object bean, String property, Object value) { 61 HttpSessionAndServletContext handle = 62 (HttpSessionAndServletContext) bean; 63 HttpSession session = handle.getSession(); 64 if (session != null) { 65 session.setAttribute(property, value); 66 } 67 else { 68 throw new JXPathException("Cannot set session attribute: " 69 + "there is no session"); 70 } 71 } 72 } 73 | Popular Tags |