【 strut2 教程】 Struts 是一个开源的 MVC(模型-视图-控制器)框架,主要用于构建基于Java的企业级Web应用程序。它旨在提供一种结构化的、可维护性高的开发方式,通过分离业务逻辑、视图展示和控制流程,提高了开发效率和代码的可复用性。 **Struts的基本概念和体系结构** Struts框架的核心概念包括: 1. **控制器(Controller)**:在Struts中,控制器通常由`ActionServlet`(在Struts 1.x中)或`FilterDispatcher`(在Struts 2中)扮演,它们负责接收HTTP请求,解析请求参数,并根据配置信息调用相应的业务逻辑组件。 2. **业务逻辑层(Business Logic)**:这部分由开发者编写的Action类组成,它们实现了具体的应用业务逻辑,处理由控制器传递过来的请求。 3. **数据逻辑层(Data Logic)**:Struts提供了对数据库操作的支持,如`DBUtils`或`Hibernate`等,这些工具处理数据的存取和事务管理。 **配置Struts应用** 在Struts中,应用的配置主要通过XML文件进行,例如在Struts 1.x中的struts-config.xml和struts.properties,而在Struts 2中则使用struts.xml。这些配置文件定义了Action类、Action映射、结果页面和其他组件的设置。 **响应客户请求的流程** 当用户发送一个HTTP请求时,Struts框架会按照以下步骤响应: 1. 请求到达Servlet容器(如Tomcat)。 2. Struts的过滤器(FilterDispatcher)拦截请求。 3. 根据配置文件,确定应该调用哪个Action。 4. 执行对应的Action,处理业务逻辑。 5. Action返回一个Result,表示后续的处理,通常是跳转到一个JSP页面。 6. JSP页面渲染视图,返回给客户端。 **内置Action类** Struts 1.x中有一些内置的Action类,如`ForwardAction`、`RedirectAction`等,它们提供了预定义的行为,简化了开发过程。在Struts 2中,Action类更加灵活,可以通过注解或XML配置来定义行为。 **Struts应用的国际化(I18N)** Struts支持应用的国际化,通过资源包(Resource Bundle)来存储不同语言的文本。在配置文件中指定资源包,框架会根据用户的浏览器设置自动选择合适的语言版本。 **Struts常用标签库** Struts提供了丰富的标签库,如Logic Tags、Tiles、Display Tags等,它们简化了JSP页面的编写,使得开发者可以更专注于业务逻辑,而不是页面的呈现细节。 **预备知识:Servlet容器响应客户请求的过程** 在理解Struts之前,需要熟悉Servlet容器(如Tomcat)的工作原理,包括Servlet生命周期、HttpServletRequest和HttpServletResponse对象,以及共享数据的四种范围:PageContext、HttpServletRequest、HttpSession和ServletContext。 **Web应用结构的发展** 从JSP独立完成所有任务,到JSP Model1、Model2的演变,展示了Web应用架构的进步。Model2(即MVC模式)将控制逻辑从JSP中分离出来,提高了代码的组织性和可维护性,而Struts作为MVC框架,进一步优化了这种架构。 Struts通过提供一套完整的框架,帮助开发者遵循MVC模式构建Web应用,降低了开发复杂度,增强了应用的可扩展性和可维护性。学习和掌握Struts,能有效提升Java Web开发的效率和质量。
剩余63页未读,继续阅读
- 粉丝: 1
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 预警插件-Fine-report11
- 基于JavaWeb的汽车租赁平台论文.doc
- 基于web的在线学习管理系统设计与实现
- C语言结构体精讲,结构体在内存中的访问
- ip地址查询区域代码包括php c++ python golang java rust代码使用例子
- 视图库级联抓包,支持GA/T1400-2018版,包括Register, keepalive, subscribe, subscribeNotification等
- 尚硅谷宋红康C语言精讲.zip
- (175909636)全国293个地级市的经纬度信息
- (174549194)ANSYS Fluent Tutorial Guide
- (15341010)经典C程序一百例