知识大全 Jakarta Struts简介(一)

Posted 框架

篇首语:笛里谁知壮士心,沙头空照征人骨。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Jakarta Struts简介(一)相关的知识,希望对你有一定的参考价值。

Jakarta Struts简介(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Web应用开发早期曾经是那么的 简单 那个时候还只是纯HTML页面和浏览器特效而已 由于还涉及不到动态数据操作和商业应用 也就省去了很多麻烦 但是这样的 简单 只是过眼云烟 如今我们不得不为复杂的基于Web的商业应用开发采用诸多技术    本文将介绍如何利用Struts进行应用开发的前台整合的开发过程 Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架(译注 ) 是利用Java Servlet和JSP构建Web应用的一项非常有用的技术    阅读本文需要读者具有以下几方面的开发经验 JSP Servlet 自定义标签库(custom tag library)和XML 如果读者想补一补自定义标签库的知识 可以参考作者以前关于这方面的文章 而本文也是关于介绍如何使用Struts系列文章的上半部分 本系列暂定分为上下两部分      新手上路注意事项   Struts是一个基于Sun J EE平台的MVC框架 主要是采用Servlet和JSP技术来实现的 其最初萌芽于Craig McClanahan的构思 诞生至今也一年有余了(译注 ) 现在 Struts是Apache软件基金会旗下Jakarta项目组的一部分 其官方网站是 由于Struts能充分满足应用开发的需求 简单易用 敏捷迅速 在过去的一年中颇受关注 Struts把Servlet JSP 自定义标签和信息资源(message resources)整合到一个统一的框架中 开发人员利用其进行开发时不用再自己编码实现全套MVC模式 极大的节省了时间 所以说Struts是一个非常不错的应用框架    目前的Struts 修正版包括完整的文档 既可以说是用户文档又是开发指导文档 如果读者是JSP新手 或者对MVC设计模式不是太熟的话 可能刚上路时会比较慢 不过不用担心 要相信自己会尽快赶上的:)   此外 应该注意到尽管当前Struts只是 版 但已经相当稳定了 作者从Struts 版就在一个大规模的项目中应用了(最近升级到 版) 至今还没有遇到什么麻烦问题 实际上 Struts在这个要开发复杂用户界面的项目中 为我们团队大大的缩短了开发时间 在此衷心的感谢Struts项目团队的所有开发人员    哦 还有 如果读者开始上路了 要知道Struts的邮件列表可是有相当分量的 在这里混混才可保证能及时跟上Jakarta项目的最新动态哦        开始上路!   Struts框架可分为以下四个主要部分 其中三个就和MVC模式紧密相关    模型(Model) 本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论) 开发者通过其实现商业逻辑 同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts config xml文件描述的配置信息的    视图(View) View是由与控制器Servlet配合工作的一整套JSP定制标签库构成 利用她们我们可以快速建立应用系统的界面    控制器(Controller) 本质上是一个Servlet 将客户端请求转发到相应的Action类    一堆用来做XML文件解析的工具包 Struts是用XML来描述如何自动产生一些JavaBean的属性的 此外Struts还利用XML来描述在国际化应用中的用户提示信息的(这样一来就实现了应用系统的多语言支持)    好 下一步咱们来看看构成这个框架的各个部分以及相互之间是怎样运作的吧!     搞定配置先   在使用Struts之前 咱们必先设置好JSP服务器 以便让服务器在用户请求时 知道该如何将指定后缀的请求转到相应的Controller-Struts ActionServlet处理 当然 这些配置信息都一般在服务器启动时通过web xml文件读入的 我们可以在web xml定义多个Controlloer 为每一个应用定义一个 一个典型的web xml文件配置如下 其中有相应的注释 很好懂的 在后面讨论Action的时候 我们将主要分析strutc config xml   <web app>   <servlet>  <!   以下配置信息声明了Struts中的ActionServlet 即一个名为OreillyAction的Servlet 其具体实现为 apache struts action ActionServlet 在这个配置中还有这个Servlet的两个参数 debug level和detail 此处这两个参数的值都设为了 此外还设置了在启动载入时创建两个实例    >      <servlet name>OreillyActionServlet</servlet name>    <servlet class> apache struts action ActionServlet</servlet class>    <init param>     <param name>config</param name>     <param value>/WEB INF/struts config xml</param value>    </init param>    <init param>     <param name>debug</param name>     <param value> </param value>    </init param>    <init param>     <param name>detail</param name>     <param value> </param value>    </init param>    <load on startup> </load on startup>   </servlet>  <!     设置所有后缀为 action的请求 都转发到OreillyActionServlet   >  <servlet mapping>    <servlet name> OreillyActionServlet </servlet name>    <url pattern>* action</url pattern>   </servlet mapping>  <!     将初始请求页面设置为login jsp   >   <wele file list><wele file>login jsp</wele file></wele file list>  <!     设置Struts的JSP页面要用到的标签库和她们的路径   >   <taglib>    <taglib uri>/WEB INF/struts bean tld</taglib uri>    <taglib location>/WEB INF/struts bean tld</taglib location>   </taglib>   <taglib>    <taglib uri>/WEB INF/struts tld</taglib uri>    <taglib location>/WEB INF/struts tld</taglib location>   </taglib>   <taglib>    <taglib uri>/WEB INF/struts logic tld</taglib uri>    <taglib location>/WEB INF/struts logic tld</taglib location>   </taglib>  </web app>     控制器(Controller)  Controller是这个框架中扮演 交通警察 的角色 当客户端与服务器有交互动作时 都由她来控制 Controller将HTTP请求封包并转发到框架中相应的对象 这些对象可能是一个JSP页面或一个Action    Controller在web xml中设置为 apache struts action ActionServlet的一个实例 在本例中 这个实例就是OreillyActionServlet 在一个完整的控制过程中 也就是处理一个HTTP请求时 在控制过程之初 这个Servlet会从一个配置文件struts config xml中获取请求与控制动作向对应的配置信息 这个我们会在后面详细讨论 Controller通过这些配置信息来决定HTTP请求该往何处转发 而这些Action在接收到转发来的请求后 实现真正的商业逻辑 我们要注意的非常重要的一点是Action对象要能够调用这个ActionServlet的若干方法 通过这个有力的特性 当Action对象在控制过程中将请求再向别的Action对象转发时(最初的请求是由ActionServlet获取 向Action对象转发 而Action对象还可以再转发到别的对象) 我们可以将一些需要共享的数据对象通过调用一些方法放入这个Servlet相关的一些标准容器中捎带过去        模型(Model)   所谓Model就是在对用户请求的整个控制过程中 真正处理用户请求并保存处理结果的对象 在整个过程中 我们一般利用JavaBean来把一些信息保存起来以便在各个对象之间传递 因为在框架中 Model对象是真正处理商业逻辑功能的对象 因此也就是框架中应用需求实现相关性最大的部分 在Struts的实现里 Model的具体表现形式就是ActionForm对象和与其对应的Action对象了 对用户提交表单的数据进行校验 甚至对数据进行预处理都能在ActionForm中完成 通常的应用中 一般是一个Model对象和一个请求页面对应的关系 但也可以一个Model对象对应多个页面请求 如果struts config xml配置文件没有指定一个Model对象对应的Action 那么控制器将直接把(通过Model对象完成数据封装的)请求转到一个View对象      struts config xml   前面多次提到的struts config xml配置文件是整个框架的主心骨 web xml文件定义了一个请求到来应向何处转发后 后面的工作就全权由struts config xml管理控制了 可以说struts config xml就是整个Struts框架的 扛把子 (译注 ) 只有这位 老大 清楚所有请求与动作的映射关系 要是他哪里没有搞定或不爽的话 整个 社团 就什么也摆不平了:)如今的应用系统 XML形式的配置文件越来越多 如果整个系统只使用一个这样的配置文件的话 那么保持整个系统的模块化和可维护性都非常的轻松 使用配置文件来描述请求 动作的控制过程和相互关系 而不是在代码中将对象之间的调用关系写死 那么都应用系统有变动时 我们只用修改配置文件就行了 而不是再重新编译发布程序了    Controller通过struts config xml文件的配置信息确定当有请求时应该调用那个对象来处理 从效率的角度出发 这些信息都是在系统启动时读入并存在内存中的 下面我们将讲解一个极短小的struts config xml文件 文件中定义了一个与登录请求对应的登录动作 请求到达后将被转发到 oreilly ui authentication actions LoginAction这个Action对象 该对象处理 cha138/Article/program/Java/ky/201311/28837

相关参考

知识大全 学习Jakarta Struts 1.1 (一)

学习JakartaStruts1.1(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文是

知识大全 Jakarta Struts学习之实战演示

JakartaStruts学习之实战演示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Acti

知识大全 学习Jakarta Struts 1.1 (二)

学习JakartaStruts1.1(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Dyn

知识大全 学习Jakarta Struts 1.1 (三)

学习JakartaStruts1.1(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在第一

知识大全 Jakarta Struts学习之应用实践

JakartaStruts学习之应用实践  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文是三

知识大全 运用Jakarta Struts的七大实战心法

运用JakartaStruts的七大实战心法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  (作

知识大全 运用Jakarta Struts的七大实战心法解析

运用JakartaStruts的七大实战心法解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Jakarta Struts应用的七个经验(3)

JakartaStruts应用的七个经验(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  把

知识大全 Jakarta Struts应用的七个经验(1)

JakartaStruts应用的七个经验(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  编

知识大全 Jakarta Struts应用的七个经验(5)

JakartaStruts应用的七个经验(5)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使