Usage Notes
To use SAIF, you must configure it as a Struts plugin, configure the interceptor config file, and write any interceptors you need.
Struts Plug-In Configuration
SAIF needs to be configured as a plugin in the Struts configuration file. In the plug-in configuration, the location of the interceptor configuration file needs to be defined. It should look something like this:
<plug-in className="net.sf.struts.saif.SAIFPlugin">
<set-property property="interceptor-config" value="/WEB-INF/interceptor-config.xml" />
</plug-in>
Interceptor Configuration
All interceptors are defined in interceptor-config.xml (of course it could have any name). This file contains the interceptor definitions and how they should be applied. There are two ways to declare interceptors for Struts Actions: globally and by Action. When the Action is requested, first any global interceptors will be applied, then Action-specific interceptors.
The following interceptors are included in SAIF:
Included interceptors
Class
Description
net.sf.struts.saif.ComponentInterceptor |
Performs inversion of control functionality. Sets any components the Action has defined it needs. |
This is an example of an interceptor configuration file:
<interceptor-config>
<interceptor name="componentInterceptor" type="net.sf.struts.saif.ComponentInterceptor"/>
<interceptor name="testInterceptor" type="net.sf.struts.saif.TestInterceptor"/>
<default-interceptors>
<interceptor name="componentInterceptor"/>
</default-interceptors>
<action type="org.apache.struts.webapp.example.EditRegistrationAction">
<interceptor name="testInterceptor"/>
</action>
</interceptor-config>
Interceptor Implementation
Interceptors can perform actions before and after a Struts Action is called. To write an interceptor, simple implement the net.sf.struts.saif.ActionInterceptor interface and implement the beforeAction() and afterAction() methods.
This is an example of an interceptor implementation:
public class TestInterceptor implements ActionInterceptor
{
public void beforeAction(Action action, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
{
log.debug("beforeAction called");
}
public void afterAction(Action action, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
{
log.debug("afterAction called");
}
private Log log = LogFactory.getLog(TestInterceptor.class);
}
分享到:
相关推荐
- **ActionServlet**:作为Struts的核心,它拦截所有到达Web应用的请求,解析请求参数,然后根据配置文件转发到相应的Action。 - **ActionMapping**:映射URL请求到特定的Action实例。 - **Action**:处理业务...
这个API包含了Struts 1.1版本的核心组件、控制器、视图和模型接口,它为开发者提供了强大的MVC(Model-View-Controller)架构支持,极大地简化了开发流程。以下是关于Struts 1.1 API的详细知识点: 1. **MVC架构**...
在"struts1.1.jar"这个文件中,包含了Struts 1.1框架的核心组件和必要的类库,这些组件包括: 1. **ActionServlet**:这是Struts的核心控制器,负责处理HTTP请求并调度到相应的Action。它通过配置在struts-config....
9. **拦截器(Interceptor)**: 虽然Struts 1.1没有引入完整的拦截器概念,但它的PlugIn机制在某种程度上实现了类似的功能,允许开发者在请求处理流程中插入自定义逻辑。 10. **异常处理**: Struts 1.1提供了处理...
Struts 1.1 API 是一个非常重要的框架组件,它为Java Web开发提供了一种强大的模型-视图-控制器(MVC)架构。Struts 1.1是Apache软件基金会Struts项目的一个早期版本,其API文档对于理解和使用这个框架至关重要。在...
7. **Plug-In**: 插件机制允许开发者扩展Struts的功能,实现自定义的行为,如自定义拦截器或扩展框架功能。 8. **Internationalization (i18n)**: Struts支持多语言,通过Resource Bundle处理本地化信息。开发者...
##### 1.1 什么是拦截器? 拦截器(Interceptor)是面向切面编程(AOP)中的一项关键技术,主要用于在方法或字段被访问之前对其进行拦截,并在访问之前或之后加入特定的操作。这种策略在Struts2框架中得到了广泛的...
Struts2在Struts1的基础上进行了许多改进,如更强大的拦截器机制、支持注解配置、更灵活的视图技术(如FreeMarker、Velocity等),以及与Spring和其他框架的更好集成。 **学习Struts的重要性:** 虽然Struts1.1已...
通过阅读源码,开发者可以了解Struts2是如何处理请求、执行拦截器链、以及如何将数据绑定到Action实例上的。同时,源码也是查找和修复潜在问题的宝贵资源。 Struts2框架的一大特点是其高度可扩展性,允许开发者通过...
9. **Interceptor**:拦截器是Struts1中实现AOP(面向切面编程)的重要机制,可以定义在请求处理之前和之后执行的逻辑,例如日志记录、权限检查等。 10. **Struts标签库**:Struts1提供了丰富的JSP标签,如、等,...
2. **拦截器**: 拦截器是Struts 2中实现AOP(面向切面编程)的关键机制。它们允许开发者定义可重用的行为,如日志记录、事务管理或权限检查。在2.2.1.1中,可能已经对拦截器进行了增强,提供了更多的预定义拦截器或...
2. **强大的拦截器(Interceptors)**:拦截器是Struts2中的一大亮点,它们可以像过滤器一样在Action执行前后执行一系列预定义的任务,如日志记录、权限验证等,增强了代码的可复用性和可扩展性。 3. **模板技术**...
它通过拦截器(Interceptor)机制实现了灵活的请求处理,并支持多种结果类型(Result)来决定请求后的跳转路径。 Struts2.2.1.1源码中包含的主要模块有: 1. **核心框架**:这是Struts2的核心部分,包括Action、...
3. **拦截器(Interceptor)**:拦截器是Struts2的一大特色,它们按照预定义的顺序在动作执行前后运行,可以实现事务管理、权限控制、日志记录等功能,提高了代码的可重用性和可维护性。 4. **OGNL(Object-Graph ...
源码分析有助于开发者深入理解Struts2的工作原理,可以学习到Action的生命周期、拦截器的执行流程、以及结果如何将控制权传递给视图等。 7. **最佳实践**: - 使用ActionContext来获取和设置全局上下文信息。 - ...
3. **Interceptor(拦截器)**:类似于AOP(面向切面编程)的拦截器,可以在Action执行前后进行额外操作,如登录验证、日志记录、性能统计等。拦截器栈允许开发者定义一系列预设的拦截器顺序。 4. **Result**:...
4. **拦截器(Interceptor)**:拦截器是Struts2的一大特色,它们允许开发者在Action调用前后插入自定义逻辑,如登录检查、日志记录、性能监控等。拦截器链可以自由组合,提高了代码复用和可维护性。 5. **结果类型...
1. **Struts2框架核心概念**:Struts2的核心组件包括Action、Result、Interceptor(拦截器)、Value Stack(值栈)等。Action是业务逻辑处理的中心,Result负责展示结果,Interceptor处理请求前后的逻辑,Value ...
3. **拦截器(Interceptor)**:Struts2的拦截器机制是其灵活性和可扩展性的核心。拦截器链可以在Action调用前后插入自定义逻辑,比如日志记录、权限验证等。分析源码时,要重点关注与安全相关的拦截器。 4. **配置...
例如,可能使用数据库存储用户信息,使用session和cookie来管理用户登录状态,通过拦截器实现权限验证等。 8. **学校项目**:这个标签暗示项目可能是教学用途,因此可能会包含详细的注释和教程,以便学习者理解每个...