Zhiqim Httpd即知启蒙WEB容器,是Zhiqim Framework面向WEB开发的多例服务,提供更简洁配置、积木式组件模块和天然的模型模板设计。
HttpSessionManager.java5KB
/*
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[遇见知启蒙,邂逅框架梦]
*
* https://zhiqim.org/project/zhiqim_framework/zhiqim_httpd.htm
*
* Zhiqim Httpd is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
package org.zhiqim.httpd;
import java.util.List;
import org.zhiqim.httpd.model.HttpDomainPortPath;
import org.zhiqim.kernel.paging.PageResult;
/**
* HTTP会话管理器接口<br><br>
* 1.要求实现启动方法<br>
* 2.设置会话值<br>
* 3.获取会话值<br>
* 4.删除会话值<br>
* 5.遍历会话值
*
* @version v1.0.0 @author zouzhigang 2014-3-21 新建与整理
*/
public interface HttpSessionManager extends HttpdConstants
{
/******************************************************************************************/
//上下文环境关联
/******************************************************************************************/
/** 设置上下文环境对象 */
public void setContext(HttpContext context);
/** 获取上下文环境对象 */
public HttpContext getContext();
/******************************************************************************************/
//开启和关闭
/******************************************************************************************/
/** 开启会话管理 */
public void open();
/** 关闭会话管理 */
public void close();
/******************************************************************************************/
//设置参数部分
/******************************************************************************************/
/** 设置会话超时时长 */
public void setSessionTimeout(int sessionTimeout);
/** 获取会话超时时长 */
public int getSessionTimeout();
/** 设置会话编号名称 */
public void setSessionIdName(String sessionIdName);
/** 获取会话编号名称 */
public String getSessionIdName();
/** 设置会话编号标记 */
public void setSessionIdMark(String sessionIdMark);
/** 判断是否会话编号标记 */
public boolean chkSessionIdMark(String mark, HttpDomainPortPath domainPortPath);
/** 设置会话必需 */
public void setSessionMust(String sessionMust);
/** 设置会话无需 */
public void setSessionNot(String sessionNot);
/** 设置会话参数 */
public void setSessionParameter(String sessionParameter);
/******************************************************************************************/
//新建 & 保存 & 获取 & 失效 更新会话
/******************************************************************************************/
/** 是否是需要会话 */
public boolean needSession(String path);
/** 新建会话 */
public HttpSession newSession(HttpDomainPortPath domainPortPath, String sessionIp, String userAgent);
/** 保存会话 */
public void setSession(HttpSession session);
/** 获取会话 */
public HttpSession getSession(String sessionId);
/** 判断会话是否存在 */
public boolean hasSession(String sessionId);
/** 通过会话编号使会话失效 */
public void invalidateSession(String sessionId);
/** 更新会话最后访问时间 */
public void updateLastAccessed(String sessionId);
/** 更新会话信息 */
public void updateInfo(String sessionId, String sessionIp, String userAgent);
/** 更新会话并返回会话 */
public HttpSession getSessionByUpdate(String sessionId, String sessionIp, String userAgent);
/******************************************************************************************/
//会话查询和统计
/******************************************************************************************/
/** 会话数 */
public int size();
/** 获取会话列表 */
public List<HttpSession> getSessionList();
/** 获取会话分页信息 */
public PageResult<HttpSession> getSessionPage(int pageNo, int pageSize);
/******************************************************************************************/
//会话用户查询和统计
/******************************************************************************************/
/** 会话登录数 */
public int sizeUser();
/** 是否有会话名称对应的会话 */
public boolean hasSessionName(String sessionName);
/** 获取会话登录用户列表,指定会话用户类名(如前后端共用session管理器的情况) */
public List<HttpSessionUser> getSessionUserList();
/** 获取会话登录用户分页信息,指定会话用户类名(如前后端共用session管理器的情况) */
public PageResult<HttpSessionUser> getSessionUserPage(int pageNo, int pageSize);
}