⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 portletsessionimpl.java

📁 GridSphere 门户 提供一个基于 portlet 的高级开放源代码门户。GridSphere 是在欧盟提供基金的 GridLab 项目下开发的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * 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 IllegalStateException    if this method is called on a     *                                  session which has been invalidated     * @throws IllegalArgumentException if name is <code>null</code>.     */    public void setAttribute(String name, Object value) throws IllegalStateException, IllegalArgumentException {        setAttribute(name, value, PortletSession.PORTLET_SCOPE);    }    /**     * 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 IllegalStateException    if this method is called on a     *                                  session which has been invalidated     * @throws IllegalArgumentException if name is <code>null</code>.     */    public void setAttribute(java.lang.String name, java.lang.Object value, int scope) throws IllegalStateException {        if (name == null) {            throw new IllegalArgumentException("name must not be null");        }        if (scope == PortletSession.APPLICATION_SCOPE) {            session.setAttribute(name, value);        } else {            session.setAttribute("javax.portlet.p." + request.getAttribute(SportletProperties.PORTLET_WINDOW_ID) + "?" + name, value);        }    }    /**     * 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 IllegalStateException    if this method is called on an     *                                  invalidated session     * @throws IllegalArgumentException if name is <code>null</code>.     * @return			the object with the specified name     */    public java.lang.Object getAttribute(String name, int scope) throws java.lang.IllegalStateException {        if (name == null) {            throw new IllegalArgumentException("name must not be null");        }        if (scope == PortletSession.APPLICATION_SCOPE) {            return session.getAttribute(name);        } else {            Object attribute = session.getAttribute("javax.portlet.p." + (String) request.getAttribute(SportletProperties.PORTLET_WINDOW_ID) + "?" + name);            if (attribute == null) {                // not sure, if this should be done for all attributes or only javax.servlet.                attribute = session.getAttribute(name);            }            return attribute;        }    }    /**     * 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 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) {        if (scope == PortletSession.APPLICATION_SCOPE) {            return session.getAttributeNames();        } else {            Enumeration attributes = session.getAttributeNames();            Vector portletAttributes = new Vector();            /* Fix that ONLY attributes of PORTLET_SCOPE are returned. */            int prefix_length = "javax.portlet.p.".length();            String wId = (String) request.getAttribute(SportletProperties.PORTLET_WINDOW_ID);            while (attributes.hasMoreElements()) {                String attribute = (String) attributes.nextElement();                int attributeScope = PortletSessionUtil.decodeScope(attribute);                if (attributeScope == PortletSession.PORTLET_SCOPE && attribute.startsWith(wId, prefix_length)) {                    String portletAttribute = PortletSessionUtil.decodeAttributeName(attribute);                    if (portletAttribute != null) { // it is in the portlet's namespace                        portletAttributes.add(portletAttribute);                    }                }            }            return portletAttributes.elements();        }    }    /**     * 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 IllegalStateException    if this method is called on a     *                                  session which has been invalidated     * @throws IllegalArgumentException if name is <code>null</code>.     */    public void removeAttribute(String name, int scope) throws java.lang.IllegalStateException {        if (name == null) {            throw new IllegalArgumentException("name must not be null");        }        if (scope == PortletSession.APPLICATION_SCOPE) {            session.removeAttribute(name);        } else {            session.removeAttribute("javax.portlet.p." + (String) request.getAttribute(SportletProperties.PORTLET_WINDOW_ID) + "?" + name);        }    }    /**     * 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) {        session.setMaxInactiveInterval(interval);    }    /**     * Returns the portlet application context associated with this session.     *     * @return the portlet application context     */    public PortletContext getPortletContext() {        return ctx;    }    // javax.servlet.http.HttpSession implementation ----------------------------------------------    public javax.servlet.ServletContext getServletContext() {        // TBD, open issue. it would be good if we could also implement the ServletContext interface at the PortletContextImpl        return session.getServletContext();    }    public javax.servlet.http.HttpSessionContext getSessionContext() {        return session.getSessionContext();    }    public Object getValue(String name) {        return this.getAttribute(name, PORTLET_SCOPE);    }    public String[] getValueNames() {        // TBD        return null;    }    public void putValue(String name, Object value) {        this.setAttribute(name, value, PORTLET_SCOPE);    }    public void removeValue(String name) {        this.removeAttribute(name, PORTLET_SCOPE);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -