当用户登陆后,session超时后则返回到登陆页面重新登陆。
为了方便测试,修改session的有效时间
<session-config>
<session-timeout>1</session-timeout>
</session-config>
自己定义一个拦截器
package com.zrwt.sjkd.tools;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.sun.org.apache.xerces.internal.impl.Constants;
import com.zrwt.sjkd.action.LoginAction;
public class SessionIterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
Action action = (Action) invocation.getAction();
if (action instanceof LoginAction) {
//上面的判断是为了过滤登录的Action,如果不判断,登录的Action也会拦截,导致你永远无法登录
return invocation.invoke();
}
String userName = (String) session.get("staffId");
if (userName == null) {
return "index";
} else {
return invocation.invoke();
}
}
}
配置struts.xml文件
<!-- 定义一个拦截器 -->
<interceptors>
<interceptor name="sessionout" class="com.zrwt.sjkd.tools.SessionIterceptor"></interceptor>
<!-- 拦截器栈 -->
<interceptor-stack name="sjkd">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="sessionout"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="sjkd" />
//对sjkd包下的所有Action拦截
配置全局变量
<global-results>
<result name="index">/index.jsp</result>
</global-results>
这样配置过后就会起作用了,等你一分钟不对系统做任何操作,当你操作系统的时候,系统会自动跳转到登录页面
分享到:
相关推荐
4. **处理重定向**:在拦截器的`intercept()`方法中,当登录成功时,我们获取并返回存储的原始URL,Struts2会自动进行重定向操作。如果登录失败,则按正常流程返回Action的结果。 通过这样的设置,Struts2的拦截器...
dwz框架实现拦截器 session超时跳转登陆页面 DWZ框架 struts2拦截器 session超时
2. **配置拦截器**:然后,在Struts2的配置文件(通常为`struts.xml`或`struts-default.xml`)中注册这个拦截器。 ```xml <!-- 其他拦截器配置 --> <default-interceptor-ref name="defaultStack"/> <!-- 引入...
在Struts2中,拦截器是实现业务逻辑和表示层解耦的重要工具,它们允许开发者在请求到达Action之前或之后执行特定的操作。在这个实例中,我们将探讨如何创建一个自定义拦截器来处理未登录用户的非法请求。 首先,...
1. **Struts2框架**:Struts2是Apache软件基金会下的一个开源项目,它基于MVC设计模式,提供了强大的Action、拦截器、结果类型等机制,使得开发者可以更高效地进行Web应用开发。在权限控制方面,Struts2提供了拦截器...
### Java Struts2 拦截器知识点解析 #### 一、Struts2拦截器概述 **知识点1:拦截器的概念** - **定义**: 拦截器(Interceptor)是Struts2框架的一个核心特性。它负责在Action执行前后进行一系列操作。 - **功能*...
2. **全局拦截器**:为了在整个应用程序中统一处理登录检查,可以创建一个自定义的Struts2拦截器。这个拦截器将在每个请求处理之前运行,检查session中是否存在用户信息。 ```java public class AuthInterceptor ...
### Struts拦截器防止未登录访问内部系统的详细解析 在基于SSH2框架(Struts2、Spring、Hibernate)的Web应用程序开发中,确保系统安全至关重要,尤其是防止未授权访问内部资源。本文深入探讨如何利用Struts2的拦截...
Struts2采用了拦截器(Interceptor)机制,开发者可以通过自定义拦截器实现诸如日志记录、权限检查等预处理或后处理操作。此外,Struts2支持多种结果类型,如JSP、FreeMarker、Velocity等,方便视图的展示。 接下来...
4. **拦截器(Interceptor)**:Struts2的拦截器可以用来增强Action执行前后的功能,比如登录验证。可以创建自定义的拦截器来检查Session中是否有已登录的用户,或者直接在Action中进行验证。 5. **数据验证**:在...
2. **配置拦截器**:在Struts2的配置文件(如struts.xml)中,你需要声明你的拦截器,并将它添加到拦截器栈中。例如: ```xml <result name="success">/welcome.jsp <result name="error">/login.jsp...
通过这个小练习,你将理解Struts2处理用户交互的基本流程,以及如何实现登录功能。这只是一个基础示例,实际项目中可能还需要考虑更多因素,如安全性、性能优化、用户体验等。继续学习和实践,你将能更熟练地运用...
1. **使用拦截器(Interceptors)**:Struts2的核心特性之一是拦截器,它们可以在Action执行前后执行特定的任务。可以自定义拦截器来处理会话更新,例如在用户登录成功后,更新会话ID,并设置相关的用户信息。 2. *...
3. **配置Struts2**:在Struts2的配置文件`struts.xml`中,添加Shiro拦截器,并将它添加到默认的或自定义的栈中。 4. **编写控制器**:在Struts2的Action类中,可以通过`Subject`对象进行登录、登出等操作。例如,`...
1. **启用Token插件**:在Struts2的配置文件`struts.xml`中,需要启用Token拦截器栈,如下所示: ```xml <package name="default" extends="struts-default"> <!-- 是否将错误信息放入session,以便在JSP...
Struts2的拦截器(Interceptor)可以进一步增强这些操作,如添加事务控制、日志记录等。 2. **国际化**: Struts2支持国际化(i18n)功能,允许根据用户的语言环境显示相应的文本。这通过在资源包(如message....
在Struts2中,我们首先需要配置`struts.xml`文件,它是整个应用的核心配置文件,定义了动作映射、拦截器和结果类型等。对于登录验证,我们会在其中创建一个对应于登录操作的动作类映射。例如,可以定义一个名为`...
Struts2的优势在于其强大的拦截器机制,可以方便地实现请求拦截、验证、权限控制等功能。在本项目中,Struts2可能被用来处理HTTP请求,执行用户操作并返回响应。 Spring框架则是一个全面的Java企业级应用开发框架,...
可以使用Struts2的拦截器来实现登录检查,拦截所有需要登录才能访问的Action。 2. **Cookie管理**:在用户成功登录后,我们在服务器端生成一个唯一的Session ID,并将其存储在Cookie中。这个Cookie将在用户每次访问...