HttpSession.java
上传用户:tanyanyong
上传日期:2013-06-23
资源大小:1355k
文件大小:13k
源码类别:

电子政务应用

开发平台:

MultiPlatform

  1. /*
  2.  * The Apache Software License, Version 1.1
  3.  *
  4.  * Copyright (c) 1999 The Apache Software Foundation.  All rights 
  5.  * reserved.
  6.  *
  7.  * Redistribution and use in source and binary forms, with or without
  8.  * modification, are permitted provided that the following conditions
  9.  * are met:
  10.  *
  11.  * 1. Redistributions of source code must retain the above copyright
  12.  *    notice, this list of conditions and the following disclaimer. 
  13.  *
  14.  * 2. Redistributions in binary form must reproduce the above copyright
  15.  *    notice, this list of conditions and the following disclaimer in
  16.  *    the documentation and/or other materials provided with the
  17.  *    distribution.
  18.  *
  19.  * 3. The end-user documentation included with the redistribution, if
  20.  *    any, must include the following acknowlegement:  
  21.  *       "This product includes software developed by the 
  22.  *        Apache Software Foundation (http://www.apache.org/)."
  23.  *    Alternately, this acknowlegement may appear in the software itself,
  24.  *    if and wherever such third-party acknowlegements normally appear.
  25.  *
  26.  * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
  27.  *    Foundation" must not be used to endorse or promote products derived
  28.  *    from this software without prior written permission. For written 
  29.  *    permission, please contact apache@apache.org.
  30.  *
  31.  * 5. Products derived from this software may not be called "Apache"
  32.  *    nor may "Apache" appear in their names without prior written
  33.  *    permission of the Apache Group.
  34.  *
  35.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38.  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46.  * SUCH DAMAGE.
  47.  * ====================================================================
  48.  *
  49.  * This software consists of voluntary contributions made by many
  50.  * individuals on behalf of the Apache Software Foundation.  For more
  51.  * information on the Apache Software Foundation, please see
  52.  * <http://www.apache.org/>.
  53.  *
  54.  * ====================================================================
  55.  *
  56.  * This source code implements specifications defined by the Java
  57.  * Community Process. In order to remain compliant with the specification
  58.  * DO NOT add / change / or delete method signatures!
  59.  */
  60. package javax.servlet.http;
  61. import java.util.Enumeration;
  62. /**
  63.  *
  64.  * Provides a way to identify a user across more than one page
  65.  * request or visit to a Web site and to store information about that user.
  66.  *
  67.  * <p>The servlet container uses this interface to create a session
  68.  * between an HTTP client and an HTTP server. The session persists
  69.  * for a specified time period, across more than one connection or
  70.  * page request from the user. A session usually corresponds to one 
  71.  * user, who may visit a site many times. The server can maintain a 
  72.  * session in many ways such as using cookies or rewriting URLs.
  73.  *
  74.  * <p>This interface allows servlets to 
  75.  * <ul>
  76.  * <li>View and manipulate information about a session, such as
  77.  *     the session identifier, creation time, and last accessed time
  78.  * <li>Bind objects to sessions, allowing user information to persist 
  79.  *     across multiple user connections
  80.  * </ul>
  81.  *
  82.  * <p>When an application stores an object in or removes an object from a
  83.  * session, the session checks whether the object implements
  84.  * {@link HttpSessionBindingListener}. If it does, 
  85.  * the servlet notifies the object that it has been bound to or unbound 
  86.  * from the session.
  87.  * 
  88.  * <p>A servlet should be able to handle cases in which
  89.  * the client does not choose to join a session, such as when cookies are
  90.  * intentionally turned off. Until the client joins the session,
  91.  * <code>isNew</code> returns <code>true</code>.  If the client chooses 
  92.  * not to join
  93.  * the session, <code>getSession</code> will return a different session
  94.  * on each request, and <code>isNew</code> will always return
  95.  * <code>true</code>.
  96.  *
  97.  * <p>Session information is scoped only to the current web application
  98.  * (<code>ServletContext</code>), so information stored in one context
  99.  * will not be directly visible in another.
  100.  *
  101.  * @author Various
  102.  * @version $Version$
  103.  *
  104.  *
  105.  * @see  HttpSessionBindingListener
  106.  * @see  HttpSessionContext
  107.  *
  108.  */
  109. public interface HttpSession {
  110.     /**
  111.      *
  112.      * Returns the time when this session was created, measured
  113.      * in milliseconds since midnight January 1, 1970 GMT.
  114.      *
  115.      * @return a <code>long</code> specifying
  116.      *  when this session was created,
  117.      * expressed in 
  118.      * milliseconds since 1/1/1970 GMT
  119.      *
  120.      * @exception IllegalStateException if this method is called on an
  121.      * invalidated session
  122.      *
  123.      */
  124.     public long getCreationTime();
  125.     
  126.     
  127.     
  128.     
  129.     /**
  130.      *
  131.      * Returns a string containing the unique identifier assigned 
  132.      * to this session. The identifier is assigned 
  133.      * by the servlet container and is implementation dependent.
  134.      * 
  135.      * @return a string specifying the identifier
  136.      * assigned to this session
  137.      *
  138.      * @exeption IllegalStateException if this method is called on an
  139.      * invalidated session
  140.      *
  141.      */
  142.     public String getId();
  143.     
  144.     
  145.     
  146.     /**
  147.      *
  148.      * Returns the last time the client sent a request associated with
  149.      * this session, as the number of milliseconds since midnight
  150.      * January 1, 1970 GMT. 
  151.      *
  152.      * <p>Actions that your application takes, such as getting or setting
  153.      * a value associated with the session, do not affect the access
  154.      * time.
  155.      *
  156.      * @return a <code>long</code>
  157.      * representing the last time 
  158.      * the client sent a request associated
  159.      * with this session, expressed in 
  160.      * milliseconds since 1/1/1970 GMT
  161.      *
  162.      * @exeption IllegalStateException if this method is called on an
  163.      * invalidated session
  164.      *
  165.      */
  166.     public long getLastAccessedTime();
  167.     
  168.     
  169.     
  170.     /**
  171.      *
  172.      * Specifies the time, in seconds, between client requests before the 
  173.      * servlet container will invalidate this session.  A negative time
  174.      * indicates the session should never timeout.
  175.      *
  176.      * @param interval An integer specifying the number
  177.      *  of seconds 
  178.      *
  179.      */
  180.     
  181.     public void setMaxInactiveInterval(int interval);
  182.    /**
  183.     * Returns the maximum time interval, in seconds, that 
  184.     * the servlet container will keep this session open between 
  185.     * client accesses. After this interval, the servlet container
  186.     * will invalidate the session.  The maximum time interval can be set
  187.     * with the <code>setMaxInactiveInterval</code> method.
  188.     * A negative time indicates the session should never timeout.
  189.     *  
  190.     *
  191.     * @return an integer specifying the number of
  192.     * seconds this session remains open
  193.     * between client requests
  194.     *
  195.     * @see #setMaxInactiveInterval
  196.     *
  197.     *
  198.     */
  199.     public int getMaxInactiveInterval();
  200.     
  201.     
  202.    /**
  203.     *
  204.     * @deprecated  As of Version 2.1, this method is
  205.     * deprecated and has no replacement.
  206.     * It will be removed in a future
  207.     * version of the Java Servlet API.
  208.     *
  209.     */
  210.     public HttpSessionContext getSessionContext();
  211.     
  212.     
  213.     
  214.     
  215.     /**
  216.      *
  217.      * Returns the object bound with the specified name in this session, or
  218.      * <code>null</code> if no object is bound under the name.
  219.      *
  220.      * @param name a string specifying the name of the object
  221.      *
  222.      * @return the object with the specified name
  223.      *
  224.      * @exception IllegalStateException if this method is called on an
  225.      * invalidated session
  226.      *
  227.      */
  228.   
  229.     public Object getAttribute(String name);
  230.     
  231.     
  232.     
  233.     
  234.     /**
  235.      *
  236.      * @deprecated  As of Version 2.2, this method is
  237.      *  replaced by {@link #getAttribute}.
  238.      *
  239.      * @param name a string specifying the name of the object
  240.      *
  241.      * @return the object with the specified name
  242.      *
  243.      * @exception IllegalStateException if this method is called on an
  244.      * invalidated session
  245.      *
  246.      */
  247.   
  248.     public Object getValue(String name);
  249.     
  250.     
  251.     
  252.     /**
  253.      *
  254.      * Returns an <code>Enumeration</code> of <code>String</code> objects
  255.      * containing the names of all the objects bound to this session. 
  256.      *
  257.      * @return an <code>Enumeration</code> of 
  258.      * <code>String</code> objects specifying the
  259.      * names of all the objects bound to
  260.      * this session
  261.      *
  262.      * @exception IllegalStateException if this method is called on an
  263.      * invalidated session
  264.      *
  265.      */
  266.     
  267.     public Enumeration getAttributeNames();
  268.     
  269.     
  270.     
  271.     /**
  272.      *
  273.      * @deprecated  As of Version 2.2, this method is
  274.      *  replaced by {@link #getAttributeNames}
  275.      *
  276.      * @return an array of <code>String</code>
  277.      * objects specifying the
  278.      * names of all the objects bound to
  279.      * this session
  280.      *
  281.      * @exception IllegalStateException if this method is called on an
  282.      * invalidated session
  283.      *
  284.      */
  285.     
  286.     public String[] getValueNames();
  287.     
  288.     
  289.     
  290.     /**
  291.      * Binds an object to this session, using the name specified.
  292.      * If an object of the same name is already bound to the session,
  293.      * the object is replaced.
  294.      *
  295.      * <p>After this method executes, and if the object
  296.      * implements <code>HttpSessionBindingListener</code>,
  297.      * the container calls 
  298.      * <code>HttpSessionBindingListener.valueBound</code>.
  299.      *
  300.      * @param name the name to which the object is bound;
  301.      * cannot be null
  302.      *
  303.      * @param value the object to be bound; cannot be null
  304.      *
  305.      * @exception IllegalStateException if this method is called on an
  306.      * invalidated session
  307.      *
  308.      */
  309.  
  310.     public void setAttribute(String name, Object value);
  311.     
  312.     
  313.     /**
  314.      *
  315.      * @deprecated  As of Version 2.2, this method is
  316.      *  replaced by {@link #setAttribute}
  317.      *
  318.      * @param name the name to which the object is bound;
  319.      * cannot be null
  320.      *
  321.      * @param value the object to be bound; cannot be null
  322.      *
  323.      * @exception IllegalStateException if this method is called on an
  324.      * invalidated session
  325.      *
  326.      */
  327.  
  328.     public void putValue(String name, Object value);
  329.     /**
  330.      *
  331.      * Removes the object bound with the specified name from
  332.      * this session. If the session does not have an object
  333.      * bound with the specified name, this method does nothing.
  334.      *
  335.      * <p>After this method executes, and if the object
  336.      * implements <code>HttpSessionBindingListener</code>,
  337.      * the container calls 
  338.      * <code>HttpSessionBindingListener.valueUnbound</code>.
  339.      * 
  340.      * 
  341.      *
  342.      * @param name the name of the object to
  343.      * remove from this session
  344.      *
  345.      * @exception IllegalStateException if this method is called on an
  346.      * invalidated session
  347.      */
  348.     public void removeAttribute(String name);
  349.     /**
  350.      *
  351.      * @deprecated  As of Version 2.2, this method is
  352.      *  replaced by {@link #removeAttribute}
  353.      *
  354.      * @param name the name of the object to
  355.      * remove from this session
  356.      *
  357.      * @exception IllegalStateException if this method is called on an
  358.      * invalidated session
  359.      */
  360.     public void removeValue(String name);
  361.     /**
  362.      *
  363.      * Invalidates this session and unbinds any objects bound
  364.      * to it.
  365.      *
  366.      * @exception IllegalStateException if this method is called on an
  367.      * already invalidated session
  368.      *
  369.      */
  370.     public void invalidate();
  371.     
  372.     
  373.     
  374.     
  375.     /**
  376.      *
  377.      * Returns <code>true</code> if the client does not yet know about the
  378.      * session or if the client chooses not to join the session.  For 
  379.      * example, if the server used only cookie-based sessions, and
  380.      * the client had disabled the use of cookies, then a session would
  381.      * be new on each request.
  382.      *
  383.      * @return  <code>true</code> if the 
  384.      * server has created a session, 
  385.      * but the client has not yet joined
  386.      *
  387.      * @exception IllegalStateException if this method is called on an
  388.      * already invalidated session
  389.      *
  390.      */
  391.     public boolean isNew();
  392. }