深入Struts框架:Java Web开发实践应用

### 知识点:Java Web 三大框架——Struts开发应用
#### 1. Java Web 技术概述
Java Web 技术是基于Java的用于开发动态网页和网络应用程序的一系列技术。它包括了Java Servlet、JavaServer Pages (JSP)、JavaBeans、以及各种Java技术的扩展和API。Java Web 技术的核心是Java Servlet技术,用于处理客户端的请求并生成响应。
#### 2. Struts框架简介
Struts框架是Java Web 三大框架之一(另外两个是Spring和Hibernate),它是一种MVC(Model-View-Controller)框架,用于简化基于Java EE的Web应用程序的开发。Struts通过采用拦截器的机制来处理用户的请求,将业务逻辑与页面展示分离,从而提高应用的可维护性和可扩展性。
#### 3. Struts 项目结构
一个典型的Struts项目结构大致分为以下几部分:
- **模型(Model)**: 通常包含一组Java Bean,用于封装数据,并且和数据库进行交互。
- **视图(View)**: 由JSP文件组成,负责展示数据和用户界面。
- **控制器(Controller)**: 由Struts的ActionServlet和Action类组成,负责接收用户的请求并将它们分发到适当的视图。
#### 4. Struts 核心组件
- **ActionServlet**: Struts的前端控制器,负责接收所有的用户请求,并根据配置文件struts-config.xml将请求分发给相应的Action类。
- **Action**: 用于接收ActionServlet转发过来的请求,执行具体的业务逻辑,并返回一个ActionForward对象。
- **ActionForm**: 封装了用户提交的数据,用于在用户请求和Action之间传递数据。
- **ActionMapping**: 描述了Action和URL之间的映射关系,通常在struts-config.xml配置文件中定义。
- **ActionForward**: 定义请求转发的目标路径。
- **配置文件(struts-config.xml)**: 配置ActionServlet、ActionForm、Action、ActionForward等信息。
#### 5. Struts的工作流程
1. 用户通过浏览器发起请求。
2. 请求被发送到Struts框架的ActionServlet(前端控制器)。
3. ActionServlet根据struts-config.xml配置文件找到对应的ActionMapping对象。
4. 根据ActionMapping对象的信息,ActionServlet创建相应的ActionForm实例,并填充表单数据。
5. ActionServlet调用相应的Action对象,并传递ActionForm对象给它。
6. Action对象执行业务逻辑处理,结果封装在ActionForward对象中返回给ActionServlet。
7. ActionServlet根据ActionForward对象指定的路径转发请求到相应的JSP页面或其他资源。
#### 6. Struts 的配置文件(struts-config.xml)
配置文件struts-config.xml是Struts应用的枢纽,它定义了ActionForm、Action、ActionForward等组件以及它们之间的映射关系。通过配置文件,开发者可以灵活地定义请求的路由规则、表单处理、数据校验等。
#### 7. Struts Token 项目(StrutsTokenProject)
在开发过程中,为了防止表单重复提交,Struts提供了一个名为Struts Token的插件。Struts Token插件通过在服务器端和客户端同时进行令牌校验,防止因用户多次提交表单而造成的数据重复处理问题。
- **令牌生成**: 当一个表单第一次被访问时,Struts Token 插件会在会话中生成一个唯一的令牌值,并将其存储在表单中。
- **令牌提交**: 用户提交表单时,Struts Token 插件会检查会话中的令牌值是否和表单中的令牌值一致。
- **令牌校验失败**: 如果不一致,表明用户可能尝试了重复提交表单,此时插件可以拦截提交并给出提示或者进行处理。
- **令牌消费**: 当表单成功提交后,Struts Token 插件会消费掉这个令牌,以确保后续的提交不会通过相同的令牌。
#### 8. 学习和使用Struts的建议
- 熟悉Java Web基础知识,包括Servlet、JSP和JavaBean等。
- 掌握MVC设计模式,理解模型、视图和控制器在应用程序中的角色和作用。
- 通过实践来了解Struts的配置和开发流程,包括自定义Action、ActionForm和数据校验等。
- 关注Struts的安全性问题,尤其是通过令牌机制防止重复提交。
- 了解Struts的扩展和集成,比如如何将Struts与其他框架(如Spring、Hibernate)整合使用。
#### 9. 结语
Struts作为Java Web开发中的一员,为开发者提供了一套相对完整的MVC框架解决方案。通过本文的学习,希望读者能够对Struts有一个全面的认识,并在实际开发中灵活运用。虽然目前Spring MVC已经逐渐取代Struts成为更受欢迎的选择,但对Struts框架的了解仍然对深入学习Java Web开发有着不可忽视的价值。
相关推荐






码农_人生
- 粉丝: 0
最新资源
- Android开发者的利器:最新反编译工具包
- Cocos2D-X实现重力感应控制及Android双击退出功能
- AJAX点击加载更多功能实现与实践
- 打气球游戏源文件:flash版
- tiny6410开发板Prolific USB转串口驱动安装指南
- Spring与Quartz整合及持久化解决方案
- 探索WPFtoolkit扩展组件在.net 3.5中的应用
- 基于MFC的简易计算器开发教程
- 探索SecureCRT7.0:高效Windows下的SSH终端仿真
- 天语W806+刷机指南:RECOVERY工具使用教程
- android自定义控件省市联动实现与源码解析
- Android仿360时间轴源码开发指南
- 深入浅出Hibernate实战技巧 第2版
- 32位MySQL 5.5.19版本zip包,安装无忧,方便快捷
- 获取Memcached-session-manager最新jar包的方法
- Unity3D相机智能缩放功能实现与优化
- Myeclipse集成最新Subclipse插件实现SVN版本控制
- 原道N90FHDRK版第三方Recovery刷入工具发布
- PBDeCompiler:快速掌握架构设计与编程之美
- 深入解析sigar工具包及其在DLL开发中的应用
- 科大讯飞Android语音合成与听写技术详解
- 繁体绿色版3GP/MP4超小型播放器发布
- Java曲线图生成实例及JFreeChart应用教程
- STM32F4开发板上的FreeRTOS操作系统Keil工程演示