import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.latitude.bsemgr.model.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
*
* @author HuangHui
*
*/
@SuppressWarnings("serial")
public class LoginInterceptor extends AbstractInterceptor {
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext context = ActionContext.getContext();
HttpServletResponse response = (HttpServletResponse) context
.get(ServletActionContext.HTTP_RESPONSE);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// 对LoginAction不做该项拦截
Object action = invocation.getProxy().getActionName();
if (action.equals("login") || action.equals("logout")) {
return invocation.invoke();
}
// 确认session 中是否存在loginSession
User loginSession = (User) ActionContext.getContext().getSession().get("login");
if (loginSession != null) {
// 存在的情况下,进行后续操作
return invocation.invoke();
} else {
// 否则终止后续操作,返回LOGIN_PAGE
response.setStatus(301);
out.println("您还没有登录,3秒后自动转入登录页面!!!");
response.setHeader("refresh", "3;url=/bsemgr/login.jsp");
return null;
}
}
}
-------------------------- struts.xml 配置如下 --------------------------------
<interceptors>
<interceptor name="LoginInterceptor" class="com.weidu.imp.util.LoginInterceptor"/>
<interceptor-stack name="loginInterceptorStack">
<interceptor-ref name="LoginInterceptor"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<!-- 配置成默认的拦截器,每个action都经过此拦截器-->
<default-interceptor-ref name="loginInterceptorStack"/>
分享到:
相关推荐
总结起来,这个"Struts拦截器案例——登陆"涵盖了Struts2拦截器的基本使用、登录验证、数据库操作以及异常处理等多个方面。通过学习这个案例,开发者可以更好地理解和掌握Struts2框架中的拦截器机制,从而在实际项目...
在Struts2中,拦截器(Interceptors)扮演着核心角色,增强了框架的功能和灵活性。这篇文章将深入探讨Struts2拦截器的概念、工作原理以及如何在实际应用中使用它们。 **一、什么是Struts2拦截器** 拦截器是基于AOP...
在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...
### Struts2 拦截器与验证框架详解 #### 一、Struts2概述 Struts2是一个基于Java的企业级Web应用开发框架,它继承了Struts1的优点,并在此基础上进行了很多改进,使得开发更加灵活高效。Struts2的核心是拦截器...
这篇博客“struts2 拦截器实现登录控制”显然会探讨如何利用拦截器来实现用户登录验证,从而保护应用程序的受保护资源。 首先,我们了解下Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念,它位于...
在Struts2中,拦截器(Interceptor)是核心功能之一,它扮演着处理请求、增强功能和控制流程的重要角色。本例子主要探讨了如何使用Struts2拦截器实现登录拦截,确保用户在没有正确登录的情况下无法访问受保护的页面...
拦截器是Struts2框架的一个核心特性,用于在Action执行前后进行额外的处理,比如日志记录、权限验证、性能监控等。在本案例中,我们将深入探讨如何在Struts2中自定义拦截器来实现用户非法登录的验证。 一、Struts2...
### Struts2拦截器实例——登录校验 #### 概述 在Web应用开发中,登录验证是一项重要的功能。为了确保只有已登录的用户才能访问特定的资源或页面,通常会采用拦截器来实现这一需求。本文档将详细介绍如何在Struts2...
在"struts2-interceptor"这个压缩包中,我们可以预期找到一个关于如何使用Struts2拦截器实现简单登录控制的示例。 拦截器在Struts2中扮演着类似过滤器的角色,但更加强大和灵活。它们通过定义一系列预定义的或...
在Struts2中,拦截器是实现业务逻辑控制和处理流程的重要组件,它们可以添加额外的功能,如日志记录、权限检查、事务管理等,而不干扰实际的业务操作。本篇文章将详细介绍如何配置Struts2的登录拦截器,以及其背后的...
在Struts2中,拦截器是实现业务逻辑和表示层之间解耦的关键组件,允许开发者在请求处理之前或之后执行额外的操作。拦截器通过插桩(Interception)机制增强了Action调用,可以实现如日志记录、权限验证、数据校验等...
java代码-登陆拦截器LoginInterceptor源代码 ——学习参考资料:仅用于个人学习使用
Struts拦截器(Interceptors)是Struts2框架的核心组件之一,它们在处理请求时扮演着重要的角色。拦截器的工作原理类似于AOP(面向切面编程),允许开发者在动作执行前后插入自定义逻辑,比如权限检查、日志记录、...
"Struts2 注解配置 Action 及拦截器几种不同方式写法对应的路径指向" Struts2 注解配置 Action 及拦截器是 Struts2 框架中的核心组件之一,负责处理用户请求并返回响应结果。下面,我们将通过详细的解释和示例代码...
### Struts2 拦截器与验证框架详解 #### 一、Struts2拦截器概念及作用 在Struts2框架中,拦截器(Interceptor)是其核心组件之一,它能够对用户请求进行预处理或后处理。通过在应用程序的主配置文件`struts-...
在这个“struts2-demo”项目中,我们将探讨Struts2的核心概念以及如何利用拦截器实现登录验证。 首先,让我们深入理解Struts2框架的核心概念: 1. **Action类**:在Struts2中,Action类是业务逻辑的载体,处理用户...
SSM项目拦截器实现登录拦截 SSM项目中的拦截器是一种重要的机制,用于在控制器方法调用前后执行某些操作。在本文中,我们将详细介绍如何在SSM项目中实现登录拦截器,并配置其在SpringMVC框架中的使用。 拦截器的...
Java 中的 Struts2 拦截器详解 Struts2 拦截器是一种强大且灵活的机制,它可以在 action 之前或之后执行某些操作,实现一些通用的功能,如权限认证、日志记录和登陆判断等。 1. 什么是拦截器? 拦截器相当于过滤...
在Spring MVC框架中,拦截器(Interceptor)是一种用于处理请求和响应之间通用逻辑的机制,例如权限检查、日志记录等。本示例主要展示了如何创建一个登录验证拦截器,确保只有登录过的用户才能访问特定的页面。 ...