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类父类 |
-
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>
- 保存应用程序。
-
构建Java Server Page
为了使ActionFormBean正常工作,必须使用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>
-
编码ActionForm类
Struts框架通常假设你已经定义了ActionFormBean。ActionForm类是一个Java类,为应用程序中每个所需的输入表单扩展ActionForm类。编码ActionFormBean时,需要遵循以下原则:
- 用于识别这些特定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;
}
}
- 编译并保存应用程序。
-
编码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应用程序的开发。不断学习和实践,你将能够应对各种复杂的开发需求,开发出优秀的应用程序。
超级会员免费看
698

被折叠的 条评论
为什么被折叠?



