一个项目客户提出了一个很纠结的需求:
在登录系统后,用户就算不点击安全退出的按钮或者超链接,
关闭浏览器的这个标签或者关闭这个页面,就在后台自动退出,
开始打算用js 监听 页面事件,但是失败了,
最后用Java代码 分析 每次请求 的 Referer 的值,也就是当前请求的父级请求.
部分代码:
@Override
public String intercept(ActionInvocation arg0) throws Exception {
Object tempu= arg0.getInvocationContext().getSession().get("user");
if(tempu == null)
return INPUT;
HttpServletRequest request = (HttpServletRequest)arg0.getInvocationContext().get(ServletActionContext.HTTP_REQUEST);
String url = request.getRequestURI();
String perant = request.getHeader("Referer");
if(skipPath(url)){
return arg0.invoke();
}
if(perant == null){
request.getSession().removeAttribute("user");
return INPUT;
}
}
分享到:
相关推荐
当用户登录后,会将一些关键信息(如用户ID)存储在Session对象中。为了判断用户是否已退出,我们需要监听Session结束的事件。在Global.asax文件中,我们可以添加以下代码: ```csharp protected void Session_End...
在Java Web应用中,实现用户登录后能够通过点击“退出登录”按钮来注销当前登录状态的功能。这一功能是Web应用程序中非常常见且重要的一个环节,它不仅提高了用户体验,还增强了系统的安全性。 #### 二、实现思路 ...
JavaWeb中的Session是一种重要的会话跟踪机制,常用于在用户登录之后存储用户的认证信息,确保用户在多个页面间切换时能保持登录状态。本篇文章将详细介绍如何基于Session实现用户登录和注销功能,并对比Cookie和...
在IT行业中,用户登录和注销是任何Web应用...通过以上步骤,我们就构建了一个基本的用户登录和注销系统,实现了用户身份验证、会话管理以及权限控制。这个系统在MyEclipse和Struts框架下提供了稳定和安全的用户体验。
在登录、注册和注销场景中,Struts2配置文件(struts.xml)会定义相关的Action类,这些Action类会处理用户的请求并调用业务逻辑。 2. **Spring**:这是一个全面的后端框架,提供了依赖注入(DI)和面向切面编程...
return redirect('login') # 退出后跳转到登录页面 ``` 五、修改密码功能 Django提供了`PasswordChangeForm`用于修改密码,我们可以在视图中使用这个表单: ```python from django.contrib.auth import update_...
以下是对防止一个用户登录多次的方法的详细说明: 1. **检查Application对象**: 当用户尝试登录时,首先会检查Application对象,这是一个全局性的存储区域,可供整个Web应用程序共享数据。开发者可以将已登录用户...
当用户选择注销登录时,应清除所有与登录有关的session和cookie数据,例如`setcookie("username","",time()-1)`和`setcookie("password","",time()-1)`,使用户退出登录状态。 7. **错误处理**: 在上述过程中,...
7. **注销功能**:`logout()`方法会结束用户会话,清除SESSION和相关COOKIE,使用户退出登录状态。 通过这种方式,这个简单的PHP用户登录验证类提供了一个结构化的框架,可以处理登录过程的各个方面。然而,实际的...
在这个例子中,我们可以创建一个名为`HttpSessionBinding`的类,当Session中的"user"属性被添加(即用户登录)时,将Session对象添加到全局的活跃Session列表中。这个列表可以存储在`ServletContext`中,以便在整个...
5. **组策略(Group Policy)**: 通过组策略对象(GPO),管理员可以控制服务器的行为,比如强制某些程序始终运行,或者在注销后不关闭。 6. **第三方工具**: 有些第三方软件专门设计用来在无人值守模式下运行程序...
6. **退出功能**:用户退出功能通常通过点击“注销”按钮实现,这会清除用户的会话信息,将他们重定向回登录页面。在JSP中,这可以通过调用`session.invalidate()`方法来完成,该方法会终止当前用户会话。 7. **...
- 当检测到关闭操作时,可以通过`window.open("logout.aspx")`打开一个注销页面,然后在`logout.aspx`中执行与`Session_End`相同的操作,并在页面加载完成后关闭窗口。 6. **XMLHttpRequest方法**: - 为了避免...
然而,在早期版本如ECShop V2.7.3 RELEASE20110907中,存在一个默认行为:当用户注销或退出登录状态后再次登录时,其购物车中的商品会被清空。这对于用户体验来说是一个明显的减分项。本文将详细介绍如何通过简单的...
如果用户认证成功,脚本会将用户ID(`$user_id`)、用户信息(`$user_name`)以及用户数组(`$user_array`)注册为Session变量,以便在会话期间其他页面可以访问这些信息。这通过`session_register()`函数完成,...
JSP(JavaServer Pages)是由Sun Microsystems公司推出的动态网页开发...总结来说,JSP是构建动态Web应用的重要技术,结合session和AJAX可以实现诸如用户登录状态管理、验证码验证等功能,从而提供更加流畅的交互体验。
`@login_required`装饰器默认会将当前URL作为`next`参数附加到登录URL后面,以便用户登录后能返回之前尝试访问的页面。若需自定义`next`字段的名称,可以这样做: ```python @login_required(redirect_field_name='...
2. **用户登录**: - **登录表单**:`login.html`页面提供登录界面,用户输入用户名和密码。同样,JavaScript可以用来验证输入是否为空。 - **登录处理**:在`login.php`文件中,比较用户输入的用户名和密码与...