JBuilder9运用Struts开发Web应用程序导览
- 格式:pdf
- 大小:1.78 MB
- 文档页数:11
JBuilder 9 运用Struts 开发 Web 应用程序导览使用Borland JBuilder 9 Developer 或Enterprise 版简介本文内容将引导读者了解JBuilder 9 集成开发环境如何搭配Apache 开放原始程序代码之Struts Framework以开发Web 应用程序,本文并非完整之 Struts 教学文件,适合已熟悉 Struts 读者藉以了解 JBuilder 对于 Struts 支持程度,而熟悉 JBuilder 开发环境用户则可藉本文对 Struts Framework 有概括性了解,Struts Framework 相关详细内容请参阅 /struts/index.html。
文中所述内容可适用于 JBuilder 9 Developer 版与 Enterprise 版。
Model-View-Controller 模式早期 Smalltalk 程序语言便采用了 MVC ( Model-View-Controller ) 模式 ( Patterns ) 以增加程序代码弹性,MVC模式将程序代码整理切割为三部份,Model 部分是业务与应用领域 ( Business domain ) 相关逻辑、管理状态之对象,Controller 部分接收来自 View所输入的资料并与Model 部分互动,是业务流程控制 ( Flow Control ) 之处,View 部分则负责展现资料、接收使用者输入资料。
在Java 应用中,JFC/Swing、AWT、JSP 皆是可用作 View 之技术规格,而JavaBean 与 Enterprise JavaBean 规格则可用于Model 程序代码,一旦应用程序以 MVC 模式加以适当之分割,Model 部分程序代码可在不同使用者接口外观之应用程序中重复使用。
Struts Framework 起源随着JSP 与 Servlet 技术大量应用于以 Web 为基础之应用程序,Java 开发人员群体认为应以较佳之模式以提升Web 应用程序之可维护性与重复使用性。
早期JSP 规格书中曾列举两种可行之JSP应用架构,分别为 Model1 与Model 2。
目录简介 1 Model-View-Controller 模式 1 Struts Framework 起源 1 Struts 基本组件 2 Data Transfer Object 模式 2 JBuilder 对于 Struts 之支持 2 步骤一 : 建立 Web 应用程序 3 步骤二 : 建立自定义之 ActionForm 类 3 步骤三 : 建立自定义之 Action 类 4 步骤四 : 设定 Forward 标记 5 步骤五 : 产生 JSP 5 步骤六 : 设定执行组件7 步骤七 : 执行 Web 应用程序8 处理中文编码问题8在 Model 1架构中,JSP 直接处理 Web 浏览器送来之请求 ( Request ),并辅以 JavaBean 处理应用相关逻辑。
Model 1 架构单纯编写比较容易,但在 Model 1 中 JSP 可能同时肩负 View 与 Controller 角色,两类程序代码有可能混杂而不易维护。
而 Model 2 中将 Servlet 纳入架构中扮演前端 Controller 角色,将 Web 浏览器送出之请求集中送至Servlet,Servlet可集中管理使用者登入、权限控制、多国语言转换等前置处理,再视需求转向给对应之 JSP 处理。
Model 2中采用了较佳之MVC 模式,但增加了编写复杂度。
2000 年Craig R. McClanahan 先生贡献了他编写的 JSP Model 2 架构之 Application Framework 原始程序代码给 Apache 基金会,成为 Apache Jakarta 计划 Struts Framework 前身。
Craig R. McClanahan 先生是 JCP Expert Group 成员之一,曾参与 JSP 规格制定与 Tomcat 4 之编写,因此 Struts Framework 广受 Java 开发人员群体所重视。
Borland 自 2002 年底开始于开发工具 JBuilder中支持Struts Framework。
Struts 基本组件Struts 依照 Model 2 架构,享有 MVC 模式之优点,并运用 XML 格式档案 struts-config.xml 存贮组件设定。
Struts 中负责Controller 之类以及负责 View 的 JSP 档案,都必须于组件档中正确设定,执行时期仅需修改 struts-config.xml 即可轻易变换 Controller 类变更程序行为,或重新导向至不同显示画面之 View。
Struts预先运行扮演前端 Controller 角色之 Servlet,此Servlet 称为 ActionServlet,倘若需用在ActionServlet 中处理集中、前置性控制作业,可以继承 ActionServlet 并覆盖 ( Overriding ) ActionServlet 的 process 方法,于其内撰写相关处理程序代码,倘若无此类需求,您完全不需要撰写任何与 ActionServlet 相关程序代码。
所有来自 Web 浏览器之请求,ActionServlet 会自动依照组件档 struts-config.xml内容正确地指派后端Controller加以处理。
Struts 以 Action 类扮演后端 Controller 角色,一般性、后置控制皆可置于Action 类的 perform 方法中加以实现,Action 类可依照struts-config.xml内forward 标记内容,将最后运算结果交由某个 JSP 呈现。
在展现使用者接口的View 部分,Struts 提供了五种自定义之 Tag Libraries 供JSP 使用,这些 Tag Libraries能够依照接收到的资料自动转换为 HTML,或提供条件判断等显示逻辑流程控制。
Data Transfer Object 模式在 Struts 架构中,Model、View、Controller 三部份可能跨越网络位于不同硬件环境中,为了解决 MVC 间传递、交换资料的问题,Struts 采用了 Data Transfer Object 模式( 或称 Value Object 模式 ) 来解决此问题。
Struts 中运用继承自为ActionForm的 JavaBean ( 亦可称为 FormBean ) 来储存使用者在 Web 浏览器中所输入的资料,由于JavaBean 可实现 Serialization 接口,具备跨越网络传递资料的特性,因而解决 MVC间资料传递交换问题。
此外,ActionForm亦可于其内实现资料核验之方法,实际应用中ActionForm 可能对应到多个 View 画面,每个ActionForm 开发完毕后也须于 struts-config.xml 内做正确之设定。
JBuilder 对于 Struts 之支持JBuilder 提供图形使用者接口以简化组件文件 struts-config.xml 之编辑与设定,此外,JBuilder 于 Object Gallery2对话框内的 Web 页次,提供四种精灵以简化 Struts 开发流程。
Struts Converter Wizard:可指定 HTML 或一般 JSP 档案自动产生使用 Struts Tag Libraries 之 JSP 档案。
ActionForm Wizard:可导入JSP 档案产生继承自 ActionForm 之类,或自定义属性 ( property ) 产生继承自 ActionForm 之类。
类产生后可选择是否自动完成 struts-config.xml 对应设定。
Action Wizard:可产生继承自 Action之类,设定搭配之 JSP 档案、有效范围 ( scope ) 并自动完成 struts-config.xml 对应设定。
JSP from ActionForm Wizard:可由指定之 ActionForm 自动产生使用 Struts Tag Libraries 之 JSP 档案。
除了上述精灵外,JBuilder 可协助开发人员自动设定web.xml 部署描述档,以便 JSP使用 Struts 自定义 Tag Libraries。
使用实例本文尝试开发一个简易的 Web 应用程序以帮助读者了解Struts Framework。
此 Web 应用程序允许使用者输入两独立字符串,并将两字符串连接后显示于网页。
由于处理逻辑过于简单,此实例中我们打算直接在扮演 Controller 角色的 Action 中完成两字符串连接动作,因此未使用一扮演 Model 角色之 JavaBean 或类来处理字符串连接。
步骤一: 建立 Web 应用程序首先点击选择 JBuilder 集成开发环境主菜单 File | NewProject…建立一个名为 StrutsDemo 之项目。
接着由菜单File | New… 激活Object Gallery 对话框,并点击选择Web 页次中的 Web Application 精灵准备建立 Web 应用程序。
Web Application 精灵会为此 Web 应用程序准备妥产生WAR 所需之部署描述档 web.xml,WAR 是 J2EE 规格中用以简化 Web 程序部署复杂度之标准档案格式。
我们为此 Web 应用程序命名为 demo,往后将会在编译此项目档时产生名为 demo.war 档案以便于部署,在此 Web 应用程序中由于将会用到 Struts 之 Tag Libraries,因此在JSP/Servlet frameworks 中勾选 Struts 1.0,同时JBuilder 会自动设定妥 web.xml。
步骤二 : 建立自定义之 ActionForm 类Struts Framework 中并未限制 MVC 三部份开发顺序,由于此时我们并未准备妥可输入两字符串之 HTML或JSP,因此尝试先建立储存信息之 ActionForm 类,再产生扮演 Controller 角色之 Action 类,最后再由 ActionForm 类产生 JSP 档案,读者可依状况调整顺序以适应实际案例。
3点击选择Object Gallery 对话框 Web 页次中 ActionForm Wizard 可产生自定义之 ActionForm 类,ActionForm Wizard 分为三步骤,步骤一中精灵自动侦测出之前已建妥之 Web 应用程序demo,我们将自定义 ActionForm 名称由预设 Untitled1ActionForm修改为 myActionForm,接着按下 Next 按钮进入步骤二。