Class FileStore
java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.session.StoreBase
org.apache.catalina.session.FileStore
Concrete implementation of the Store interface that utilizes a file per saved Session in a configured
directory. Sessions that are saved are still subject to being expired based on inactivity.
-
Nested Class Summary
Nested classes/interfaces inherited from interface Lifecycle
Lifecycle.SingleUse -
Field Summary
Fields inherited from interface Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Remove all Sessions from this Store.Returns the directory path where session files are stored.intgetSize()Return the number of Sessions present in this Store.Return the name for this Store, used for logging.Returns the name used for the background thread that processes this store.String[]keys()Return an array containing the session identifiers of all Sessions currently saved in this Store.Load and return the Session associated with the specified session identifier from this Store, without removing it.voidRemove the Session with the specified session identifier from this Store, if present.voidSave the specified Session into this Store.voidsetDirectory(String path) Set the directory path for this Store.Methods inherited from class StoreBase
addPropertyChangeListener, destroyInternal, expiredKeys, getManager, getObjectInputStream, initInternal, processExpires, removePropertyChangeListener, setManager, startInternal, stopInternal, toStringMethods inherited from class LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
-
Constructor Details
-
FileStore
public FileStore()Default constructor for FileStore.
-
-
Method Details
-
getDirectory
Returns the directory path where session files are stored.- Returns:
- The directory path for this Store
-
setDirectory
Set the directory path for this Store.- Parameters:
path- The new directory path
-
getThreadName
Returns the name used for the background thread that processes this store.- Returns:
- The thread name for this Store
-
getStoreName
Description copied from class:StoreBaseReturn the name for this Store, used for logging.- Overrides:
getStoreNamein classStoreBase- Returns:
- the store name
-
getSize
Description copied from interface:StoreReturn the number of Sessions present in this Store.- Returns:
- the number of Sessions
- Throws:
IOException- if an input/output error occurs
-
clear
Description copied from interface:StoreRemove all Sessions from this Store.- Throws:
IOException- if an input/output error occurs
-
keys
Description copied from interface:StoreReturn an array containing the session identifiers of all Sessions currently saved in this Store. If there are no such Sessions, a zero-length array is returned.- Returns:
- the session identifiers
- Throws:
IOException- if an input/output error occurred
-
load
Description copied from interface:StoreLoad and return the Session associated with the specified session identifier from this Store, without removing it. If there is no such stored Session, returnnull.Implementations should expect, and correctly handle, concurrent calls to any method but in particular calls to
#load(String),#save(Session)and#remove(String)for the same session.The session ID is user provided so stores must treat it as untrusted data.
- Parameters:
id- Session identifier of the session to load- Returns:
- the loaded Session instance
- Throws:
ClassNotFoundException- if a deserialization error occursIOException- if an input/output error occurs
-
remove
Description copied from interface:StoreRemove the Session with the specified session identifier from this Store, if present. If no such Session is present, this method takes no action.Implementations should expect, and correctly handle, concurrent calls to any method but in particular calls to
#load(String),#save(Session)and#remove(String)for the same session.The session ID is user provided so stores must treat it as untrusted data.
- Parameters:
id- Session identifier of the Session to be removed- Throws:
IOException- if an input/output error occurs
-
save
Description copied from interface:StoreSave the specified Session into this Store. Any previously saved information for the associated session identifier is replaced.Implementations should expect, and correctly handle, concurrent calls to any method but in particular calls to
#load(String),#save(Session)and#remove(String)for the same session.- Parameters:
session- Session to be saved- Throws:
IOException- if an input/output error occurs
-