深入学习Struts2:拦截器与文件上传实战

4星 · 超过85%的资源 需积分: 9 5 下载量 105 浏览量 更新于2024-07-28 1 收藏 577KB PDF 举报
"Struts2教程--拦截器和文件上传" 在深入探讨Struts2的拦截器和文件上传之前,我们首先要理解Struts2框架的基本概念和结构。Struts2是一个强大的MVC(Model-View-Controller)框架,它在设计上借鉴了Webwork的核心技术,与之前的Struts1.x相比,提供了更为灵活和强大的功能。Struts2的核心库包括`struts2-core-2.0.11.1.jar`、`xwork-2.0.4.jar`、`commons-logging-1.0.4.jar`、`freemarker-2.3.8.jar`和`ognl-2.6.11.jar`等,这些库构成了框架的基础。 **Struts2的拦截器(Interceptors)** 拦截器是Struts2中的一个重要概念,它们提供了一种机制,可以在Action执行前后插入额外的功能,比如日志记录、事务管理、权限检查等。拦截器通过配置在struts.xml文件中,形成一个拦截器栈,每个请求在到达Action之前都会经过这个栈中的拦截器处理。拦截器的实现是基于Java的动态代理,使得开发者可以轻松地扩展和组合拦截行为。 **文件上传(File Upload)** 在Struts2中,文件上传功能可以通过使用`struts2-convention-plugin`或`struts2-core`库中的`FileUploadInterceptor`来实现。用户通常需要创建一个Action类,该类包含一个或多个`java.io.File`类型的属性,以及对应的`String`类型的文件名属性,用于接收文件流。此外,还需要设置表单的`enctype`属性为`multipart/form-data`,以支持文件上传。Struts2会自动处理文件的解析和存储,同时还可以设置最大文件大小、允许的文件类型等限制。 **建立Struts2应用的基本步骤** 1. **配置环境**:确保安装了合适的开发工具(如MyEclipse6)、Web服务器(如Tomcat6)、JDK和JavaEE版本,并且下载并引入Struts2所需的库文件。 2. **创建Web项目**:在MyEclipse或其他IDE中创建一个新的Web项目,并将上下文路径设置为`struts2`。 3. **配置Web.xml**:在`web.xml`中配置Struts2的核心过滤器`FilterDispatcher`(在较新版本中是`StrutsPrepareAndExecuteFilter`),以启用Struts2框架。 4. **编写Action类**:创建Action类,这个类通常会继承自`ActionSupport`,并实现业务逻辑方法。在Struts2中,Action不再需要像Struts1.x那样直接继承自`Action`类。 5. **定义Action映射**:在struts.xml配置文件中,定义Action的映射,包括Action类、方法、结果视图等信息。 6. **创建视图**:视图通常是JSP页面,使用Struts2标签库来展示数据和处理用户交互。 7. **添加拦截器**:在struts.xml中配置拦截器栈,为Action添加拦截器以实现特定功能。 8. **文件上传处理**:在Action类中定义接收文件的属性,配置相应的表单字段,然后在Struts2配置文件中启用`FileUploadInterceptor`。 9. **测试运行**:部署项目,通过浏览器访问URL进行测试,如`http://localhost:8080/struts2/index.jsp`。 Struts2的拦截器机制和文件上传功能极大地增强了框架的灵活性和实用性,使得开发者可以更加专注于业务逻辑,而不是关注底层的实现细节。通过熟练掌握这些知识点,你可以构建出高效、可维护的Web应用程序。