在Struts2中配置自定义的拦截器的方法:
一、扩展拦截器接口的自定义拦截器配置
二、继承抽象拦截器的自定义拦截器配置
三、继承方法拦截器的自定义拦截器配置
接下来我们一个个去实现过去!(LoginAction.java,login.jsp,index.jsp参照struts2核心技术的代码)
扩展拦截器接口的自定义拦截器配置
1、配置struts.xml文件!
2、Action配置中拦截器参数定义
3、拦截器参数的设置
自定义拦截器类代码:
package struts.zdy.interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class ExampleInterceptor implements Interceptor
{
//设置新参数
private String newParam;
public String getNewParam()
{
return newParam;
}
public void setNewParam(String newParam)
{
this.newParam = newParam;
}
//拦截器的销毁方法
public void destroy()
{
System.out.println("end doing......");
}
//拦截器的初始方法
public void init()
{
System.out.println("start doing......");
System.out.println("newParam is :"+newParam);
}
//拦截器拦截方法
public String intercept(ActionInvocation arg0) throws Exception
{
System.out.println("start invoking.....");
String result=arg0.invoke();
System.out.println("end invoking.......");
return result;
}
}
Struts.xml文件配置信息
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 声明DTD文件 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Action 所在包定义 name为项目名,扩展默认文件struts-default.xml配置文件-->
<package name="Struts2Test" extends="struts-default">
<!-- 拦截器配置定义 -->
<interceptors>
<interceptor name="example" class="struts.zdy.interceptor.ExampleInterceptor">
<!-- 参数设置 -->
<param name="newParam">test</param>
</interceptor>
</interceptors>
<!-- Action名字,类以及导航页面定义 -->
<!-- 通过Action类处理才导航的Action定义 -->
<action name="Login" class="struts.action.LoginAction">
<result name="input">login.jsp</result>
<result name="success">index.jsp</result>
<!-- Action 中拦截器定义 -->
<interceptor-ref name="example">
<!-- 改变拦截器参数值 -->
<param name="newParam">example</param>
</interceptor-ref>
</action>
</struts>
接下:继承抽象拦截器的自定义拦截器配置<!--EndFragment--><!--EndFragment-->
<!--EndFragment-->
分享到:
相关推荐
配置自定义拦截器涉及到以下几个步骤: 1. **创建拦截器实现**:你需要实现`Interceptor`接口或继承`AbstractInterceptor`类来创建自定义拦截器。`Interceptor`接口提供了三个方法:`init()`(初始化)、`intercept...
- 在`<interceptors>`节点下配置自定义拦截器,`<interceptor>`元素定义了拦截器的名称和实现类。 - `<interceptor-stack>`元素用于定义拦截器的执行顺序,`<interceptor-ref>`元素引用了已定义的拦截器。 4. **...
在Struts2的配置文件(如struts.xml)中,我们需要声明并配置自定义拦截器。可以通过`<interceptors>` 标签定义拦截器栈,然后在`<package>` 下通过`<interceptor>` 标签声明拦截器,并通过`...
这篇博客文章可能是关于如何在Struts2中创建和使用自定义拦截器的教程。 在Struts2中,拦截器是基于责任链模式实现的,它们按照指定的顺序执行,对请求进行处理。拦截器可以用来进行权限检查、日志记录、事务管理等...
本示例将聚焦于如何在Struts2中实现一个自定义拦截器。 首先,我们需要了解拦截器在Struts2中的作用。拦截器是AOP(面向切面编程)的一个核心概念,它允许开发者在动作执行前后插入额外的逻辑,如日志记录、权限...
通过这种方式,自定义拦截器可以在Struts2框架中无缝集成,并且可以灵活地与其他拦截器协同工作,提供更丰富的功能。 在实际开发中,你可能会遇到多种场景来利用自定义拦截器。例如,你可以创建一个登录验证拦截器...
这些文件展示了如何编写和配置自定义拦截器的具体实现。 通过这个简单的自定义拦截器例子,我们可以看到Struts2拦截器的灵活性和实用性。它们使得业务逻辑和框架的控制层分离,降低了代码的耦合度,提高了代码的可...
本篇将深入讲解如何在Struts2中自定义拦截器,并通过提供的源代码进行分析。 拦截器是Struts2框架的核心组件之一,它允许我们在请求到达Action之前或离开Action之后执行一些额外的操作,如日志记录、权限验证、性能...
在深入探讨自定义拦截器之前,我们先理解一下Struts2拦截器的基本概念。 拦截器(Interceptor)是基于Java的动态代理机制实现的,它可以拦截用户的请求,对请求进行预处理,并且在Action执行后进行后处理。通过在...
Struts2_3500_my_interceptor这个文件可能包含了一个示例项目的源代码,你可以通过学习和分析其中的代码,更深入地理解如何在Struts2中创建和使用自定义拦截器。通过实际操作,你会发现自定义拦截器是Struts2框架中...
自定义拦截器允许开发者扩展框架的功能,实现如日志记录、权限验证、性能监控等通用任务,而不必在每个动作类(Action)中重复编写相同代码。本文将深入探讨自定义拦截器的基本应用及设置方法。 首先,理解拦截器的...
本篇文章将深入探讨如何实现自定义拦截器及其在Struts2中的详细配置。 首先,我们来了解自定义拦截器的基本步骤: 1. **创建拦截器类**:自定义拦截器需要继承Struts2提供的`Interceptor`接口或实现`intercept()`...
2. **拦截器的编写和使用**:创建自定义拦截器类,实现`Interceptor`接口,以及如何在配置文件中引用拦截器。 3. **Action的编写**:创建Action类,定义业务方法,使用注解进行配置。 4. **JPA基础**:了解JPA的基本...
3. 为了让Struts2框架知道我们的自定义拦截器,需要在配置文件(通常是`struts.xml`)中声明它。在配置中,我们可以指定拦截器的执行顺序,以及哪些Action应该通过这个拦截器。 接下来,我们关注用户权限验证。在...
2. **配置拦截器**:在Struts2的配置文件(通常为struts.xml)中注册自定义拦截器,并指定其在拦截器栈中的位置。例如: ```xml <struts> <package name="default" namespace="/" extends="struts-default"> ...
自定义拦截器是Struts2框架中扩展功能的重要手段,让我们深入探讨如何在Struts2中实现自定义拦截器。 首先,创建一个Web项目是基础步骤,这可以通过IDE如Eclipse或IntelliJ IDEA来完成。确保你的项目包含了Struts2...
在Struts2中,拦截器是实现业务逻辑控制和处理流程的重要组件,它们可以添加额外的功能,如日志记录、权限检查、事务管理等,而不干扰实际的业务操作。本篇文章将详细介绍如何配置Struts2的登录拦截器,以及其背后的...
总结来说,防止重复提交的自定义拦截器在Struts2中起到了关键作用,通过生成和验证令牌,能够在不依赖Struts2标签的情况下,有效地避免了用户意外或恶意的重复提交,保证了应用的稳定性和数据的一致性。