`
ts1993
  • 浏览: 13672 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

关于 关闭标签或者页面 就退出用户登录 注销session user 的问题

阅读更多
一个项目客户提出了一个很纠结的需求:

在登录系统后,用户就算不点击安全退出的按钮或者超链接,
关闭浏览器的这个标签或者关闭这个页面,就在后台自动退出,

开始打算用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;
		}
}
分享到:
评论
2 楼 javatozhang 2013-03-23  
例子是struts2的拦截器,能详细介绍一下这段代码吗?
if(skipPath(url)){ 
    return arg0.invoke(); 

其中的skipPath函数。
1 楼 javatozhang 2013-03-23  
lz能再把你的例子说的详细一点吗?最近在做用户登录注销功能的模块希望得到你的帮助!谢谢!!!

相关推荐

    判断用户已经退出和防止用户未登录直接访问页面

    当用户登录后,会将一些关键信息(如用户ID)存储在Session对象中。为了判断用户是否已退出,我们需要监听Session结束的事件。在Global.asax文件中,我们可以添加以下代码: ```csharp protected void Session_End...

    JavaWeb基于Session实现的用户登陆注销方法示例

    JavaWeb中的Session是一种重要的会话跟踪机制,常用于在用户登录之后存储用户的认证信息,确保用户在多个页面间切换时能保持登录状态。本篇文章将详细介绍如何基于Session实现用户登录和注销功能,并对比Cookie和...

    用户登录和注销1

    在IT行业中,用户登录和注销是任何Web应用...通过以上步骤,我们就构建了一个基本的用户登录和注销系统,实现了用户身份验证、会话管理以及权限控制。这个系统在MyEclipse和Struts框架下提供了稳定和安全的用户体验。

    Java Web应用开发:用户退出.docx

    在Java Web应用中,实现用户登录后能够通过点击“退出登录”按钮来注销当前登录状态的功能。这一功能是Web应用程序中非常常见且重要的一个环节,它不仅提高了用户体验,还增强了系统的安全性。 #### 二、实现思路 ...

    ssh做的登录 注册 注销

    在登录、注册和注销场景中,Struts2配置文件(struts.xml)会定义相关的Action类,这些Action类会处理用户的请求并调用业务逻辑。 2. **Spring**:这是一个全面的后端框架,提供了依赖注入(DI)和面向切面编程...

    Django1.6_利用Form实现注册登录注销修改密码

    return redirect('login') # 退出后跳转到登录页面 ``` 五、修改密码功能 Django提供了`PasswordChangeForm`用于修改密码,我们可以在视图中使用这个表单: ```python from django.contrib.auth import update_...

    防止一个用户登录多次的方法

    以下是对防止一个用户登录多次的方法的详细说明: 1. **检查Application对象**: 当用户尝试登录时,首先会检查Application对象,这是一个全局性的存储区域,可供整个Web应用程序共享数据。开发者可以将已登录用户...

    PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】

    当用户选择注销登录时,应清除所有与登录有关的session和cookie数据,例如`setcookie("username","",time()-1)`和`setcookie("password","",time()-1)`,使用户退出登录状态。 7. **错误处理**: 在上述过程中,...

    一个简单的php实现的用户登录与验证类的代码

    7. **注销功能**:`logout()`方法会结束用户会话,清除SESSION和相关COOKIE,使用户退出登录状态。 通过这种方式,这个简单的PHP用户登录验证类提供了一个结构化的框架,可以处理登录过程的各个方面。然而,实际的...

    JSP中基于Session的在线用户统计分析

    在这个例子中,我们可以创建一个名为`HttpSessionBinding`的类,当Session中的"user"属性被添加(即用户登录)时,将Session对象添加到全局的活跃Session列表中。这个列表可以存储在`ServletContext`中,以便在整个...

    服务器在注销后仍然运行程序.rar

    5. **组策略(Group Policy)**: 通过组策略对象(GPO),管理员可以控制服务器的行为,比如强制某些程序始终运行,或者在注销后不关闭。 6. **第三方工具**: 有些第三方软件专门设计用来在无人值守模式下运行程序...

    JSP实现用户登录、注册和退出功能

    6. **退出功能**:用户退出功能通常通过点击“注销”按钮实现,这会清除用户的会话信息,将他们重定向回登录页面。在JSP中,这可以通过调用`session.invalidate()`方法来完成,该方法会终止当前用户会话。 7. **...

    Asp.net中防止用户多次登录的方法

    - 当检测到关闭操作时,可以通过`window.open("logout.aspx")`打开一个注销页面,然后在`logout.aspx`中执行与`Session_End`相同的操作,并在页面加载完成后关闭窗口。 6. **XMLHttpRequest方法**: - 为了避免...

    ECShop——会员退出不清空购物车

    然而,在早期版本如ECShop V2.7.3 RELEASE20110907中,存在一个默认行为:当用户注销或退出登录状态后再次登录时,其购物车中的商品会被清空。这对于用户体验来说是一个明显的减分项。本文将详细介绍如何通过简单的...

    PHP4中session登录页面的应用

    如果用户认证成功,脚本会将用户ID(`$user_id`)、用户信息(`$user_name`)以及用户数组(`$user_array`)注册为Session变量,以便在会话期间其他页面可以访问这些信息。这通过`session_register()`函数完成,...

    Session.docx

    JSP(JavaServer Pages)是由Sun Microsystems公司推出的动态网页开发...总结来说,JSP是构建动态Web应用的重要技术,结合session和AJAX可以实现诸如用户登录状态管理、验证码验证等功能,从而提供更加流畅的交互体验。

    Django用户认证系统 Web请求中的认证解析

    `@login_required`装饰器默认会将当前URL作为`next`参数附加到登录URL后面,以便用户登录后能返回之前尝试访问的页面。若需自定义`next`字段的名称,可以这样做: ```python @login_required(redirect_field_name='...

    Php用户注册与登录模块案例.pdf

    2. **用户登录**: - **登录表单**:`login.html`页面提供登录界面,用户输入用户名和密码。同样,JavaScript可以用来验证输入是否为空。 - **登录处理**:在`login.php`文件中,比较用户输入的用户名和密码与...

Global site tag (gtag.js) - Google Analytics