protected void clearSession() {
SessionMap sessionMap = (SessionMap) ActionContext.getContext()
.getSession();
try {
sessionMap.clear();
} catch (Exception e) {
//
}
HttpSession httpSession = this.getServletRequest().getSession();
try {
httpSession.invalidate();
} catch (Exception e) {
//
}
}
doLogin
public String doLogin() {
clearSession();
String loginUsername = this.getLoginUsername();
String loginPassword = this.getLoginPassword();
if (StringUtils.isBlank(loginUsername)) {
setMessage("用户名必填项");
return INPUT;
} else if (StringUtils.isBlank(loginPassword)) {
setMessage("密码必填项");
return INPUT;
}
try {
setSessionAttribute(SESSION_ATTRIBUTE_KEY_USER,user);
setCookiesAttribute(COOKIES_ATTRIBUTE_KEY_EMPLOYEE_NO, loginUsername);
return "home";
} catch (WebApplicationRuntimeException e) {
this.setMessage(e.getMessage());
}
return INPUT;
}
loginout
public String execute() {
try {
clearSession();
ReserverCookie reserverCookie = new ReserverCookie();
reserverCookie.removeCookie(this.getServletRequest(), getServletResponse());
} catch (Exception e) {
}
return "login";
}
public void removeCookie(HttpServletRequest request,
HttpServletResponse response) {
Cookie cookie = getCookie(request);
if (cookie != null) {
cookie = new Cookie(COOKIE_NAME, "");
cookie.setMaxAge(0);
cookie.setValue("");
cookie.setPath("/");
cookie.setDomain(CSAIR_COM);
response.addCookie(cookie);
}
}
分享到:
相关推荐
**Session注销过程**: 1. 用户点击注销按钮,发送注销请求到服务器。 2. `Servlet`接收到注销请求,根据`sessionId`找到相应的`session`。 3. 清除`session`中的所有用户信息,或者直接销毁该`session`。 4. 更新...
在Web后端开发中,会话(Session)跟踪技术是一种常用的方法,用于在客户端与服务器之间维护用户状态,尤其在用户登录和注销过程中扮演着重要角色。本文将深入探讨Session的工作原理、如何实现用户登录与注销,以及...
当用户点击注销按钮时,清除所有与当前用户相关的Session变量,然后重定向回登录页面: ```php session_unset(); session_destroy(); header("Location: login.php"); exit; ``` 9. **安全注意事项**: - ...
**三、Session注销** 注销Session变量通常使用`unset()`函数来实现,就像上面的例子所示。`unset($_SESSION['username'])`将从`$_SESSION`数组中移除`username`,使其值变为未定义。然而,这并不意味着会话本身被...
理解如何正确地注销和清除session对于管理用户状态和保护数据安全至关重要。 首先,session_start()是一个PHP函数,它必须在脚本的开始处被调用,才能在该页面中使用session。在调用session_start()后,服务器会...
本文将详细介绍如何使用Django的Session功能实现简单的登录和注销过程。首先,我们要了解Django中的Session是如何工作的。 Session是服务器端存储用户状态的一种方式,通常与Cookie配合使用。当用户访问网站并登录...
### 解决登录注销后退失效 #### 背景与问题描述 在Web应用程序中,登录和注销功能是用户管理中最基本也是最重要的部分之一。在实际应用中,常常会遇到一个棘手的问题:用户在成功注销后,如果点击浏览器的“后退”...
注销Session的过程,即“session注销”,主要是销毁与当前用户相关的Session数据,以及清除浏览器中的Session ID。在提供的代码片段中,可以看到以下几步关键操作: 1. **`session_start()`**:这是开始Session的...
同时,也要清除任何与用户会话相关的其他数据,如Token或Session ID。 - **提示信息**:提供明确的反馈告知用户注销已成功,可以是Toast或者snackbar消息。 - **重新加载页面**:注销后,应强制刷新页面或重定向到...
登录和注销的操作流程类似。 4. **JSP(JavaServer Pages)**: JSP是Java的一种动态网页技术,可以将HTML、CSS、JavaScript与Java代码混合编写。在这个实例中,JSP可能用于创建视图,比如login.jsp、register.jsp...
- **注销**:用户点击注销按钮,Action清除session中的用户信息,可能跳转到登录页面,让用户重新登录。在Spring中,可能还需要清理与用户相关的缓存或其他资源。 压缩包中的文件可能包括以下部分: - Struts2配置...
js 销毁session,session js 销毁session,session
CASClient 是一种开源的单点登录系统,能够提供统一的登录和注销机制。但是在集群环境中应用 CASClient 时,可能会出现一些问题,例如 Session 信息不一致、统一注销的难题等。 Session 信息的问题 在集群环境中...
- 重复登录控制:当检测到同一用户在另一处尝试登录时,触发注销逻辑,清理旧Session,并可能向旧会话发送注销通知。 - 会话超时设置:可能会包含对Session生命周期的管理,例如设置合理的超时时间,防止长时间无...
- 安全隐患:未注销的Session可能被恶意利用,导致非法登录。 - 性能问题:长期不清理的Session会占用大量内存资源,对服务器造成负担。 #### 如何清除Session 根据提供的内容,我们可以总结出两种主要方式来清除...
注销时,将session中的用户标识或登录状态设置为null,从而结束用户会话。 【JDBC】JDBC是Java访问数据库的标准接口,提供了连接数据库、执行SQL语句、处理结果集等功能。在本实例中,我们需要使用JDBC建立到数据库...
本篇文章将详细介绍如何基于Session实现用户登录和注销功能,并对比Cookie和Session的主要区别。 首先,我们要了解Session的工作原理。Session是服务器端的技术,它会在用户首次请求时创建一个唯一的Session ID,...