Java 类javax.servlet.http.HttpSessionAttributeListener 实例源码
项目:HttpSessionReplacer
文件:SessionHelpers.java
/**
* This method is used by injected code to register listeners for
* {@link ServletContext}. If object argument is a {@link ServletContext} and
* listener argument contains {@link HttpSessionListener} or
* {@link HttpSessionAttributeListener}, the method will add them to list of
* known listeners associated to {@link ServletContext}
*
* @param servletContext
* the active servlet context
* @param listener
* the listener to use
*/
public void onAddListener(ServletContext servletContext, Object listener) {
String contextPath = servletContext.getContextPath();
ServletContextDescriptor scd = getDescriptor(servletContext);
logger.debug("Registering listener {} for context {}", listener, contextPath);
// As theoretically one class can implement many listener interfaces we
// check if it implements each of supported ones
if (listener instanceof HttpSessionListener) {
scd.addHttpSessionListener((HttpSessionListener)listener);
}
if (listener instanceof HttpSessionAttributeListener) {
scd.addHttpSessionAttributeListener((HttpSessionAttributeListener)listener);
}
if (ServletLevel.isServlet31) {
// Guard the code inside block to avoid use of classes
// that are not available in versions before Servlet 3.1
if (listener instanceof HttpSessionIdListener) { // NOSONAR
scd.addHttpSessionIdListener((HttpSessionIdListener)listener);
}
}
}
项目:osgi.ee
文件:OurServletContext.java
/**
* Init method called by the main servlet when the wrapping servlet is initialized. This means that the context is
* taken into service by the system.
*
* @param parent The parent servlet context. Just for some delegation actions
*/
void init(ServletContext parent) {
// Set up the tracking of event listeners.
BundleContext bc = getOwner().getBundleContext();
delegate = parent;
Collection<Class<? extends EventListener>> toTrack = Arrays.asList(HttpSessionListener.class,
ServletRequestListener.class, HttpSessionAttributeListener.class, ServletRequestAttributeListener.class,
ServletContextListener.class);
Collection<String> objectFilters = toTrack.stream().
map((c) -> "(" + Constants.OBJECTCLASS + "=" + c.getName() + ")").collect(Collectors.toList());
String filterString = "|" + String.join("", objectFilters);
eventListenerTracker = startTracking(filterString,
new Tracker<EventListener, EventListener>(bc, getContextPath(), (e) -> e, (e) -> { /* No destruct */}));
// Initialize the servlets.
ServletContextEvent event = new ServletContextEvent(this);
call(ServletContextListener.class, (l) -> l.contextInitialized(event));
servlets.values().forEach((s) -> init(s));
// And the filters.
filters.values().forEach((f) -> init(f));
// Set up the tracking of servlets and filters.
servletTracker = startTracking(Constants.OBJECTCLASS + "=" + Servlet.class.getName(),
new Tracker<Servlet, String>(bc, getContextPath(), this::addServlet, this::removeServlet));
filterTracker = startTracking(Constants.OBJECTCLASS + "=" + Filter.class.getName(),
new Tracker<Filter, String>(bc, getContextPath(), this::addFilter, this::removeFilter));
}
项目:osgi.ee
文件:OurSession.java
@Override
public void setAttribute(String name, Object value) {
// According to the specifications, a value of null should be handled as a remove.
if (value == null) {
removeAttribute(name);
return;
}
checkValid();
// See how to notify our listeners: as a replacement or an addition.
BiConsumer<HttpSessionAttributeListener, HttpSessionBindingEvent> notifier = (l, e) -> l.attributeAdded(e);
if (unbindOriginal(name)) {
notifier = (l, e) -> l.attributeReplaced(e);
}
// Update the data.
attributes.put(name, value);
// And perform the notification.
notifyListeners(name, value, notifier);
}
项目:couchbase-lite-java-listener
文件:Serve.java
private void notifyListeners(String name, Object oldValue, Object value) {
if (listeners != null) {
HttpSessionBindingEvent event = new HttpSessionBindingEvent(this, name, value);
HttpSessionBindingEvent oldEvent = oldValue == null ? null : new HttpSessionBindingEvent(this, name,
oldValue);
for (int i = 0, n = listeners.size(); i < n; i++)
try {
HttpSessionAttributeListener l = (HttpSessionAttributeListener) listeners.get(i);
if (oldEvent != null)
l.attributeReplaced(oldEvent);
l.attributeAdded(event);
} catch (ClassCastException cce) {
} catch (NullPointerException npe) {
}
}
}
项目:tomee
文件:WebContext.java
private static boolean isWeb(final Class<?> beanClass) {
if (Servlet.class.isAssignableFrom(beanClass)
|| Filter.class.isAssignableFrom(beanClass)) {
return true;
}
if (EventListener.class.isAssignableFrom(beanClass)) {
return HttpSessionAttributeListener.class.isAssignableFrom(beanClass)
|| ServletContextListener.class.isAssignableFrom(beanClass)
|| ServletRequestListener.class.isAssignableFrom(beanClass)
|| ServletContextAttributeListener.class.isAssignableFrom(beanClass)
|| HttpSessionListener.class.isAssignableFrom(beanClass)
|| HttpSessionBindingListener.class.isAssignableFrom(beanClass)
|| HttpSessionActivationListener.class.isAssignableFrom(beanClass)
|| HttpSessionIdListener.class.isAssignableFrom(beanClass)
|| ServletRequestAttributeListener.class.isAssignableFrom(beanClass);
}
return false;
}
项目:tomcat7
文件:ApplicationContext.java
@Override
public <T extends EventListener> void addListener(T t) {
if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
throw new IllegalStateException(
sm.getString("applicationContext.addListener.ise",
getContextPath()));
}
boolean match = false;
if (t instanceof ServletContextAttributeListener ||
t instanceof ServletRequestListener ||
t instanceof ServletRequestAttributeListener ||
t instanceof HttpSessionAttributeListener) {
context.addApplicationEventListener(t);
match = true;
}
if (t instanceof HttpSessionListener
|| (t instanceof ServletContextListener &&
newServletContextListenerAllowed)) {
// Add listener directly to the list of instances rather than to
// the list of class names.
context.addApplicationLifecycleListener(t);
match = true;
}
if (match) return;
if (t instanceof ServletContextListener) {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.sclNotAllowed",
t.getClass().getName()));
} else {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.wrongType",
t.getClass().getName()));
}
}
项目:apache-tomcat-7.0.73-with-comment
文件:ApplicationContext.java
@Override
public <T extends EventListener> void addListener(T t) {
if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
throw new IllegalStateException(
sm.getString("applicationContext.addListener.ise",
getContextPath()));
}
boolean match = false;
if (t instanceof ServletContextAttributeListener ||
t instanceof ServletRequestListener ||
t instanceof ServletRequestAttributeListener ||
t instanceof HttpSessionAttributeListener) {
context.addApplicationEventListener(t);
match = true;
}
if (t instanceof HttpSessionListener
|| (t instanceof ServletContextListener &&
newServletContextListenerAllowed)) {
// Add listener directly to the list of instances rather than to
// the list of class names.
context.addApplicationLifecycleListener(t);
match = true;
}
if (match) return;
if (t instanceof ServletContextListener) {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.sclNotAllowed",
t.getClass().getName()));
} else {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.wrongType",
t.getClass().getName()));
}
}
项目:lazycat
文件:ApplicationContext.java
@Override
public <T extends EventListener> void addListener(T t) {
if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
throw new IllegalStateException(sm.getString("applicationContext.addListener.ise", getContextPath()));
}
boolean match = false;
if (t instanceof ServletContextAttributeListener || t instanceof ServletRequestListener
|| t instanceof ServletRequestAttributeListener || t instanceof HttpSessionAttributeListener) {
context.addApplicationEventListener(t);
match = true;
}
if (t instanceof HttpSessionListener
|| (t instanceof ServletContextListener && newServletContextListenerAllowed)) {
// Add listener directly to the list of instances rather than to
// the list of class names.
context.addApplicationLifecycleListener(t);
match = true;
}
if (match)
return;
if (t instanceof ServletContextListener) {
throw new IllegalArgumentException(
sm.getString("applicationContext.addListener.iae.sclNotAllowed", t.getClass().getName()));
} else {
throw new IllegalArgumentException(
sm.getString("applicationContext.addListener.iae.wrongType", t.getClass().getName()));
}
}
项目:HttpSessionReplacer
文件:HttpSessionNotifier.java
/**
* Notifies listeners that attribute was added. See {@link SessionNotifier}
* {@link #attributeAdded(RepositoryBackedSession, String, Object)}.
* <p>
* If the added attribute <code>value</code> is a HttpSessionBindingListener,
* it will receive the {@link HttpSessionBindingEvent}. If there are
* {@link HttpSessionAttributeListener} instances associated to
* {@link ServletContext}, they will be notified via
* {@link HttpSessionAttributeListener#attributeAdded(HttpSessionBindingEvent)}
* .
*/
@Override
public void attributeAdded(RepositoryBackedSession session, String key, Object value) {
// If the
if (session instanceof HttpSession && value instanceof HttpSessionBindingListener) {
((HttpSessionBindingListener)value).valueBound(new HttpSessionBindingEvent((HttpSession)session, key));
}
HttpSessionBindingEvent event = new HttpSessionBindingEvent((HttpSession)session, key, value);
for (HttpSessionAttributeListener listener : descriptor.getHttpSessionAttributeListeners()) {
listener.attributeAdded(event);
}
}
项目:HttpSessionReplacer
文件:TestSessionHelpers.java
@Test
public void testOnAddListener() {
ServletContextDescriptor scd = new ServletContextDescriptor(servletContext);
when(servletContext.getAttribute(Attributes.SERVLET_CONTEXT_DESCRIPTOR)).thenReturn(scd);
sessionHelpers.onAddListener(servletContext, "Dummy");
assertTrue(scd.getHttpSessionListeners().isEmpty());
assertTrue(scd.getHttpSessionIdListeners().isEmpty());
assertTrue(scd.getHttpSessionAttributeListeners().isEmpty());
HttpSessionListener listener = mock(HttpSessionListener.class);
HttpSessionIdListener idListener = mock(HttpSessionIdListener.class);
HttpSessionAttributeListener attributeListener = mock(HttpSessionAttributeListener.class);
HttpSessionListener multiListener = mock(HttpSessionListener.class,
withSettings().extraInterfaces(HttpSessionAttributeListener.class));
HttpSessionAttributeListener attributeMultiListener = (HttpSessionAttributeListener)multiListener;
sessionHelpers.onAddListener(servletContext, listener);
assertThat(scd.getHttpSessionListeners(), hasItem(listener));
assertTrue(scd.getHttpSessionIdListeners().isEmpty());
assertTrue(scd.getHttpSessionAttributeListeners().isEmpty());
sessionHelpers.onAddListener(servletContext, idListener);
assertThat(scd.getHttpSessionListeners(), hasItem(listener));
assertThat(scd.getHttpSessionIdListeners(), hasItem(idListener));
assertTrue(scd.getHttpSessionAttributeListeners().isEmpty());
sessionHelpers.onAddListener(servletContext, attributeListener);
assertThat(scd.getHttpSessionListeners(), hasItem(listener));
assertThat(scd.getHttpSessionIdListeners(), hasItem(idListener));
assertThat(scd.getHttpSessionAttributeListeners(), hasItem(attributeListener));
sessionHelpers.onAddListener(servletContext, multiListener);
assertThat(scd.getHttpSessionListeners(), hasItem(listener));
assertThat(scd.getHttpSessionListeners(), hasItem(multiListener));
assertThat(scd.getHttpSessionIdListeners(), hasItem(idListener));
assertThat(scd.getHttpSessionAttributeListeners(), hasItem(attributeListener));
assertThat(scd.getHttpSessionAttributeListeners(), hasItem(attributeMultiListener));
}
项目:HttpSessionReplacer
文件:TestHttpSessionNotifier.java
@Test
public void testAttributeAdded() {
HttpSessionAttributeListener listener = mock(HttpSessionAttributeListener.class);
descriptor.addHttpSessionAttributeListener(listener);
notifier.attributeAdded(session, "Test", "value");
verify(listener).attributeAdded(any(HttpSessionBindingEvent.class));
HttpSessionBindingListener bindingListener = mock(HttpSessionBindingListener.class);
notifier.attributeAdded(session, "Test", bindingListener);
verify(listener, times(2)).attributeAdded(any(HttpSessionBindingEvent.class));
verify(bindingListener).valueBound(any(HttpSessionBindingEvent.class));
}
项目:HttpSessionReplacer
文件:TestHttpSessionNotifier.java
@Test
public void testAttributeReplaced() {
HttpSessionAttributeListener listener = mock(HttpSessionAttributeListener.class);
notifier.attributeReplaced(session, "Test", "very-old-value");
verify(listener, never()).attributeReplaced(any(HttpSessionBindingEvent.class));
descriptor.addHttpSessionAttributeListener(listener);
notifier.attributeReplaced(session, "Test", "old-value");
verify(listener).attributeReplaced(any(HttpSessionBindingEvent.class));
HttpSessionBindingListener bindingListener = mock(HttpSessionBindingListener.class);
notifier.attributeReplaced(session, "Test", bindingListener);
verify(listener, times(2)).attributeReplaced(any(HttpSessionBindingEvent.class));
verify(bindingListener).valueUnbound(any(HttpSessionBindingEvent.class));
}
项目:HttpSessionReplacer
文件:TestHttpSessionNotifier.java
@Test
public void testAttributeRemoved() {
notifier.attributeRemoved(session, "Test", "very-old-value");
HttpSessionAttributeListener listener = mock(HttpSessionAttributeListener.class);
descriptor.addHttpSessionAttributeListener(listener);
notifier.attributeRemoved(session, "Test", "old-value");
verify(listener).attributeRemoved(any(HttpSessionBindingEvent.class));
HttpSessionBindingListener bindingListener = mock(HttpSessionBindingListener.class);
notifier.attributeRemoved(session, "Test", bindingListener);
verify(listener, times(2)).attributeRemoved(any(HttpSessionBindingEvent.class));
verify(bindingListener).valueUnbound(any(HttpSessionBindingEvent.class));
}
项目:puzzle
文件:PluginHookListener.java
public void sessionDidActivate(HttpSessionEvent se) {
for (EventListener listener: PluginWebInstanceRepository.getListeners()) {
if (listener instanceof HttpSessionAttributeListener) {
((HttpSessionActivationListener) listener).sessionDidActivate(se);
}
}
}
项目:puzzle
文件:PluginHookListener.java
public void attributeAdded(HttpSessionBindingEvent se) {
for (EventListener listener: PluginWebInstanceRepository.getListeners()) {
if (listener instanceof HttpSessionAttributeListener) {
((HttpSessionAttributeListener) listener).attributeAdded(se);
}
}
}
项目:puzzle
文件:PluginHookListener.java
public void attributeRemoved(HttpSessionBindingEvent se) {
for (EventListener listener: PluginWebInstanceRepository.getListeners()) {
if (listener instanceof HttpSessionAttributeListener) {
((HttpSessionAttributeListener) listener).attributeRemoved(se);
}
}
}
项目:puzzle
文件:PluginHookListener.java
public void attributeReplaced(HttpSessionBindingEvent se) {
for (EventListener listener: PluginWebInstanceRepository.getListeners()) {
if (listener instanceof HttpSessionAttributeListener) {
((HttpSessionAttributeListener) listener).attributeReplaced(se);
}
}
}
项目:opengse
文件:WebAppImpl.java
private void loadListeners(WebAppConfiguration wac)
throws ClassNotFoundException, IllegalAccessException,
InstantiationException, WebAppConfigurationException {
for (WebAppListener listener : wac.getListeners()) {
String className = listener.getListenerClass();
Class<?> clazz = classLoader.loadClass(className);
Object obj = clazz.newInstance();
boolean used = false;
if (obj instanceof ServletContextAttributeListener) {
scaListeners.add((ServletContextAttributeListener) obj);
used = true;
}
if (obj instanceof ServletContextListener) {
scListeners.add((ServletContextListener) obj);
used = true;
}
if (obj instanceof ServletRequestListener) {
srListeners.add((ServletRequestListener) obj);
used = true;
}
if (obj instanceof ServletRequestAttributeListener) {
sraListeners.add((ServletRequestAttributeListener) obj);
used = true;
}
if (obj instanceof HttpSessionAttributeListener) {
sessionAttributeListeners.add((HttpSessionAttributeListener) obj);
used = true;
}
if (obj instanceof HttpSessionListener) {
sessionListeners.add((HttpSessionListener) obj);
used = true;
}
if (!used) {
throw new WebAppConfigurationException("Don't know what to do with '"
+ className + "'");
}
}
}
项目:opengse
文件:WebAppSessionWrapper.java
public WebAppSessionWrapper(HttpSession delegate, ServletContext context,
HttpSessionListener sessionListener,
HttpSessionAttributeListener sessionAttributeListener) {
super(delegate);
this.context = context;
this.sessionListener = sessionListener;
this.sessionAttributeListener = sessionAttributeListener;
fireSessionCreated();
}
项目:winstone
文件:WebAppConfiguration.java
private void addListenerInstance(final Object listenerInstance,
final List<ServletContextAttributeListener> contextAttributeListeners,
final List<ServletContextListener> contextListeners,
final List<ServletRequestAttributeListener> requestAttributeListeners,
final List<ServletRequestListener> requestListeners, final List<HttpSessionActivationListener> sessionActivationListeners,
final List<HttpSessionAttributeListener> sessionAttributeListeners, final List<HttpSessionListener> sessionListeners) {
if (listenerInstance instanceof ServletContextAttributeListener) {
contextAttributeListeners.add((ServletContextAttributeListener) listenerInstance);
}
if (listenerInstance instanceof ServletContextListener) {
contextListeners.add((ServletContextListener) listenerInstance);
}
if (listenerInstance instanceof ServletRequestAttributeListener) {
requestAttributeListeners.add((ServletRequestAttributeListener) listenerInstance);
}
if (listenerInstance instanceof ServletRequestListener) {
requestListeners.add((ServletRequestListener) listenerInstance);
}
if (listenerInstance instanceof HttpSessionActivationListener) {
sessionActivationListeners.add((HttpSessionActivationListener) listenerInstance);
}
if (listenerInstance instanceof HttpSessionAttributeListener) {
sessionAttributeListeners.add((HttpSessionAttributeListener) listenerInstance);
}
if (listenerInstance instanceof HttpSessionListener) {
sessionListeners.add((HttpSessionListener) listenerInstance);
}
}
项目:quick4j-dwsm
文件:StickyHttpSession.java
@Override
public void removeAttribute(String name) {
access();
sessionManager.getSessionStorage().removeSessionAttribute(getId(), name);
Object value = attributes.remove(name);
if(null == value){
return;
}
HttpSessionBindingEvent event = null;
if(null != value && value instanceof HttpSessionBindingListener){
event = new HttpSessionBindingEvent(this, name, value);
try{
((HttpSessionBindingListener)value).valueUnbound(event);
}catch (Exception e){
logger.error("bingEvent error:", e);
throw new RuntimeException(e);
}
}
List<EventListener> listeners = sessionManager.getEventListeners();
for(EventListener eventListener : listeners){
if(!(eventListener instanceof HttpSessionAttributeListener)){
continue;
}
HttpSessionAttributeListener listener = (HttpSessionAttributeListener) eventListener;
if(event == null){
event = new HttpSessionBindingEvent(this, name, value);
}
listener.attributeRemoved(event);
}
}
项目:quick4j-dwsm
文件:NoStickyHttpSession.java
@Override
public void removeAttribute(String name) {
access();
Object value = getAttribute(name);
if(null == value){
return;
}
HttpSessionBindingEvent event = null;
sessionManager.getSessionStorage().removeSessionAttribute(getId(), name);
if(null != value && value instanceof HttpSessionBindingListener){
event = new HttpSessionBindingEvent(this, name);
try{
((HttpSessionBindingListener)value).valueUnbound(event);
}catch (Exception e){
logger.error("bingEvent error:", e);
throw new RuntimeException(e);
}
}
List<EventListener> listeners = sessionManager.getEventListeners();
for(EventListener eventListener : listeners){
if(!(eventListener instanceof HttpSessionAttributeListener)){
continue;
}
HttpSessionAttributeListener listener = (HttpSessionAttributeListener) eventListener;
if(event == null){
event = new HttpSessionBindingEvent(this, name, value);
}
listener.attributeRemoved(event);
}
}
项目:class-guard
文件:ApplicationContext.java
@Override
public <T extends EventListener> void addListener(T t) {
if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
throw new IllegalStateException(
sm.getString("applicationContext.addListener.ise",
getContextPath()));
}
boolean match = false;
if (t instanceof ServletContextAttributeListener ||
t instanceof ServletRequestListener ||
t instanceof ServletRequestAttributeListener ||
t instanceof HttpSessionAttributeListener) {
context.addApplicationEventListener(t);
match = true;
}
if (t instanceof HttpSessionListener
|| (t instanceof ServletContextListener &&
newServletContextListenerAllowed)) {
// Add listener directly to the list of instances rather than to
// the list of class names.
context.addApplicationLifecycleListener(t);
match = true;
}
if (match) return;
if (t instanceof ServletContextListener) {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.sclNotAllowed",
t.getClass().getName()));
} else {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.wrongType",
t.getClass().getName()));
}
}
项目:apache-tomcat-7.0.57
文件:ApplicationContext.java
@Override
public <T extends EventListener> void addListener(T t) {
if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
throw new IllegalStateException(
sm.getString("applicationContext.addListener.ise",
getContextPath()));
}
boolean match = false;
if (t instanceof ServletContextAttributeListener ||
t instanceof ServletRequestListener ||
t instanceof ServletRequestAttributeListener ||
t instanceof HttpSessionAttributeListener) {
context.addApplicationEventListener(t);
match = true;
}
if (t instanceof HttpSessionListener
|| (t instanceof ServletContextListener &&
newServletContextListenerAllowed)) {
// Add listener directly to the list of instances rather than to
// the list of class names.
context.addApplicationLifecycleListener(t);
match = true;
}
if (match) return;
if (t instanceof ServletContextListener) {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.sclNotAllowed",
t.getClass().getName()));
} else {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.wrongType",
t.getClass().getName()));
}
}
项目:apache-tomcat-7.0.57
文件:ApplicationContext.java
@Override
public <T extends EventListener> void addListener(T t) {
if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
throw new IllegalStateException(
sm.getString("applicationContext.addListener.ise",
getContextPath()));
}
boolean match = false;
if (t instanceof ServletContextAttributeListener ||
t instanceof ServletRequestListener ||
t instanceof ServletRequestAttributeListener ||
t instanceof HttpSessionAttributeListener) {
context.addApplicationEventListener(t);
match = true;
}
if (t instanceof HttpSessionListener
|| (t instanceof ServletContextListener &&
newServletContextListenerAllowed)) {
// Add listener directly to the list of instances rather than to
// the list of class names.
context.addApplicationLifecycleListener(t);
match = true;
}
if (match) return;
if (t instanceof ServletContextListener) {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.sclNotAllowed",
t.getClass().getName()));
} else {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.wrongType",
t.getClass().getName()));
}
}
项目:opennmszh
文件:HttpSessionAttributeListenerManager.java
@Override
public void attributeAdded(final HttpSessionBindingEvent se)
{
final Iterator<HttpSessionAttributeListener> listeners = getContextListeners();
while (listeners.hasNext())
{
listeners.next().attributeAdded(se);
}
}
项目:opennmszh
文件:HttpSessionAttributeListenerManager.java
@Override
public void attributeRemoved(final HttpSessionBindingEvent se)
{
final Iterator<HttpSessionAttributeListener> listeners = getContextListeners();
while (listeners.hasNext())
{
listeners.next().attributeRemoved(se);
}
}
项目:opennmszh
文件:HttpSessionAttributeListenerManager.java
@Override
public void attributeReplaced(final HttpSessionBindingEvent se)
{
final Iterator<HttpSessionAttributeListener> listeners = getContextListeners();
while (listeners.hasNext())
{
listeners.next().attributeReplaced(se);
}
}
项目:couchbase-lite-java-listener
文件:Serve.java
private void notifyListeners(String name, Object value) {
if (listeners != null) {
HttpSessionBindingEvent event = new HttpSessionBindingEvent(this, name, value);
for (int i = 0, n = listeners.size(); i < n; i++)
try {
((HttpSessionAttributeListener) listeners.get(i)).attributeRemoved(event);
} catch (ClassCastException cce) {
} catch (NullPointerException npe) {
}
}
}
项目:lams
文件:ApplicationListeners.java
public void httpSessionAttributeAdded(final HttpSession session, final String name, final Object value) {
final HttpSessionBindingEvent sre = new HttpSessionBindingEvent(session, name, value);
for (int i = 0; i < httpSessionAttributeListeners.length; ++i) {
this.<HttpSessionAttributeListener>get(httpSessionAttributeListeners[i]).attributeAdded(sre);
}
}
项目:lams
文件:ApplicationListeners.java
public void httpSessionAttributeRemoved(final HttpSession session, final String name, final Object value) {
final HttpSessionBindingEvent sre = new HttpSessionBindingEvent(session, name, value);
for (int i = 0; i < httpSessionAttributeListeners.length; ++i) {
this.<HttpSessionAttributeListener>get(httpSessionAttributeListeners[i]).attributeRemoved(sre);
}
}
项目:lams
文件:ApplicationListeners.java
public void httpSessionAttributeReplaced(final HttpSession session, final String name, final Object value) {
final HttpSessionBindingEvent sre = new HttpSessionBindingEvent(session, name, value);
for (int i = 0; i < httpSessionAttributeListeners.length; ++i) {
this.<HttpSessionAttributeListener>get(httpSessionAttributeListeners[i]).attributeReplaced(sre);
}
}
项目:jerrydog
文件:StandardSession.java
/**
* Remove the object bound with the specified name from this session. If
* the session does not have an object bound with this name, this method
* does nothing.
* <p>
* After this method executes, and if the object implements
* <code>HttpSessionBindingListener</code>, the container calls
* <code>valueUnbound()</code> on the object.
*
* @param name Name of the object to remove from this session.
* @param notify Should we notify interested listeners that this
* attribute is being removed?
*
* @exception IllegalStateException if this method is called on an
* invalidated session
*/
public void removeAttribute(String name, boolean notify) {
// Validate our current state
if (!expiring && !isValid)
throw new IllegalStateException
(sm.getString("standardSession.removeAttribute.ise"));
// Remove this attribute from our collection
Object value = null;
boolean found = false;
synchronized (attributes) {
found = attributes.containsKey(name);
if (found) {
value = attributes.get(name);
attributes.remove(name);
} else {
return;
}
}
// Do we need to do valueUnbound() and attributeRemoved() notification?
if (!notify) {
return;
}
// Call the valueUnbound() method if necessary
HttpSessionBindingEvent event =
new HttpSessionBindingEvent((HttpSession) this, name, value);
if ((value != null) &&
(value instanceof HttpSessionBindingListener))
((HttpSessionBindingListener) value).valueUnbound(event);
// Notify interested application event listeners
Context context = (Context) manager.getContainer();
Object listeners[] = context.getApplicationListeners();
if (listeners == null)
return;
for (int i = 0; i < listeners.length; i++) {
if (!(listeners[i] instanceof HttpSessionAttributeListener))
continue;
HttpSessionAttributeListener listener =
(HttpSessionAttributeListener) listeners[i];
try {
fireContainerEvent(context,
"beforeSessionAttributeRemoved",
listener);
listener.attributeRemoved(event);
fireContainerEvent(context,
"afterSessionAttributeRemoved",
listener);
} catch (Throwable t) {
try {
fireContainerEvent(context,
"afterSessionAttributeRemoved",
listener);
} catch (Exception e) {
;
}
// FIXME - should we do anything besides log these?
log(sm.getString("standardSession.attributeEvent"), t);
}
}
}
项目:puzzle
文件:PuzzleListener.java
@Override
public void attributeAdded(HttpSessionBindingEvent event) {
((HttpSessionAttributeListener)delegate).attributeAdded(event);
}
项目:puzzle
文件:PuzzleListener.java
@Override
public void attributeRemoved(HttpSessionBindingEvent event) {
((HttpSessionAttributeListener)delegate).attributeRemoved(event);
}
项目:puzzle
文件:PuzzleListener.java
@Override
public void attributeReplaced(HttpSessionBindingEvent event) {
((HttpSessionAttributeListener)delegate).attributeReplaced(event);
}
项目:adeptj-runtime
文件:EventDispatcherTracker.java
HttpSessionAttributeListener getHttpSessionAttributeListener() {
return this.sessionAttributeListener;
}
项目:adeptj-runtime
文件:EventDispatcherTracker.java
private void initHttpSessionAttributeListener(EventListener listener) {
if (listener instanceof HttpSessionAttributeListener) {
this.sessionAttributeListener = (HttpSessionAttributeListener) listener;
}
}
项目:opengse
文件:WebAppImpl.java
public HttpSessionAttributeListener getHttpSessionAttributeListener() {
return sessionAttributeListeners;
}
项目:opengse
文件:WebAppFactory.java
public HttpSessionAttributeListener getHttpSessionAttributeListener() {
return null;
}