在Struts1.x中使用Interceptor
几个月前,Struts2发布,这个版本较struts1.x版本有了很大变化,其中一个就是增加了拦截器功能。这是个非常有用的功能,可是struts1.x却没有。其实,struts1.x可以配合插件,实现拦截器的功能。
SAIF(Struts Action Invocation Framework)是一个开源组件,它让Struts框架具备Action拦截器与IOC的功能,这样你的1.x框架也就有了拦截器的功能。
就是添加拦截器的步骤:
1.将saif.jar包放入你的lib中。
2.创建Interceptor类。比如我在这里创建一个类:
package interceptor;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import net.sf.struts.saif.ActionHaveForwardInterceptor;
public class DisplayInterceptor implements ActionHaveForwardInterceptor ... {
public ActionForward afterAction(Action arg0, ActionMapping arg1,
ActionForm arg2, HttpServletRequest arg3, HttpServletResponse arg4)
throws IOException, ServletException ... {
// TODO Auto-generated method stub
return null ;
}
public ActionForward beforeAction(Action action, ActionMapping mapping,
ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException ... {
// TODO Auto-generated method stub
System.out.println( " Inteceptor... " );
if ( ! " fred " .equals(request.getParameter( " user_name " ))) ... {
return mapping.findForward( " noPermission " );
}
return null ;
}
}
3.写interceptor配置文件:interceptor-config.xml。这个配置文件中指定了interceptor类和要被拦截的action
<? xml version="1.0" encoding="UTF-8" ?>
< interceptor-config >
< interceptor name ="displayInterceptor" type ="interceptor.DisplayInterceptor" />
< action type ="/display" >
< interceptor name ="displayInterceptor" />
</ action >
</ interceptor-config >
4.在struts-config.xml中指定加载interceptor-config.xml
< plug-in className ="net.sf.struts.saif.SAIFSpringPlugin" >
< set-property property ="interceptor-config" value ="/WEB-INF/interceptor-config.xml" />
</ plug-in >
ok,配置完后,启动服务器,然后输入.../display.do?user_name=fred,回车,这时候,这个请求就会被拦截来,
进入beforeAction中,进行验证,若验证成功,return null,就会转到action的forward指向的页面,若不成功,
就会转向另一个页面。
分享到:
相关推荐
- **Struts2.x** 配置文件较少,主要为struts.xml,支持注解配置,减少XML配置的繁琐。 8. **插件与扩展性**: - **Struts1.x** 插件较少,扩展性相对较弱。 - **Struts2.x** 有丰富的插件系统,如Ajax、...
在Struts1.x中,Action是核心组件之一,它必须继承自org.apache.struts.action.Action类,并且需要覆盖execute方法。Action对象由框架创建和管理,每一个HTTP请求都对应一个Action实例。然而,在Struts2.x中,Action...
2. **Action类**:在Struts1.x中,每个HTTP请求都会映射到一个特定的Action类实例。Action类是Controller的实现,它处理用户请求,执行相应的业务逻辑,并返回一个表示结果的ActionForward对象。 3. **配置文件**:...
- **手动搭建**:在 MyEclipse 中手动添加 Struts1.x 的相关依赖库,配置 web.xml 文件,并创建 struts-config.xml 文件来定义 Action 映射等配置。 - **IDE 工具支持**:利用 MyEclipse 或 Eclipse 等集成开发环境 ...
在Struts1.x中,Model代表业务逻辑,View负责数据展示,Controller处理用户请求并协调Model和View。 2. **Action类**:每个HTTP请求都对应一个Action类,这是Struts1.x的核心组件。Action类处理用户请求,执行相应...
2. **Action类**:在Struts 1.x中,Action 类是处理用户请求的核心组件。每个Action对应一个特定的用户动作,它接收HTTP请求,执行相应的业务逻辑,并通过ActionForward指定视图(JSP页面)进行响应。 3. **配置...
在Struts1.x中,实现I18N(Internationalization)主要是通过资源文件(如*.properties)来管理不同语言的文本。这些文件按照语言和地区进行组织,例如,`message_en.properties`用于英文,`message_zh_...
1. **安装和配置**:了解如何在项目中集成Struts1.x框架,配置web.xml和struts-config.xml文件。 2. **Action和ActionForm**:深入理解这两者的作用,如何编写和使用它们。 3. **视图渲染**:熟悉JSP页面和Struts...
在Struts1.x中,Controller由ActionServlet实现,它处理HTTP请求,并通过配置文件(struts-config.xml)调度Action类来执行特定的业务逻辑。 接下来,我们将逐步了解如何创建一个简单的Struts1.x应用: 1. **搭建...
在Struts1.x中,ActionServlet作为控制器,ActionForm对象作为模型和控制器之间的数据载体,而JSP页面作为视图。 2. **配置文件**: - **struts-config.xml**:这是Struts1.x的核心配置文件,定义了ActionMapping...
- 为了实现用户可以在应用中自由切换语言,可以创建一个链接或下拉菜单,触发改变请求的`Locale`属性,Struts会自动使用新的`Locale`加载资源。 9. **处理日期和数字**: - 国际化不仅涉及文本,还包括日期、数字...
在Struts1.x中,这一角色由ActionServlet承担;而在Struts2.x中,则是通过过滤器(Filter)来实现对请求的处理和支持。 **URL Pattern支持**:为了统一处理所有的请求,Struts2.x推荐使用`*.action`作为映射路径,这...
在Struts 1.x中,如果需要在表单中处理文件上传,这个库是必不可少的。 搭建Struts 1.x环境的步骤通常包括以下几点: 1. 将这些jar包添加到你的项目类路径中。 2. 创建`struts-config.xml`配置文件,定义Action、...
10. **Session和Request范围的对象管理**:Struts1.x提供了一种机制来管理请求和会话范围内的对象,避免在JSP页面中直接操作这些对象,保持代码的整洁。 学习Struts1.x时,你需要熟悉上述概念并掌握它们之间的交互...
Struts 2.x权威指南(第3版)
freemarker与struts 1.x 结合,生成html 在http://blog.csdn.net/chen1255 的web中有详细描述关于freemarker与struts1.x的结合
在Struts1.x中,JDBC(Java Database Connectivity)是常用于与数据库交互的技术,它允许开发者通过Java代码来执行SQL语句,实现数据的增删改查操作。下面将详细探讨Struts1.x框架结合JDBC进行数据库操作的知识点。 ...
在Struts1.x中实现多文件上传,主要涉及以下几个核心概念和步骤: 1. **表单设计**:首先,你需要创建一个HTML表单,包含`<input type="file">`字段,允许用户选择多个文件。每个文件输入字段应设置不同的name属性...
Struts1.x、Hibernate 和 MySQL 是构建Web应用程序的三个关键组件,它们在电子商务系统中扮演着重要的角色。这里我们将深入探讨这些技术以及如何在在线购物车系统中整合它们。 **Struts1.x** 是一个开源的Java框架...
1. **ActionForm**:在Struts1.x中,ActionForm是用于封装HTTP请求参数的类,它对应于视图层的表单数据。ActionForm实例化后,其属性会通过Struts的默认数据绑定机制从请求参数填充,便于Action类进行处理。 2. **...