public class MockHttpSession extends Object implements HttpSession
HttpSession
interface.
As of Spring 5.0, this set of mocks is designed on a Servlet 4.0 baseline.
Modifier and Type | Field and Description |
---|---|
static String |
SESSION_COOKIE_NAME
The session cookie name.
|
Constructor and Description |
---|
MockHttpSession()
Create a new MockHttpSession with a default
MockServletContext . |
MockHttpSession(ServletContext servletContext)
Create a new MockHttpSession.
|
MockHttpSession(ServletContext servletContext,
String id)
Create a new MockHttpSession.
|
Modifier and Type | Method and Description |
---|---|
void |
access() |
String |
changeSessionId()
As of Servlet 3.1, the id of a session can be changed.
|
void |
clearAttributes()
Clear all of this session's attributes.
|
void |
deserializeState(Serializable state)
Deserialize the attributes of this session from a state object created by
serializeState() . |
Object |
getAttribute(String name)
Returns the object bound with the specified name in this session, or
null if no object is bound under the name. |
Enumeration<String> |
getAttributeNames()
Returns an
Enumeration of String objects
containing the names of all the objects bound to this session. |
long |
getCreationTime()
Returns the time when this session was created, measured
in milliseconds since midnight January 1, 1970 GMT.
|
String |
getId()
Returns a string containing the unique identifier assigned
to this session.
|
long |
getLastAccessedTime()
Returns the last time the client sent a request associated with
this session, as the number of milliseconds since midnight
January 1, 1970 GMT, and marked by the time the container received the
request.
|
int |
getMaxInactiveInterval()
Returns the maximum time interval, in seconds, that
the servlet container will keep this session open between
client accesses.
|
ServletContext |
getServletContext()
Returns the ServletContext to which this session belongs.
|
HttpSessionContext |
getSessionContext() |
Object |
getValue(String name) |
String[] |
getValueNames() |
void |
invalidate()
Invalidates this session then unbinds any objects bound to it.
|
boolean |
isInvalid() |
boolean |
isNew()
Returns
true if the client does not yet know about the
session or if the client chooses not to join the session. |
void |
putValue(String name,
Object value) |
void |
removeAttribute(String name)
Removes the object bound with the specified name from
this session.
|
void |
removeValue(String name) |
Serializable |
serializeState()
Serialize the attributes of this session into an object that can be
turned into a byte array with standard Java serialization.
|
void |
setAttribute(String name,
Object value)
Binds an object to this session, using the name specified.
|
void |
setMaxInactiveInterval(int interval)
Specifies the time, in seconds, between client requests before the
servlet container will invalidate this session.
|
void |
setNew(boolean value) |
public static final String SESSION_COOKIE_NAME
public MockHttpSession()
MockServletContext
.MockServletContext
public MockHttpSession(@Nullable ServletContext servletContext)
servletContext
- the ServletContext that the session runs inpublic MockHttpSession(@Nullable ServletContext servletContext, @Nullable String id)
servletContext
- the ServletContext that the session runs inid
- a unique identifier for this sessionpublic long getCreationTime()
javax.servlet.http.HttpSession
getCreationTime
in interface HttpSession
long
specifying
when this session was created,
expressed in
milliseconds since 1/1/1970 GMTpublic String getId()
javax.servlet.http.HttpSession
getId
in interface HttpSession
public String changeSessionId()
public void access()
public long getLastAccessedTime()
javax.servlet.http.HttpSession
Actions that your application takes, such as getting or setting a value associated with the session, do not affect the access time.
getLastAccessedTime
in interface HttpSession
long
representing the last time
the client sent a request associated
with this session, expressed in
milliseconds since 1/1/1970 GMTpublic ServletContext getServletContext()
javax.servlet.http.HttpSession
getServletContext
in interface HttpSession
public void setMaxInactiveInterval(int interval)
javax.servlet.http.HttpSession
An interval value of zero or less indicates that the session should never timeout.
setMaxInactiveInterval
in interface HttpSession
interval
- An integer specifying the number
of secondspublic int getMaxInactiveInterval()
javax.servlet.http.HttpSession
setMaxInactiveInterval
method.
A return value of zero or less indicates that the session will never timeout.
getMaxInactiveInterval
in interface HttpSession
HttpSession.setMaxInactiveInterval(int)
public HttpSessionContext getSessionContext()
getSessionContext
in interface HttpSession
HttpSessionContext
for this session.public Object getAttribute(String name)
javax.servlet.http.HttpSession
null
if no object is bound under the name.getAttribute
in interface HttpSession
name
- a string specifying the name of the objectpublic Object getValue(String name)
getValue
in interface HttpSession
name
- a string specifying the name of the objectpublic Enumeration<String> getAttributeNames()
javax.servlet.http.HttpSession
Enumeration
of String
objects
containing the names of all the objects bound to this session.getAttributeNames
in interface HttpSession
Enumeration
of
String
objects specifying the
names of all the objects bound to
this sessionpublic String[] getValueNames()
getValueNames
in interface HttpSession
String
objects specifying the
names of all the objects bound to
this sessionpublic void setAttribute(String name, @Nullable Object value)
javax.servlet.http.HttpSession
After this method executes, and if the new object
implements HttpSessionBindingListener
,
the container calls
HttpSessionBindingListener.valueBound
. The container then
notifies any HttpSessionAttributeListener
s in the web
application.
If an object was already bound to this session of this name
that implements HttpSessionBindingListener
, its
HttpSessionBindingListener.valueUnbound
method is called.
If the value passed in is null, this has the same effect as calling
removeAttribute()
.
setAttribute
in interface HttpSession
name
- the name to which the object is bound;
cannot be nullvalue
- the object to be boundpublic void putValue(String name, Object value)
putValue
in interface HttpSession
name
- the name to which the object is bound;
cannot be nullvalue
- the object to be bound; cannot be nullpublic void removeAttribute(String name)
javax.servlet.http.HttpSession
After this method executes, and if the object
implements HttpSessionBindingListener
,
the container calls
HttpSessionBindingListener.valueUnbound
. The container
then notifies any HttpSessionAttributeListener
s in the web
application.
removeAttribute
in interface HttpSession
name
- the name of the object to
remove from this sessionpublic void removeValue(String name)
removeValue
in interface HttpSession
name
- the name of the object to
remove from this sessionpublic void clearAttributes()
public void invalidate()
invalidate
in interface HttpSession
IllegalStateException
- if this method is called on an already invalidated sessionpublic boolean isInvalid()
public void setNew(boolean value)
public boolean isNew()
javax.servlet.http.HttpSession
true
if the client does not yet know about the
session or if the client chooses not to join the session. 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 on each request.isNew
in interface HttpSession
true
if the
server has created a session,
but the client has not yet joinedpublic Serializable serializeState()
public void deserializeState(Serializable state)
serializeState()
.state
- a representation of this session's serialized state