/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
*/ package org.apache.catalina;
/** * A <b>Session</b> is the Catalina-internal facade for an * <code>HttpSession</code> that is used to maintain state information * between requests for a particular user of a web application. * * @author Craig R. McClanahan
*/ publicinterface Session {
/** * @return the authentication type used to authenticate our cached * Principal, if any.
*/
String getAuthType();
/** * Set the authentication type used to authenticate our cached * Principal, if any. * * @param authType The new cached authentication type
*/ void setAuthType(String authType);
/** * @return the creation time for this session.
*/ long getCreationTime();
/** * @return the creation time for this session, bypassing the session validity * checks.
*/ long getCreationTimeInternal();
/** * Set the creation time for this session. This method is called by the * Manager when an existing Session instance is reused. * * @param time The new creation time
*/ void setCreationTime(long time);
/** * @return the session identifier for this session.
*/
String getId();
/** * @return the session identifier for this session.
*/
String getIdInternal();
/** * Set the session identifier for this session and notifies any associated * listeners that a new session has been created. * * @param id The new session identifier
*/ void setId(String id);
/** * Set the session identifier for this session and optionally notifies any * associated listeners that a new session has been created. * * @param id The new session identifier * @param notify Should any associated listeners be notified that a new * session has been created?
*/ void setId(String id, boolean notify);
/** * @return the last time the client sent a request associated with this * session, as the number of milliseconds since midnight, January 1, 1970 * GMT. Actions that your application takes, such as getting or setting * a value associated with the session, do not affect the access time. * This one gets updated whenever a request starts.
*/ long getThisAccessedTime();
/** * @return the last client access time without invalidation check * @see #getThisAccessedTime()
*/ long getThisAccessedTimeInternal();
/** * @return the last time the client sent a request associated with this * session, as the number of milliseconds since midnight, January 1, 1970 * GMT. Actions that your application takes, such as getting or setting * a value associated with the session, do not affect the access time. * This one gets updated whenever a request finishes.
*/ long getLastAccessedTime();
/** * @return the last client access time without invalidation check * @see #getLastAccessedTime()
*/ long getLastAccessedTimeInternal();
/** * @return the idle time (in milliseconds) from last client access time.
*/ long getIdleTime();
/** * @return the idle time from last client access time without invalidation check * @see #getIdleTime()
*/ long getIdleTimeInternal();
/** * @return the Manager within which this Session is valid.
*/
Manager getManager();
/** * Set the Manager within which this Session is valid. * * @param manager The new Manager
*/ void setManager(Manager manager);
/** * @return the maximum time interval, in seconds, between client requests * before the servlet container will invalidate the session. A negative * time indicates that the session should never time out.
*/ int getMaxInactiveInterval();
/** * Set the maximum time interval, in seconds, between client requests * before the servlet container will invalidate the session. A negative * time indicates that the session should never time out. * * @param interval The new maximum interval
*/ void setMaxInactiveInterval(int interval);
/** * Set the <code>isNew</code> flag for this session. * * @param isNew The new value for the <code>isNew</code> flag
*/ void setNew(boolean isNew);
/** * @return the authenticated Principal that is associated with this Session. * This provides an <code>Authenticator</code> with a means to cache a * previously authenticated Principal, and avoid potentially expensive * <code>Realm.authenticate()</code> calls on every request. If there * is no current associated Principal, return <code>null</code>.
*/
Principal getPrincipal();
/** * Set the authenticated Principal that is associated with this Session. * This provides an <code>Authenticator</code> with a means to cache a * previously authenticated Principal, and avoid potentially expensive * <code>Realm.authenticate()</code> calls on every request. * * @param principal The new Principal, or <code>null</code> if none
*/ void setPrincipal(Principal principal);
/** * @return the <code>HttpSession</code> for which this object * is the facade.
*/
HttpSession getSession();
/** * Set the <code>isValid</code> flag for this session. * * @param isValid The new value for the <code>isValid</code> flag
*/ void setValid(boolean isValid);
/** * @return <code>true</code> if the session is still valid
*/ boolean isValid();
// --------------------------------------------------------- Public Methods
/** * Update the accessed time information for this session. This method * should be called by the context when a request comes in for a particular * session, even if the application does not reference it.
*/ void access();
/** * Add a session event listener to this component. * * @param listener the SessionListener instance that should be notified * for session events
*/ void addSessionListener(SessionListener listener);
/** * End access to the session.
*/ void endAccess();
/** * Perform the internal processing required to invalidate this session, * without triggering an exception if the session has already expired.
*/ void expire();
/** * @return the object bound with the specified name to the internal notes * for this session, or <code>null</code> if no such binding exists. * * @param name Name of the note to be returned
*/
Object getNote(String name);
/** * @return an Iterator containing the String names of all notes bindings * that exist for this session.
*/
Iterator<String> getNoteNames();
/** * Release all object references, and initialize instance variables, in * preparation for reuse of this object.
*/ void recycle();
/** * Remove any object bound to the specified name in the internal notes * for this session. * * @param name Name of the note to be removed
*/ void removeNote(String name);
/** * Remove a session event listener from this component. * * @param listener remove the session listener, which will no longer be * notified
*/ void removeSessionListener(SessionListener listener);
/** * Bind an object to a specified name in the internal notes associated * with this session, replacing any existing binding for this name. * * @param name Name to which the object should be bound * @param value Object to be bound to the specified name
*/ void setNote(String name, Object value);
/** * Inform the listeners about the change session ID. * * @param newId new session ID * @param oldId old session ID * @param notifySessionListeners Should any associated sessionListeners be * notified that session ID has been changed? * @param notifyContainerListeners Should any associated ContainerListeners * be notified that session ID has been changed?
*/ void tellChangedSessionId(String newId, String oldId, boolean notifySessionListeners, boolean notifyContainerListeners);
/** * Does the session implementation support the distributing of the given * attribute? If the Manager is marked as distributable, then this method * must be used to check attributes before adding them to a session and * an {@link IllegalArgumentException} thrown if the proposed attribute is * not distributable. * <p> * Note that the {@link Manager} implementation may further restrict which * attributes are distributed but a {@link Manager} level restriction should * not trigger an {@link IllegalArgumentException} in * {@link HttpSession#setAttribute(String, Object)} * * @param name The attribute name * @param value The attribute value * * @return {@code true} if distribution is supported, otherwise {@code * false}
*/ boolean isAttributeDistributable(String name, Object value);
}
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.