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

📄 servletunithttpsession.java

📁 这是远程web服务调用的一个包,可以将JSP直接作为服务
💻 JAVA
字号:
package com.meterware.servletunit;/********************************************************************************************************************* $Id: ServletUnitHttpSession.java,v 1.12 2004/09/23 22:48:19 russgold Exp $** Copyright (c) 2000-2004 Russell Gold** Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and* to permit persons to whom the Software is furnished to do so, subject to the following conditions:** The above copyright notice and this permission notice shall be included in all copies or substantial portions * of the Software.** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO* THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER* DEALINGS IN THE SOFTWARE.********************************************************************************************************************/import java.util.Date;import java.util.Enumeration;import java.util.Hashtable;import java.net.URL;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionContext;import javax.servlet.ServletContext;class ServletUnitHttpSession implements HttpSession {    final static public String SESSION_COOKIE_NAME = "JSESSION";    private ServletContext _servletContext;    private SessionListenerDispatcher _listenerDispatcher;    ServletUnitHttpSession( ServletContext servletContext, SessionListenerDispatcher listenerDispatcher ) {        _servletContext     = servletContext;        _listenerDispatcher = listenerDispatcher;    }    /**     * Returns the maximum time interval, in seconds, that the servlet engine will keep this session open      * between client requests. You can set the maximum time interval with the setMaxInactiveInterval method.     **/    public int getMaxInactiveInterval() {        if (_invalid) throw new IllegalStateException();        return _maxInactiveInterval;    }    /**     * Specifies the maximum length of time, in seconds, that the servlet engine keeps this session      * if no user requests have been made of the session.     **/    public void setMaxInactiveInterval( int interval ) {        if (_invalid) throw new IllegalStateException();        _maxInactiveInterval = interval;    }    /**     * Returns a string containing the unique identifier assigned to this session.      * The identifier is assigned by the servlet engine and is implementation dependent.     **/    public String getId() {        if (_invalid) throw new IllegalStateException();        return _id;    }    /**     * Returns the time when this session was created, measured     * in milliseconds since midnight January 1, 1970 GMT.     *     * @exception IllegalStateException		if you attempt to get the session's     *						creation time after the session has     *						been invalidated     **/    public long getCreationTime() {        if (_invalid) throw new IllegalStateException();        return _creationTime;    }    /**     * Returns the last time the client sent a request associated with this session,      * as the number of milliseconds since midnight January 1, 1970 GMT.     **/     public long getLastAccessedTime() {        if (_invalid) throw new IllegalStateException();        return _lastAccessedTime;    }    /**     * Returns true if the Web server has created a session but the client      * has not yet joined. For example, if the server used only     * cookie-based sessions, and the client had disabled the use of cookies,      * then a session would be new.     **/    public boolean isNew() {        return _isNew;    }    /**     * Invalidates this session and unbinds any objects bound to it.     **/    public void invalidate() {        _listenerDispatcher.sendSessionDestroyed( this );        _invalid = true;        _values.clear();    }    /**     * @deprecated no replacement.     **/    public HttpSessionContext getSessionContext() {        return null;    }    /**     * @deprecated as of JSDK 2.2, use getAttribute     **/    public Object getValue( String name ) {        return getAttribute( name );    }    /**     * @deprecated as of JSDK 2.2, use setAttribute     **/    public void putValue( String name, Object value ) {        setAttribute( name, value );    }    /**     * @deprecated as of JSDK 2.2, use removeAttribute     **/     public void removeValue( String name ) {        removeAttribute( name );    }    /**     * @deprecated as of JSDK 2.2, use getAttributeNames.     **/    public String[] getValueNames() {        if (_invalid) throw new IllegalStateException();        return (String[]) _values.keySet().toArray( new String[ _values.size() ]);    }    /**     * Returns the object bound with the specified name in this session or null if no object of that name exists.     **/    public Object getAttribute( String name ) {        if (_invalid) throw new IllegalStateException();        return _values.get( name );    }    /**     * Binds an object to this session, using the name specified. If an object of the same name      * is already bound to the session, the object is replaced.     **/    public void setAttribute( String name, Object value ) {        if (_invalid) throw new IllegalStateException();        if (value == null) {            removeAttribute( name );        } else if (!_values.containsKey( name )) {            _values.put( name, value );            _listenerDispatcher.sendAttributeAdded( this, name, value );        } else {            Object oldValue = _values.get( name );            _values.put( name, value );            _listenerDispatcher.sendAttributeReplaced( this, name, oldValue );        }    }    /**     * Removes the object bound with the specified name from this session. If the session does not      * have an object bound with the specified name, this method does nothing.     **/     public void removeAttribute( String name ) {        if (_invalid) throw new IllegalStateException();        if (_values.containsKey( name )) {            Object oldValue = _values.get( name );            _values.remove( name );            _listenerDispatcher.sendAttributeRemoved( this, name, oldValue );        }    }    /**     * Returns an array containing the names of all the objects bound to this session.      * This method is useful, for example, when you want to delete all the objects bound to this session.     **/    public Enumeration getAttributeNames() {        if (_invalid) throw new IllegalStateException();        return _values.keys();    }//---------------------------- methods added to HttpSession in JSDK 2.3 ----------------------------------------    /**     * Returns the ServletContext to which this session belongs.     *     * @since 1.3     **/    public ServletContext getServletContext() {        return _servletContext;    }//-------------------------------------------- package members -------------------------------------------------    /**     * This method should be invoked when a servlet joins an existing session. It will update the last access time     * and mark the session as no longer new.     **/    void access() {        _lastAccessedTime = new Date().getTime();        _isNew = false;    }    URL getOriginalURL() {        return _originalURL;    }    void setOriginalURL( URL originalURL ) {        _originalURL = originalURL;    }    /**     * Sets the authenticated user information for a session.     *     * @param userName the name the user supplied when logging in     * @param roles an array of role names assigned to the user     **/    void setUserInformation( String userName, String[] roles ) {        _userName = userName;        _roles    = roles;    }    String getUserName() {        return _userName;    }    String[] getRoles() {        return _roles;    }    boolean isInvalid() {        return _invalid;    }//------------------------------------- private members ---------------------------------------    private static int _NextID = 1;    private final long _creationTime = new Date().getTime();    private final String _id = Integer.toString( _NextID++ );    private int       _maxInactiveInterval;    private long      _lastAccessedTime = new Date().getTime();    private boolean   _invalid;    private Hashtable _values = new Hashtable();    private boolean   _isNew = true;    private String    _userName;    private String[]  _roles;    private URL       _originalURL;}

⌨️ 快捷键说明

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