登陆校验拦截器 一、概述
功能:用户只有登录成功后,才可以进行操作.
二、实现 1).创建一个类,实现Interceptor接口
1、判断用户user是否为空
2、如果为空,则设置哪些方法可以不用登陆就可以访问
package com.sihai.user.web.interceptor;
import com.sihai.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* 登陆校验拦截器
*
*
*
*/
public class LoginInterceptor extends AbstractInterceptor {
private String excludeMethods;
@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
// 判断session中是否含有 user对象
if (ServletActionContext.getRequest().getSession().getAttribute("user") == null) {
// 未登陆 ---- 判断是否配置放行
if (excludeMethods != null) {
String[] methods = excludeMethods.split(",");
// 判断methods(放行数组) 是否包含当前 访问
String currentMethod = ActionContext.getContext().getName(); // user_login
for (String method : methods) {
if (method.equals(currentMethod)) {
// 当前method 被配置放行
return actionInvocation.invoke();
}
}
}
// 设置错误信息,ActionSupport提供方法
ActionSupport action = (ActionSupport) actionInvocation.getAction();
action.addActionError(action.getText("nologin"));
return "login";// 登陆视图
} else {
// 已经登陆
return actionInvocation.invoke();
}
}
public void setExcludeMethods(String excludeMethods) {
this.excludeMethods = excludeMethods;
}
}
2).在struts.xml文件注册
注册拦截器
<interceptors>
<!-- 注册 -->
<interceptor name="login" class="com.sihai.user.web.interceptor.LoginInterceptor"></interceptor>
<interceptor name="myexception" class="com.sihai.user.web.interceptor.MyExceptionInterceptor"></interceptor>
<interceptor-stack name="myStack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="login"></interceptor-ref>
<interceptor-ref name="myexception"></interceptor-ref>
</interceptor-stack>
</interceptors>
使用拦截器
添加参数设置放行方法
<!-- 配置拦截器参数 -->
<interceptor-ref name="myStack">
<!-- 向拦截器 传递参数 ,多个参数 用, 分隔-->
<param name="login.excludeMethods">user_login</param>
</interceptor-ref>
分享到:
相关推荐
在Struts2中,拦截器扮演着核心角色,极大地增强了框架的功能和灵活性。本文将深入探讨Struts2中的拦截器,以及如何使用它们来优化应用的性能和功能。 ### 1. 拦截器的概念 拦截器是Struts2框架的一个关键特性,它...
3. 配置Struts2:配置struts.xml,定义Action及其结果,设置拦截器栈。 4. 配置MyBatis:创建mybatis-config.xml,定义数据源、事务工厂,以及Mapper接口和XML映射文件的路径。 5. 创建实体类、Mapper接口和XML映射...
对于开发者来说,熟悉Struts 2.3.14-Pro意味着要掌握Action类、配置文件(struts.xml)、拦截器、结果类型、动态方法调用等关键概念。此外,理解OGNL的使用和安全注意事项也是必不可少的。 7. **实战应用**: 在...
### Struts2 拦截器与验证框架详解 #### 一、Struts2概述 Struts2是一个基于Java的企业级Web应用开发框架,它继承了Struts1的优点,并在此基础上进行了很多改进,使得开发更加灵活高效。Struts2的核心是拦截器...
3. **Interceptor(拦截器)**:Struts2的拦截器机制允许开发者在Action调用前后插入自定义逻辑,如权限检查、日志记录等。常见的拦截器有Params拦截器(处理参数绑定),Validation拦截器(进行字段验证),以及...
5. **拦截器(Interceptors)**:Struts 2 的拦截器是实现AOP(面向切面编程)的关键组件,它们可以添加额外的功能,如日志记录、权限检查、事务管理等,无需修改Action代码。 6. **安全问题**:Struts 2.0.14 版本...
1. **拦截器**:Struts2使用拦截器链来处理请求,拦截器可以实现AOP(面向切面编程)功能,如日志、事务管理等。 2. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,简化了模型数据...
Struts2的主要优势在于其灵活的拦截器模型,能够方便地扩展和定制应用程序的行为。 2. **MVC模式**: MVC模式是软件设计中的经典模式,用于分离业务逻辑、数据和用户界面。在这个项目中,Struts2扮演了控制器的...
3. **配置拦截器**:拦截器可以通过Struts2配置文件或注解进行配置,指定在哪些Action上使用哪些拦截器。 ### 二、单个Action配置拦截器实例 1. **创建拦截器**:首先,我们需要创建一个实现了`Interceptor`接口的...
Struts2的核心包括Action、Result、Interceptor等组件,它通过拦截器链来处理请求并执行业务逻辑。 2. **文件上传**:在Web应用中,文件上传是指允许用户从他们的本地计算机选择一个或多个文件,并将其发送到服务器...
Javassist是一个处理Java字节码的库,Struts2使用它来实现运行时的类增强,例如添加拦截器,使得Struts2可以无侵入地增强Action类。 6. **Commons IO库(commons-io-2.0.1.jar)** Apache Commons IO库提供了一系列...
- **内置拦截器**:Struts2提供了一系列内置的拦截器,如ParametersInterceptor、ValidationInterceptor等。 - **自定义拦截器**:开发者也可以根据需求编写自定义的拦截器。 ##### 3.3 值栈与OGNL - **值栈**:...
通过结合使用Struts2的拦截器(interceptors)和自定义标签,可以构建出强大的国际化功能,满足各种复杂需求。 总之,Struts2-i18n为开发者提供了便捷的手段,帮助他们构建全球化Web应用。通过合理的资源文件管理和...
1. 拦截器栈:Struts2中的拦截器不是单独工作的,而是以栈的形式存在,称为拦截器栈。每个拦截器都有一个进入方法(invoke)和一个退出方法,当请求到达时,会按照栈的顺序逐个调用进入方法,直到到达目标Action;...
2. **配置文件**:`struts.xml`是Struts2的核心配置文件,用于定义Action、Result和拦截器链。 3. **Action类**:Action类是业务逻辑的载体,处理用户请求并返回结果。 4. **结果类型**:结果类型定义了Action执行后...
Struts2.2.3 版本是该框架的一个稳定版本,包含了许多改进和新特性,例如更丰富的拦截器、插件支持以及对Ajax的更好集成。 **Hibernate3.3.1** 是一个流行的Java对象关系映射(ORM)框架,它简化了数据库操作,使得...
### Struts2拦截器原理与实战案例解析 #### 一、Struts2拦截器概述 Struts2框架作为Java Web开发中的重要工具之一,其核心优势在于强大的MVC架构支持和丰富的扩展性。其中,拦截器(Interceptor)是Struts2框架的...
### Java Struts2 拦截器知识点解析 #### 一、Struts2拦截器概述 **知识点1:拦截器的概念** - **定义**: 拦截器(Interceptor)是Struts2框架的一个核心特性。它负责在Action执行前后进行一系列操作。 - **功能*...
3. **拦截器的应用**:学习如何自定义Struts 2的拦截器,以实现日志记录、权限验证等功能。 4. **数据库连接池的配置**:如使用C3P0或DBCP配置数据库连接池,优化数据库操作性能。 5. **JSP和标签库的使用**:掌握...
Struts2的配置通常在struts.xml文件中进行,包括Action的配置、结果类型、拦截器栈等。此外,它还支持动态方法调用,即根据传入的参数来决定执行哪个Action方法,增强了灵活性。 5. **插件机制**: Struts2的可...