拦截器是Struts2框架的核心内容之一,许多核心功能(避免表单重复提交,数据类型转换,数据校验,文件上传,国际化及权限管理等)都是通过拦截器实现的。
Struts2中的拦截器是面向切面编程(AOP)设计思想的实现。
拦截器的使用通常包含以下几步:
1.创建拦截器类。
拦截器类可以通过实现Interceptor接口(实现init(),destroy(),intercept()方法),也可以通过集成AbctractInterceptor类并重写intercept()方法。
package cn.bdx.intercepter; import java.util.Map; import cn.bdx.model.LoginUser; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class MyInterceptor1 extends AbstractInterceptor{ @Override public String intercept(ActionInvocation invocation) throws Exception { //已登录作为实例 Object action = invocation.getAction(); if(action instanceof LoginUser) { return invocation.invoke(); } Map<String,Object> session = invocation.getInvocationContext().getSession(); LoginUser loginUser = (LoginUser)session.get("loginUser"); if(loginUser != null){ return invocation.invoke(); }else { ((ActionSupport) action).addActionMessage("您还没有登录"); return "input"; } } }
2.注册拦截器
拦截器在struts2设计为可插拔的方式,即在使用对拦截器类进行注册,在不使用时直接删除掉即可
在struts.xml文件中进行配置
方式1:配置package全局的拦截器
<package name="default" namespace="/" extends="struts-default"> <interceptors> <interceptor name="login" class="cn.bdx.intercepter.MyInterceptor1"></interceptor> <interceptor-stack name="myLoginStack"> <interceptor-ref name="login"> <param name=""></param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="myLoginStack" /> </package>
注:interceptor标签用于配置自己的拦截器,interceptor-stack用于自定义自己的拦截器的stack,default-interceptor-ref的配置表明在这个package包中使用myLoginStack这个拦截器。
方式2:action内部的拦截器
<package name="default" namespace="/" extends="struts-default"> <interceptors> <interceptor name="login" class="cn.bdx.intercepter.MyInterceptor1"></interceptor> </interceptors> <action name="login" class="cn.bdx.controller.LoginUserController" method="login1"> <interceptor-ref name="login"></interceptor-ref> </action> </package>
注:Struts2中有许多内置的拦截器,详细内容可以查看struts-default.xml文件内容。
相关推荐
在本学习案例中,重点在于Struts2的拦截器(Interceptor)功能,这是Struts2的核心特性之一,它允许开发者在Action执行前后进行自定义处理,实现了灵活的业务逻辑控制和增强的功能。 首先,我们来理解一下什么是...
Struts2.X 拦截器是Apache Struts框架的核心组件之一,它是基于拦截器模式实现的,使得开发者能够方便地扩展和定制应用程序的行为。在Struts2中,拦截器扮演着中间件的角色,它在Action执行前后进行处理,可以进行如...
在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程分离开来的重要组件。本篇将深入探讨Struts2的核心拦截器以及其工作原理。 在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过...
拦截器是Struts2框架的核心特性之一,它们扮演着处理请求、增强功能和实现业务逻辑的角色。在Struts2中,拦截器就像过滤器一样工作,通过链式调用在动作执行前后进行预处理和后处理。 首先,我们来理解一下拦截器的...
通过这个例子,你可以学习到如何创建、注册拦截器,以及如何在Struts2框架中构建拦截器栈,从而更灵活地管理应用程序的行为。 总结来说,Struts2的拦截器机制提供了强大的功能,允许开发者以声明式的方式控制请求的...
拦截器是Struts2框架的核心组件之一,它允许我们在请求到达Action之前或离开Action之后执行一些额外的操作,如日志记录、权限验证、性能监控等。自定义拦截器可以扩展Struts2的功能,使我们的应用更加灵活和模块化。...
拦截器是Struts2的核心组件之一,它们在Action调用前后执行,允许开发者插入额外的功能,如日志、权限检查、性能度量等,而无需修改Action本身。这个“Struts2简单的拦截器示例”是为初学者设计的,旨在帮助理解如何...
在本篇“Struts2学习笔记十一”中,我们将深入探讨Struts2的核心拦截器及其应用。 **1. 拦截器的概念** 拦截器是AOP(面向切面编程)的一部分,在Struts2中,它们作为一系列可插入的处理链,可以在Action执行前后...
这个"struts拦截器的例子"提供了一个学习和理解拦截器工作原理的起点,非常适合对这一主题感兴趣的初学者。 Struts 2框架是MVC(Model-View-Controller)设计模式的一个实现,它允许开发者构建可维护、可扩展的Web...
接下来,我们将通过案例"struts007"来学习拦截器的配置与使用。在Struts2的配置文件(如struts.xml)中,可以定义一个拦截器或者拦截器栈。拦截器栈是由多个拦截器按照特定顺序组成的,每个拦截器都有自己的名字和...
拦截器是Struts2框架的核心特性之一,它们扮演着类似中间件的角色,可以在动作执行前后执行一些预处理或后处理任务。自定义拦截器是扩展Struts2功能的重要手段,允许开发者根据项目需求实现特定的行为。 在Struts2...
拦截器是Struts2框架的核心组件之一,它们在Action调用前后执行,提供了诸如日志记录、权限验证、数据校验等额外功能,极大地提高了代码的可复用性和可维护性。 在Struts2中,拦截器的使用主要基于两个方面:配置...
拦截器(Interceptors)是Struts2的核心特性之一,它们提供了一种灵活的方式来增强或者修改请求处理流程,而无需在Action类中添加额外的代码。在"Struts2 拦截器过滤方法(二十八)"这个主题中,我们将深入探讨...
而`Struts2.782`可能是Struts2的一个版本,其中包含了框架的核心库和示例代码,可以帮助进一步理解和学习拦截器的使用。 通过这个小示例,初学者可以了解到Struts2拦截器的基本概念、配置方式以及如何自定义拦截器...
拦截器是Struts2的核心特性之一,它在MVC设计模式中起到了承上启下的作用,增强了框架的功能和灵活性。在Struts2中,拦截器可以理解为一种AOP(面向切面编程)的概念,它们在动作执行前后进行额外的操作,比如日志...
在本节内容中,我们将对Struts2框架中的拦截器概念进行基础介绍,包括拦截器的定义、作用、编写和配置方法。拦截器是Struts2框架中用于增强Action组件功能的重要机制,允许开发者在Action执行前后或执行过程中进行...
Struts2学习教程之拦截器机制与自定义拦截器 Struts2框架中,拦截器机制是其重要组成部分,不夸张的说,没有拦截器体系,也就没有这么好用的Struts2框架了。在Struts2框架中,大量的拦截器完成了很多基础的功能,...
Struts拦截器是Java Web开发中的一个重要概念,尤其在基于Struts2框架的应用中,它扮演着处理...通过学习这个案例,开发者可以更好地理解和掌握Struts2框架中的拦截器机制,从而在实际项目中实现更高效、灵活的控制流。
Struts2是一个强大的Java web应用程序框架,它提供了一种组织和控制MVC(模型-视图-控制器)架构的方式。在Struts2中,拦截器是实现...理解并熟练掌握自定义拦截器的创建和配置,是深入学习和使用Struts2框架的关键。
- **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 **3.4 请求转发与重定向** - **转发**:Action 的 execute 方法返回一个字符串,根据这个字符串找到对应...