52、Struts框架与JBuilder开发指南

Struts框架与JBuilder开发指南

在软件开发过程中,版本控制系统和合适的开发框架是至关重要的。版本控制系统能确保代码的可追溯性和团队协作的高效性,而像Struts这样的开发框架则能帮助开发者构建模块化、松耦合的Java Servlet应用程序。本文将详细介绍版本控制系统的使用、Struts框架的标签库以及如何使用JBuilder构建Struts应用程序。

版本控制系统的重要性

版本控制系统(VCS)是团队开发软件的关键部分。例如,Visual SourceSafe这种悲观的VCS,当你开始对文件进行修改时,其他开发者无法从VSS中检出该文件。这样,当你准备将修改后的文件检入VSS时,能保证仓库版本中不会有奇怪的修改。检入文件时,可以使用“Team”菜单或上下文敏感的“Navigation”窗格菜单中的“Check In”选项。

JBuilder为商业可用的VCS提供了开箱即用的支持,并且企业版还捆绑了简单但有效的CVS版本控制系统。这种对团队开发的内置支持,是区分单开发者代码IDE和企业级软件开发工具的关键。

在使用版本控制系统时,我们可能会思考以下问题:
- 为什么要使用版本控制?
- 使用版本控制有什么好处?
- 如果我是单开发者,版本控制有什么帮助?

Struts框架概述

Struts是Jakarta项目中的一个开发框架,基于模型 - 视图 - 控制器(MVC)设计范式,用于Java Servlet应用程序。MVC系统将业务逻辑、服务器端处理和显示逻辑分离成不同的组件,使得每个组件可以轻松重用和互换。

Struts由控制器Servlet、JavaBean和其他Java类、配置文件以及标签库组成。使用Struts框架时,你将拥有以下组件:
- 应用程序的控制器(Struts Servlet作为整个应用程序的通用控制器)
- 用于应用程序模型部分的JavaBean和其他辅助类集合
- 用于Java Server Pages的标签库集合

Struts使用一组配置文件将这些组件粘合在一起,这使得应用程序具有模块化和松耦合的特点。虽然对于简单的小型应用程序,创建和处理这么多文件可能会显得复杂,但使用模块化框架的额外努力很快会得到回报。

Struts标签库

Struts标签库是Struts组件,用于在应用程序逻辑中轻松集成Struts框架。Struts发行版为JSP框架提供了四个标签库:
1. Bean标签库 :封装了显示静态和动态网页所需的大多数功能,包括创建用于存储和显示数据的Bean、编写国际化消息以及嵌入JSP脚本片段。包含的标签有:
- define :定义一个新属性,并使其在指定的作用域(如请求、页面、会话或应用程序)中可用。
- include :在当前文件的源代码中包含其他文件的页面和片段。
- message :通过从资源文件中请求消息并将当前标签替换为正确国际化的消息,实现国际化。
- write :写入在任何级别公开的Bean的数据,即写入对象的属性。
2. HTML标签库 :封装了HTML代码和JSP中常用的所有标准HTML控件的标签,便于创建和维护表单、按钮等HTML控件,以及存储和检索数据。该标签库提供了链接和国际化两个重要功能,可用于创建超链接或锚点形式的页面链接,并能从HTTP请求中收集区域设置,然后使用Bean标签库中的 message 标签以适当的语言格式化文本。不过,使用部分标签可能会遇到一些挑战。
3. Logic标签库 :负责描述JSP及其控件的流程和功能所需的所有基本一阶和二阶逻辑函数,包含大多数二进制逻辑标签。
4. Template标签库 :用于基于JSP框架为具有共同格式的页面创建动态模板。该标签库提供了类似于样式表或JSP技术中标准 include 指令的功能,但它们是动态的。包含的标签有:
- Get :从请求作用域的Bean中检索内容。
- Insert :将检索到的内容插入到指定的模板中。
- Put :创建一个请求作用域的Bean,指定 get 标签要使用的内容。内容可以直接打印或从JSP或HTML文件中包含。

使用JBuilder构建Struts应用程序

以下是使用JBuilder构建Struts应用程序的具体步骤:
1. 创建新的Struts项目
- 选择“File” -> “New Project”,启动项目向导,将项目名称设置为“sampleProject”,其余属性可随意填写。
- 选择“File” -> “New”,在对象库中选择“Web”选项卡,启动Web应用程序向导。
- 选择“Web Application”图标,再次启动Web应用程序向导,并为其提供以下属性:
| 属性 | 值 |
| ---- | ---- |
| 名称 | Struts |
| 目录 | C:\Sample |
| JSP/Servlet框架 | 勾选struts |
| 启动URL | / |
2. web.xml文件
JSP容器会检查 web.xml 配置文件,确定存在哪些Strut动作Servlet,并将所有适当的文件请求映射到正确的动作Servlet。该文件包含三个部分:
- Struts Servlet(名为 ActionServlet )的定义
- 对该Servlet调用的URL映射
- Struts标签库的定义

示例代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC 
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
 "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
 <servlet>
 <servlet-name>action</servlet-name>
 <servlet-class>org.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>2</param-value>
 </init-param>
 <load-on-startup>2</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>action</servlet-name>
 <url-pattern>*.do</url-pattern>
 </servlet-mapping>
 <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-html.tld</taglib-uri>
 <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
 </taglib>
 <taglib>
 <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
 <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
 </taglib>
 <taglib>
 <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
 <taglib-location>/WEB-INF/struts-template.tld</taglib-location>
 </taglib>
</web-app>

JBuilder提供了多个编辑器来方便 web.xml 文件的维护和创建,部分编辑器及其用途如下:
| 编辑器 | 用途 |
| ---- | ---- |
| Web Application | 编辑Web应用程序的主要部署描述符 |
| Servlet Mapping | 创建从URL模式到动作类的映射 |
| Tag Library | 定义此Struts配置中可用的标签库 |
| Servlet | 指定可用的动作Servlet类父类 |

  1. struts-config.xml文件
    Struts有一个配置文件 struts-config.xml 来存储动作的映射,避免在组件中硬编码要调用的模块。控制器会检查该文件,以确定在动作请求时调用哪些模块,因此它是Struts的核心。

Struts启动时只读取 struts-config.xml 文件,使用Struts时的部分交互如下:
- Struts Servlet会自动将表单数据传输到你提供的JavaBean( ActionForm Bean)中,该Bean必须扩展Struts的 ActionForm 类。可以将其视为浏览器和数据库之间的缓冲区,还可用于初始化表单控件和验证用户输入的数据。
- Struts Servlet会调用你指定的类( Action 类),该类可以使用 ActionForm Bean中的数据。应用程序的编码从这个类开始,完成后将控制权返回给Struts Servlet。

创建 struts-config.xml 文件的步骤如下:
- 选择“Form Beans”编辑器,点击“Add”按钮,输入表单Bean的名称“submitForm”。
- 点击新创建的“submitForm”表单的“Edit”按钮,在表单Bean中指定实现类为“com.sams.sample.submitForm”。
- 使用“Action Mappings”编辑器中的“Add”按钮添加新的动作映射,路径名称为“/submit”。
- 选择新创建的动作映射并点击“Edit”按钮,使用源XML文件进行修改。
- 选择 struts-config.xml 文件的“Source”选项卡,编辑文件使其内容如下:

<?xml version="1.0" encoding="ISO8859_1"?>
<!DOCTYPE struts-config PUBLIC 
 "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" 
 "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
<struts-config>
 <form-beans>
 <form-bean name="submitForm" 
 type="com.sams.sample.submitForm" />
 </form-beans>
 <action path="/submit"
 type="coms.sams.sample.SubmitAction"
 name="submitForm"
 input="/submit.jsp"
 scope="request">
 <forward name="success" path="/submit.jsp"/>
 <forward name="failure" path="/submit.jsp"/>
 </action>
</struts-config>
- 保存应用程序。
  1. 构建Java Server Page
    为了使 ActionForm Bean正常工作,必须使用Struts自己的标签来创建HTML表单和其中定义的控件。创建JSP的步骤如下:
    • 选择“File” -> “New”,启动对象库,选择“Web”选项卡,点击“Java Server Page”。
    • 为新创建的JSP配置以下属性:
      | 属性 | 值 |
      | ---- | ---- |
      | 名称 | submitForm |
      | 标签库 | 勾选struts-bean和struts-html |
      | 生成 | 取消勾选所有生成选项 |
    • 点击“Finish”。
    • 创建JSP,示例代码如下:
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html>
<head><title>Stuts Framework Sample</title></head>
<body>
 <h3>Example Stuts Page</h3>
 <html:errors/>
 <html:form action="submit.do">
 Last Name: <html:text property="lastName"/><br>
 Address: <html:textarea property="address"/><br>
 Sex: <html:radio property="sex" value="M"/>Male 
 <html:radio property="sex" value="F"/>Female<br>
 Married: <html:checkbox property="married"/><br>
 Age: <html:select property="age">
 <html:option value="a">0-19</html:option>
 <html:option value="b">20-49</html:option>
 <html:option value="c">50-</html:option>
 </html:select><br>
 <html:submit/>
 </html:form>
</body>
</html>
  1. 编码ActionForm类
    Struts框架通常假设你已经定义了 ActionForm Bean。 ActionForm 类是一个Java类,为应用程序中每个所需的输入表单扩展 ActionForm 类。编码 ActionForm Bean时,需要遵循以下原则:
    - 用于识别这些特定Bean在整体架构中的角色。
    - 提供标准的验证机制,如果你重写存根方法并在标准应用程序资源中提供错误消息,Struts会自动验证表单输入。
    - 为表单上的每个字段定义具有关联 getXxx() setXxx() 方法的属性,可以使用JBuilder的JavaBean编辑器快速完成。
    - 该类必须扩展Struts的 ActionForm 类,并且为JSP中的所有表单控件提供getter和setter方法,还可以选择包含验证方法。

创建 ActionForm 类的步骤如下:
- 选择“File” -> “New class”。
- 为以下属性赋值:
| 属性 | 值 |
| ---- | ---- |
| 包 | com.sams.sample |
| 名称 | SubmitForm |
| 基类名称 | org.apache.struts.action.ActionForm |
| 选项:公共 | 勾选公共 |
- 选择“Bean”选项卡,使用JavaBeans Express创建属性、访问器和修改器。
- 比较使用JavaBeans Express创建的源代码与以下代码:

package com.sams.sample;
import org.apache.struts.action.ActionForm;
public class SubmitForm extends ActionForm {
 private String lastName = "Swisher"; //Setting a Default Value
 private String address = null;
 private String sex = null;
 private String married = null;
 private String age = null;
 public String getAddress() {
 return address;
 }
 public String getAge() {
 return age;
 }
 public String getLastName() {
 return lastName;
 }
 public String getMarried() {
 return married;
 }
 public String getSex() {
 return sex;
 }
 public void setSex(String sex) {
 this.sex = sex;
 }
 public void setMarried(String married) {
 this.married = married;
 }
 public void setLastName(String lastName) {
 this.lastName = lastName;
 }
 public void setAge(String age) {
 this.age = age;
 }
 public void setAddress(String address) {
 this.address = address;
 }
}
- 编译并保存应用程序。
  1. 编码Action类
    Action 类是应用程序实现的核心,通常应尽量保持“薄”,将业务逻辑放在其他Bean或甚至EJB、CORBA等其他服务器上。实现 Action 类的规则与 ActionForm 类类似:
    - 必须扩展 Action 类。
    - 必须包含一个针对 ActionForm 类的 perform 方法。

创建和编码 Action 类的步骤如下:
- 选择“File” -> “New class”。
- 为以下属性赋值:
| 属性 | 值 |
| ---- | ---- |
| 包 | com.sams.sample |
| 名称 | SubmitAction |
| 基类名称 | org.apache.struts.action.Action |
| 选项:公共 | 勾选公共 |
- 使用以下代码实现类:

package com.sams.sample;
import org.apache.struts.action.*;
import javax.servlet.http.*;
public final class SubmitAction extends Action {
 public ActionForward perform(ActionMapping mapping,
 ActionForm form,
 HttpServletRequest request,
 HttpServletResponse response) {
 // 此处可添加具体的业务逻辑
 }
}

通过以上步骤,你可以使用JBuilder构建一个完整的Struts应用程序。在实际开发中,根据具体需求可以对代码进行进一步的扩展和优化。

Struts框架与JBuilder开发指南

部署Struts应用程序

部署Struts应用程序是将开发好的应用程序放到生产环境中运行的重要步骤。以下是部署Struts应用程序的一般流程:
1. 打包应用程序 :将开发好的Struts应用程序打包成WAR(Web Application Archive)文件。可以使用JBuilder的打包功能,或者使用Maven、Gradle等构建工具来完成。
2. 选择服务器 :选择一个合适的Web服务器来部署Struts应用程序,如Apache Tomcat、Jetty等。确保服务器已经正确安装和配置。
3. 部署WAR文件 :将打包好的WAR文件复制到服务器的部署目录下。对于Tomcat服务器,通常是将WAR文件复制到 webapps 目录下,服务器会自动解压并部署应用程序。
4. 配置服务器 :根据应用程序的需求,可能需要对服务器进行一些配置,如修改 server.xml 文件来调整端口号、设置虚拟主机等。
5. 启动服务器 :启动Web服务器,访问应用程序的URL来验证部署是否成功。

开发中的注意事项

在使用Struts框架和JBuilder进行开发时,有一些注意事项需要牢记:
1. 模块化设计 :Struts框架的核心优势是模块化和松耦合,因此在开发过程中要尽量遵循这一原则,将不同的功能模块分离,提高代码的可维护性和可扩展性。
2. 标签库的使用 :Struts标签库可以大大简化开发过程,但要注意正确使用标签,避免出现标签嵌套错误或其他问题。
3. 配置文件的管理 web.xml struts-config.xml 等配置文件是Struts应用程序的重要组成部分,要确保配置文件的正确性和一致性。在修改配置文件后,要及时进行测试。
4. 错误处理 :在开发过程中,要考虑到各种可能出现的错误情况,并进行适当的错误处理。可以使用Struts的错误处理机制,如在 struts-config.xml 中配置全局错误处理页面。
5. 性能优化 :对于大型应用程序,性能优化是一个重要的问题。可以通过优化数据库查询、减少不必要的标签使用、使用缓存等方式来提高应用程序的性能。

总结与展望

通过本文的介绍,我们了解了版本控制系统的重要性、Struts框架的基本概念和标签库,以及如何使用JBuilder构建和部署Struts应用程序。Struts框架以其模块化和松耦合的特点,为Java Servlet应用程序的开发提供了强大的支持。

在未来的开发中,随着技术的不断发展,Struts框架也在不断演进。同时,也有许多其他优秀的Java开发框架可供选择,如Spring、Spring Boot等。开发者可以根据项目的需求和特点,选择最适合的框架来进行开发。

以下是一个简单的mermaid流程图,展示了使用JBuilder构建Struts应用程序的主要步骤:

graph LR
    A[创建新的Struts项目] --> B[配置web.xml文件]
    B --> C[配置struts-config.xml文件]
    C --> D[构建Java Server Page]
    D --> E[编码ActionForm类]
    E --> F[编码Action类]
    F --> G[部署Struts应用程序]

总之,掌握Struts框架和JBuilder的使用,对于Java开发者来说是一项非常有价值的技能。希望本文能为你在Struts开发的道路上提供一些帮助和指导。在实际开发中,不断实践和探索,才能更好地发挥Struts框架的优势,开发出高质量的Java Web应用程序。

为了方便大家回顾,下面以表格形式总结使用JBuilder构建Struts应用程序的关键步骤:
| 步骤 | 操作内容 |
| ---- | ---- |
| 创建新的Struts项目 | 选择“File” -> “New Project”,设置项目名称,再通过“Web Application Wizard”创建Web应用程序并配置相关属性。 |
| 配置web.xml文件 | 定义Struts Servlet、URL映射和标签库,可使用JBuilder的编辑器进行维护。 |
| 配置struts-config.xml文件 | 创建表单Bean和动作映射,编辑文件内容,确保映射正确。 |
| 构建Java Server Page | 使用Struts标签创建JSP,配置JSP属性,编写JSP代码。 |
| 编码ActionForm类 | 扩展 ActionForm 类,定义属性和方法,使用JBuilder的JavaBean编辑器辅助开发。 |
| 编码Action类 | 扩展 Action 类,实现 perform 方法,编写业务逻辑。 |
| 部署Struts应用程序 | 打包应用程序为WAR文件,选择服务器,部署WAR文件,配置服务器并启动。 |

通过以上步骤和注意事项,你可以更加高效地使用Struts框架和JBuilder进行Java Web应用程序的开发。不断学习和实践,你将能够应对各种复杂的开发需求,开发出优秀的应用程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值