站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Struts
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
[[Image:Struts.jpg|right|200px|thumb|Struts框架的组件结构图]] '''Struts'''是[[开源软件]]。使用Struts的目的是为了帮助我们减少在运用[[MVC]]设计模型来开发[[Web]]应用的时间和想混合使用[[Servlets]]和[[JSP]]的优点来建立可扩展的应用。 ==软件概况== 授权协议:免费软件 运行环境:Windows 官方网站:http://struts.apache.org 软件下载:[http://down.zzbaike.com/download/struts-4082.html 站长下载] ==特点== '''Struts'''是[[Apache]]基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助[[java]] 开发者利用[[J2EE]]开发Web应用。和其他的java架构一样,Struts 也是 [[面向对象]]设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 Java Servlets,[[JavaBeans]],[[ResourceBundles]]与[[XML]]等标准技术,以及 Jakarta Commons 的一些类库。 Struts由一组相互协作的[[类]](组件)、Servlet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。 Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。 Struts跟[[Tomcat]]、[[Turbine]]等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。 Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib 是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。 MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。 ==使用手册== 下面我们将详细分析Struts: [[Image:Struts_1.jpg|660px]] 上图显示的是 org.apache.struts.action 包的一个最简 UML 图。图中显示了 ActionServlet (Controller)、 ActionForm (Form State) 和 Action (Model Wrapper) 之间的最简关系。 ===ActionServlet 类 === ActionServlet 是该 MVC 实现的 Command 部分,它是这一框架的核心。 ActionServlet (Command) 创建并使用 [[Action]] 、 ActionForm 和 ActionForward 。struts-config.xml 文件配置该 Command。在创建 Web 项目时,您将扩展 Action 和 ActionForm 来解决特定的问题。文件 struts-config.xml 指示 ActionServlet 如何使用这些扩展的类。这种方法有几个优点: * 应用程序的整个逻辑流程都存储在一个分层的文本文件中。这使得人们更容易查看和理解它,尤其是对于大型应用程序而言。 * 网页设计人员不必费力地阅读 Java 代码来理解应用程序的流程。 * Java 开发人员也不必在更改流程以后重新编译代码。 可以通过扩展 ActionServlet 来添加 Command 功能。 ===ActionForm 类 === ActionForm 维护 Web 应用程序的会话状态。 ActionForm 是一个抽象类,必须为每个输入表单模型创建该类的子类。当我说 输入表单模型 时,是指 ActionForm 表示的是由[[HTML]] [[表单]]设置或更新的一般意义上的[[数据]]。例如,您可能有一个由 HTML 表单设置的 UserActionForm 。Struts 框架将执行以下操作: * 检查 UserActionForm 是否存在;如果不存在,它将创建该类的一个实例。 * Struts 将使用 HttpServletRequest 中相应的域设置 UserActionForm 的状态。没有太多讨厌的 request.getParameter() 调用。例如,Struts 框架将从请求流中提取 fname ,并调用 UserActionForm.setFname() 。 * Struts 框架在将 UserActionForm 传递给业务包装 UserAction 之前将更新它的状态。 * 在将它传递给 Action 类之前,Struts 还会对 UserActionForm 调用 validation() 方法进行表单状态验证。但在 UserAction 类中进行状态验证可能更好。 * 可在会话级维护 UserActionForm 。 注: * struts-config.xml 文件控制 HTML 表单请求与 ActionForm 之间的映射关系。 * 可将多个请求映射到 UserActionForm 。 * UserActionForm 可跨多页进行映射,以执行诸如向导之类的操作。 ===Action类=== Action 类是业务逻辑的一个包装。 Action 类的用途是将 HttpServletRequest 转换为业务逻辑。要使用 Action ,请创建它的子类并覆盖 process() 方法。 ActionServlet (Command) 使用 perform() 方法将参数化的类传递给 ActionForm 。仍然没有太多讨厌的 request.getParameter() 调用。当事件进展到这一步时,输入表单数据(或 HTML 表单数据)已被从请求流中提取出来并转移到 ActionForm 类中。 注:扩展 Action 类时请注意简洁。 Action 类应该控制应用程序的流程,而不应该控制应用程序的逻辑。通过将业务逻辑放在单独的包或 EJB 中,我们就可以提供更大的灵活性和可重用性。 考虑 Action 类的另一种方式是 Adapter 设计模式。 Action 的用途是“将类的接口转换为客户机所需的另一个接口。Adapter 使类能够协同工作,如果没有 Adapter,则这些类会因为不兼容的接口而无法协同工作。”。 ===Error类=== 上图中还包括 ActionError 和 ActionErrors 。ActionError 封装了单个错误消息。 ActionErrors 是 ActionError 类的容器,View 可以使用标记访问这些类。 ActionError 是 Struts 保持错误列表的方式。 Command (ActionServlet) 与 Model (Action) 之间的关系的 UML 图如下: [[Image:Struts_2.jpg|520px]] ===ActionMapping类=== 输入事件通常是在 HTTP 请求表单中发生的,servlet 容器将 HTTP 请求转换为 HttpServletRequest 。控制器查看输入事件并将请求分派给某个 Action 类。 struts-config.xml 确定 Controller 调用哪个 Action 类。 struts-config.xml 配置信息被转换为一组 ActionMapping ,而后者又被放入 ActionMappings 容器中。 ActionMapping 包含有关特定事件如何映射到特定 Action 的信息。 ActionServlet (Command) 通过 perform() 方法将 ActionMapping 传递给 Action 类。这样就使 Action 可访问用于控制流程的信息。 ===ActionMappings=== ActionMappings 是 ActionMapping 对象的一个集合。 ==相关资源== *[http://www.chinajavaworld.com/forum.jspa?forumID=48 Struts及MVC Framework论坛] *[http://www.javathinker.org/bbs/db.jsp?db=2 JavaThinker论坛] ==相关条目== *[[编程]] *[[JavaScript]] ==参考来源== *[http://www.ibm.com/developerworks/cn/java/j-struts 参考来源] [[category:JAVA|S]] [[category:JSP|S]] [[category:计算机技术|S]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)