在struts2+spring+hibernate 的体系中,经常要遇到的一个问题就是当用户登陆后,SESSION超过指定的时间后,
当用户再点某个连接时,系统会自动返回到登陆的页面。在实现时候,由于是STRUTS2,因此可以充分利用拦截器。
拦截器示例代码如下
ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
Action action = (Action)actionInvocation.getAction();
if (action instanceof LoginSystem) {
return actionInvocation.invoke();
}
String userName = (String)session.get(USER_NAME);
if(userName == null)
{
return LOGIN;
} else {
return actionInvocation.invoke();
}
要注意的,由于要排除登陆这个ACTION,所以要用 if (action instanceof LoginSystem) { 这句去判断,
因为登陆前会执行这个拦截器,这时SESSION肯定为空,就不能再跑去显示“SESSSION超时”这个页面了
分享到:
相关推荐
- 验证Session是否有效,如果Session ID无效(`isRequestedSessionIdValid()` 返回 false),则表示Session过期,返回 "tologin" 字符串,提示用户重新登录。 - 如果Session有效,从Session中获取 `SystemUser` ...
在Struts2中,Action是核心组件之一,它负责处理用户的请求,并将业务逻辑的结果返回给视图进行展示。本实例将深入探讨在基于用户登录场景下,如何在Struts2中对Action进行分类和设计。 首先,我们需要了解Struts2...
在Struts2中,Action是核心组件,负责处理用户请求并返回相应的结果。在这个特定的场景中,我们讨论的是如何在Struts2中创建一个能够生成中文验证码的Action。 验证码的主要目的是防止自动机器人或恶意攻击,通过向...
在Struts2中,登录功能通常涉及到以下几个关键组件: 1. **Action类**:这是业务逻辑处理的中心,相当于控制器。在Struts2 Login Demo中,可能会有一个名为`LoginAction`的类,它继承自Struts2的`ActionSupport`类...
- **session超时**:考虑session过期处理,如设置session失效时间,过期后重定向至登录页面。 9. **安全注意事项** - **密码加密**:在存储和比较密码时,应先进行加密,防止明文传输和存储带来的风险。 - **...
在Struts2中实现这个功能,我们需要以下步骤: 1. **创建验证码类(CaptchaAction)**: 首先,我们需要创建一个Action类,负责生成和验证验证码。这个类将包含一个方法来生成随机字符串,并将其保存在session中,同时...
此外,可以设置验证码的有效时间,过期后需重新生成。 10. **优化用户体验**:可以添加点击刷新验证码的功能,以应对用户看不清验证码的情况。同时,应考虑无障碍访问,为视觉障碍用户提供音频验证码。 通过以上...
在Struts2框架中,FilterDispatcher是核心组件之一,它负责处理用户请求,并调用相应的Action进行业务逻辑处理。相较于Struts1和WebWork,Struts2的设计更加先进和灵活。 **知识点解析:** 1. **FilterDispatcher**...
- 在Struts2中,可以通过`ServletActionContext.getRequest().getSession()`方法来获取当前的Session对象。 - 示例代码如下: ```java public String findAll() { HttpSession session = ServletActionContext....
在Struts2的Action中,取出Session中的验证码与用户输入的进行比较,如果匹配则通过验证,否则返回错误信息。 ```java String userCaptcha = actionRequest.getParameter("captcha"); String sessionCaptcha = ...
在Struts2中实现验证码,我们通常会涉及以下几个关键步骤: 1. **生成验证码**:创建一个Java类,用于生成随机的字符串或数字。这个类可能包含一个方法,返回一个指定长度的字符串,例如包含4位数字。我们可以使用...
**标题:“登陆验证码(struts2实现)”,描述中提到的博文链接:https://ewf-momo.iteye.com/blog/1678220** 验证码(CAPTCHA)是一种用于防止自动化程序(如机器人)滥用服务的技术。在登录过程中,验证码能够确保...
这个页面会调用Action中的方法,生成并输出图片到浏览器。同时,我们还需要在页面上提供一个表单,让用户输入看到的验证码。 在用户提交表单时,Struts2框架会调用另一个Action来处理验证。在这个Action中,我们...
5. **结果映射(Result Mapping)**:在Struts2的配置文件(struts.xml)中,我们需要定义Action类的不同结果,比如生成验证码成功后的页面跳转,或者验证失败后的提示信息。 6. **JSP页面**:前端展示部分,包括...
在本项目中,“仿CSDN样式(Struts2中文验证码源代码)”是为了实现类似CSDN登录页面的中文验证码功能,这在防止恶意机器人自动登录或注册时非常有用。 验证码的主要作用是验证用户是否为真人,通过显示一组随机生成...
Struts2 提供了一个称为 `<s:token>` 的标签,用于生成一个唯一的标识符,并将其存储在 session 中。当表单提交时,这个标识符会一同发送到服务器。服务器端的拦截器(如 `token` 拦截器)会检查这个标识符,如果...
在Struts2中,实现令牌机制有以下几种方式: 1. **使用拦截器(Interceptor)**:Struts2提供了`TokenInterceptor`和`TokenSessionInterceptor`。前者会将令牌保存在用户的会话(session)中,并在表单提交时检查;...
在IT行业中,Struts2是一个非常流行的Java Web开发框架,它基于MVC(Model-View-Controller)设计模式,提供了一种结构化的方式来构建应用程序。验证码(Verification Code)是网络应用中常用的一种安全机制,用于...