📄 portletsession.java
字号:
/** * Copyright 2003 IBM Corporation and Sun Microsystems, Inc. * All rights reserved. * Use is subject to license terms. */package javax.portlet;/** * The <CODE>PortletSession</CODE> interface provides a way to identify a user * across more than one request and to store transient information about that user. * <p/> * A <code>PortletSession</code> is created per user client per portlet application. * <p/> * A portlet can bind an object attribute into a <code>PortletSession</code> by name. * The <code>PortletSession</code> interface defines two scopes for storing objects: * <ul> * <li><code>APPLICATION_SCOPE</code> * <li><code>PORTLET_SCOPE</code> * </ul> * All objects stored in the session using the <code>APPLICATION_SCOPE</code> * must be available to all the portlets, servlets and * JSPs that belongs to the same portlet application and that handles a * request identified as being a part of the same session. * Objects stored in the session using the <code>PORTLET_SCOPE</code> must be * available to the portlet during requests for the same portlet window * that the objects where stored from. Attributes stored in the * <code>PORTLET_SCOPE</code> are not protected from other web components * of the portlet application. They are just conveniently namespaced. * <P> * The portlet session is based on the <code>HttpSession</code>. Therefore all * <code>HttpSession</code> listeners do apply to the portlet session and * attributes set in the portlet session are visible in the <code>HttpSession</code> * and vice versa. */public interface PortletSession { /** * This constant defines an application wide scope for the session attribute. * <code>APPLICATION_SCOPE</code> session attributes enable Portlets * within one portlet application to share data. * <p/> * Portlets may need to prefix attributes set in this scope with some * ID, to avoid overwriting each other's attributes in the * case where two portlets of the same portlet definition * are created. * <p/> * Value: <code>0x01</code> */ public static final int APPLICATION_SCOPE = 0x01; /** * This constant defines the scope of the session attribute to be * private to the portlet and its included resources. * <p/> * Value: <code>0x02</code> */ public static final int PORTLET_SCOPE = 0x02; /** * Returns the object bound with the specified name in this session * under the <code>PORTLET_SCOPE</code>, or <code>null</code> if no * object is bound under the name in that scope. * * @param name a string specifying the name of the object * @throws java.lang.IllegalStateException * if this method is called on an * invalidated session. * @throws java.lang.IllegalArgumentException * if name is <code>null</code>. * @return the object with the specified name for * the <code>PORTLET_SCOPE</code>. */ public java.lang.Object getAttribute(java.lang.String name); /** * Returns the object bound with the specified name in this session, * or <code>null</code> if no object is bound under the name in the given scope. * * @param name a string specifying the name of the object * @param scope session scope of this attribute * @throws java.lang.IllegalStateException * if this method is called on an * invalidated session * @throws java.lang.IllegalArgumentException * if name is <code>null</code>. * @return the object with the specified name */ public java.lang.Object getAttribute(java.lang.String name, int scope); /** * Returns an <code>Enumeration</code> of String objects containing the names of * all the objects bound to this session under the <code>PORTLET_SCOPE</code>, or an * empty <code>Enumeration</code> if no attributes are available. * * @throws java.lang.IllegalStateException * if this method is called on an * invalidated session * @return an <code>Enumeration</code> of * <code>String</code> objects specifying the * names of all the objects bound to * this session, or an empty <code>Enumeration</code> * if no attributes are available. */ public java.util.Enumeration getAttributeNames(); /** * Returns an <code>Enumeration</code> of String objects containing the names of * all the objects bound to this session in the given scope, or an * empty <code>Enumeration</code> if no attributes are available in the * given scope. * * @param scope session scope of the attribute names * @throws java.lang.IllegalStateException * if this method is called on an * invalidated session * @return an <code>Enumeration</code> of * <code>String</code> objects specifying the * names of all the objects bound to * this session, or an empty <code>Enumeration</code> * if no attributes are available in the given scope. */ public java.util.Enumeration getAttributeNames(int scope); /** * Returns the time when this session was created, measured in * milliseconds since midnight January 1, 1970 GMT. * * @throws java.lang.IllegalStateException * if this method is called on an * invalidated session * @return a <code>long</code> specifying * when this session was created, * expressed in * milliseconds since 1/1/1970 GMT */ public long getCreationTime(); /** * Returns a string containing the unique identifier assigned to this session. * * @return a string specifying the identifier * assigned to this session */ public java.lang.String getId(); /** * Returns the last time the client sent a request associated with this session, * as the number of milliseconds since midnight January 1, 1970 GMT. * <p/> * <p>Actions that your portlet takes, such as getting or setting * a value associated with the session, do not affect the access * time. * * @return a <code>long</code> * representing the last time * the client sent a request associated * with this session, expressed in * milliseconds since 1/1/1970 GMT */ public long getLastAccessedTime(); /** * Returns the maximum time interval, in seconds, for which the portlet container * keeps this session open between client accesses. After this interval, * the portlet container invalidates the session. The maximum time * interval can be set * with the <code>setMaxInactiveInterval</code> method. * A negative time indicates the session should never timeout. * * @return an integer specifying the number of * seconds this session remains open * between client requests * @see #setMaxInactiveInterval */ public int getMaxInactiveInterval(); /** * Invalidates this session (all scopes) and unbinds any objects bound to it. * <p/> * Invalidating the portlet session will result in invalidating the underlying * <code>HttpSession</code> * * @throws java.lang.IllegalStateException * if this method is called on a * session which has already been invalidated */ public void invalidate(); /** * Returns true if the client does not yet know about the session or * if the client chooses not to join the session. * * @return <code>true</code> if the * server has created a session, * but the client has not joined yet. * @throws java.lang.IllegalStateException * if this method is called on a * session which has already been invalidated */ public boolean isNew(); /** * Removes the object bound with the specified name under * the <code>PORTLET_SCOPE</code> from * this session. If the session does not have an object * bound with the specified name, this method does nothing. * * @param name the name of the object to be * removed from this session in the * <code> PORTLET_SCOPE</code>. * @throws java.lang.IllegalStateException * if this method is called on a * session which has been invalidated * @throws java.lang.IllegalArgumentException * if name is <code>null</code>. */ public void removeAttribute(String name); /** * Removes the object bound with the specified name and the given scope from * this session. If the session does not have an object * bound with the specified name, this method does nothing. * * @param name the name of the object to be * removed from this session * @param scope session scope of this attribute * @throws java.lang.IllegalStateException * if this method is called on a * session which has been invalidated * @throws java.lang.IllegalArgumentException * if name is <code>null</code>. */ public void removeAttribute(String name, int scope); /** * Binds an object to this session under the <code>PORTLET_SCOPE</code>, using the name specified. * If an object of the same name in this scope is already bound to the session, * that object is replaced. * <p/> * <p>After this method has been executed, and if the new object * implements <code>HttpSessionBindingListener</code>, * the container calls * <code>HttpSessionBindingListener.valueBound</code>. The container then * notifies any <code>HttpSessionAttributeListeners</code> in the web * application. * <p>If an object was already bound to this session * that implements <code>HttpSessionBindingListener</code>, its * <code>HttpSessionBindingListener.valueUnbound</code> method is called. * <p/> * <p>If the value is <code>null</code>, this has the same effect as calling * <code>removeAttribute()</code>. * * @param name the name to which the object is bound under * the <code>PORTLET_SCOPE</code>; * this cannot be <code>null</code>. * @param value the object to be bound * @throws java.lang.IllegalStateException * if this method is called on a * session which has been invalidated * @throws java.lang.IllegalArgumentException * if name is <code>null</code>. */ public void setAttribute(java.lang.String name, java.lang.Object value); /** * Binds an object to this session in the given scope, using the name specified. * If an object of the same name in this scope is already bound to the session, * that object is replaced. * <p/> * <p>After this method has been executed, and if the new object * implements <code>HttpSessionBindingListener</code>, * the container calls * <code>HttpSessionBindingListener.valueBound</code>. The container then * notifies any <code>HttpSessionAttributeListeners</code> in the web * application. * <p>If an object was already bound to this session * that implements <code>HttpSessionBindingListener</code>, its * <code>HttpSessionBindingListener.valueUnbound</code> method is called. * <p/> * <p>If the value is <code>null</code>, this has the same effect as calling * <code>removeAttribute()</code>. * * @param name the name to which the object is bound; * this cannot be <code>null</code>. * @param value the object to be bound * @param scope session scope of this attribute * @throws java.lang.IllegalStateException * if this method is called on a * session which has been invalidated * @throws java.lang.IllegalArgumentException * if name is <code>null</code>. */ public void setAttribute(java.lang.String name, java.lang.Object value, int scope); /** * Specifies the time, in seconds, between client requests, before the * portlet container invalidates this session. A negative time * indicates the session should never timeout. * * @param interval An integer specifying the number * of seconds */ public void setMaxInactiveInterval(int interval); /** * Returns the portlet application context associated with this session. * * @return the portlet application context */ public PortletContext getPortletContext();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -