基于Struts框架的现代物流管理系统

更新时间:2023-07-24 22:16:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Apache Struts是一个通用的MVC框架,它提供了对开发MVC系统的底层支持。本文首先介绍了Struts的工作原理,然后充分利用Struts架构的特点对现代物流管理系统进行设计,使系统具有易于开发、易扩展和易维护等特点。最后介绍了本系统开发过程中的关键技术之一数据源的配置。使用S

基于Struts框架的现代物流管理系统

陈玲

北京邮电大学自动化学院 ,北京(100876)

E-mail:摘 要:Apache Struts是一个通用的MVC框架,它提供了对开发MVC系统的底层支持。本文首先介绍了Struts的工作原理,然后充分利用Struts架构的特点对现代物流管理系统进行设计,使系统具有易于开发、易扩展和易维护等特点。最后介绍了本系统开发过程中的关键技术之一数据源的配置。使用Struts框架进行Web开发充分利用了开源项目的优势,缩短了软件的开发周期。

关键词:现代物流;Struts框架;数据源

伴随着现代信息网络技术的日益完善和世界企业的自由化,物流服务业的快速发展己成为全球企业的一个主流趋势。在我国,国民经济和对外贸易己进入突飞猛进的发展轨道并融入世界经济体系之中。于是,如何发展综合物流服务业,便突出的被提到了当今我国企业发展的一个战略高度。由此可知,它在我国国民经济发展中的地位也将得到迅速提高。基于Web的现代物流管理系统将企业各个业务环节的信息化孤岛连接在一起,使得各种业务和信息能够实现集成和共享,同时也为企业间业务往来提供了一个统一、集成的环境,可以简化供货进程的平台。

MVC是一个经典的体系结构,以其开发简单,性能高效可靠和可维护性得到了广泛的应用,而Struts是使用Servlet和JSP技术的一种MVC实现,它在实现Web应用系统中具有得天独厚的优势,其技术特点能够很好地满足现代物流管理系统的要求。

1.Struts框架介绍

Struts是由Apache Software Foundation发起的开源项目。它在Java服务器端实现了MVC设计模式。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件构成[1]。如图1所示,为Struts实现的MVC框架。

图1 Struts实现的MVC框架

结合上图,这里简单的介绍一下Struts中对应于MVC的Model,View和Controller这三个部分。

模型(Model)表示应用程序的业务逻辑和状态,主要由JavaBean、EJB和Java实用类所组成。Struts作为实现MVC模式的框架结构,并没有提供任何模型组件(实现业务逻辑的组件),开发Struts结构应用程序的主要任务之一就是开发符合自己业务逻辑的模型。

视图(View)就是一组JSP文件。在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签或客户化标签,如Struts标签库中的标签。

控制器(Controller)由ActionServlet类和Action类来实现。ActionServlet类是Struts框架中的

Apache Struts是一个通用的MVC框架,它提供了对开发MVC系统的底层支持。本文首先介绍了Struts的工作原理,然后充分利用Struts架构的特点对现代物流管理系统进行设计,使系统具有易于开发、易扩展和易维护等特点。最后介绍了本系统开发过程中的关键技术之一数据源的配置。使用S

核心组件,它继承了javax.servlet.http.HttpServlet类,在MVC模型中扮演中央控制器的角色。Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。对于业务逻辑的操作主要由Action、ActionMapping、ActionForward这几个组件协调完成。其中,Action扮演了真正的控制逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。

2. 现代物流管理系统的需求分析

从使用者的角度来说,现代物流管理系统面对的用户分为四种:一般用户、商业用户、高级用户以及管理员用户。一般用户所使用的权限最低,只能浏览主页上的公共信息。商业用户主要是指供应商用户,他们可以注册成为网站会员,不仅能够浏览公共信息,还可以发布产品信息,查询货物需求信息以及查询订单信息。

高级用户是本系统的主要使用者,具有较高的使用权限,除了一般用户享有的操作权限之外,主要还包括订单管理,仓储管理,采购管理,供应商管理,质量管理,短信管理,运输管理等。这些管理平台相互关联。其中运输管理依赖于短信管理,运输车辆通过短信形式定时向控制中心汇报位置情况,如遇异常情况以短信通知控制中心。控制中心通过短信平台向车辆发布天气情况、车辆调度命令以及路线变动等信息。仓储管理主要是登记或查询入库物料,出库物料,剩余物料等相关信息,领导小组可通过该平台及时了解库存的物料是否充足,及时下达采购定单。供应商管理平台提供相关产品的供应商信息,包括合作信誉,供货能力,供货质量等,以便采购员挑选合适的供应商供货。此外,高级用户随时可以在下载中心下载相关表格,常用办公软件等相关内容。

最后一类用户是管理员用户,他的职责主要是维护网站,即时更新相关内容,加强系统安全管理。该系统所有的用户初始信息均有管理员赋予,用户必须据此登录系统,然后才能使用系统相关功能。

基于现代物流管理系统的功能需求,结合现有技术的条件,为了缩短开发周期,现代物流管理系统采用Struts的设计框架,从而保证了现代物流管理系统的稳定性、灵活性和扩展性。

3. 现代物流管理系统的体系结构

图2展示了基于Struts的现代物流管理系统的体系结构。在Web应用启动的时候,系统会自动加载并初始化控制器中ActionServlet类,控制器接收到HTTP请求时,从Struts配置文件struts-config.xml中读取相关的配置信息,将HTTP请求转发给相应的Action对象,同时填充请求页面所对应的ActionForm Bean,实现对用户请求的处理。

Action对象中定义了处理HTTP请求的逻辑流程,如图所示的订单管理模块,短信管理模块,供应商管理模块,仓储管理模块,数据库管理模块等。这些逻辑功能的实现独立于Action对象之外,从而提高了组件的可重用性以及可扩展性。数据库管理模块中构造并执行访问数据库的SQL语句,通过永久存储层与数据库进行连接,将访问数据库的结果集以数据对象的形式返回给调用的Action对象。短信管理模块通过调用串口API函数,利用成熟完善的无线网络,通过短信收发设备在控制中心与被管理用户间传递消息。

Apache Struts是一个通用的MVC框架,它提供了对开发MVC系统的底层支持。本文首先介绍了Struts的工作原理,然后充分利用Struts架构的特点对现代物流管理系统进行设计,使系统具有易于开发、易扩展和易维护等特点。最后介绍了本系统开发过程中的关键技术之一数据源的配置。使用S

图2 基于Struts的现代物流管理系统的体系结构 ActionForm Bean由控制器组件负责创建,并提供给Action调用。它接收并临时保存用户提交的信息。可以将ActionForm Bean的属性设置成视图信息的默认值,也可以在ActionForm Bean中通过调用validate()方法验证属性的合法性。Struts提供的特殊HTML标签库保证了ActionForm Bean被正确地初始化并从页面的表单中获取数据。

Action对象内部处理完请求逻辑流程以后,控制器组件将处理返回的结果转交给视图组件。视图组件根据得到的结果,使用标签库和应用资源属性文件中的信息生成相应的JSP页面,并以HTTP响应的方式返回给用户。

4.Struts中数据源的配置

Struts中的数据源负责建立和数据库的连接,Java语言提供了javax.sql.DataSource接口,所有的数据源都必须实现该接口[1]。在应用程序访问数据库时不必编写连接数据库的代码,可以直接从数据源获得数据库连接。因此在使用数据源之前,只要修改Struts配置文件struts-config.xml中的<data-source>元素,详细的配置代码如下:

<data-sources>

<data-source type="mons.dbcp.BasicDataSource">

<set-property property="driverClassName"

value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />

<set-property property="url" value="jdbc:microsoft:sqlserver://127.0.0.1:1433;

DatabaseName=db_user; SelectMethod=cursor" />

<set-property property="username" value="test" />

<set-property property="password" value="ok" />

<set-property property="maxActive" value="10" />

<set-property property="maxIdle" value="2" />

<set-property property="maxWait" value="5000" />

<set-property property="defaultAutoCommit" value="true" />

<set-property property="defaultReadOnly" value="false" />

</data-source>

</data-sources>

上述代码使用Microsoft SQL Server 2000作为应用数据库。type指定了数据源的实现类,本系统使用的是Apache软件组织提供的DBCP数据源。driverClassName表示数据源所使用的驱动程序名称,使用本驱动程序前需要将sqlserver-jdbc驱动包msbase.jar、 mssqlserver.jar、msutil.jar复制到tomcat/common/lib目录下。url指定数据库的地址,对于不同的数据库其地址

Apache Struts是一个通用的MVC框架,它提供了对开发MVC系统的底层支持。本文首先介绍了Struts的工作原理,然后充分利用Struts架构的特点对现代物流管理系统进行设计,使系统具有易于开发、易扩展和易维护等特点。最后介绍了本系统开发过程中的关键技术之一数据源的配置。使用S

表示方法也不相同。其中DatabaseName为所要访问的数据库名称。username为连接数据库的用户名。password为连接数据库的密码。maxActive表示DBCP中处于活动状态的数据库连接的最大数目,如果不限制设置为0。maxIdle表示即使没有数据库连接时依然可以保持空闲的连接,而不被清除,随时处于待命状态,设为0以取消限制。maxWait表示DBCP中的数据库连接处于空闲状态的最长时间(以毫秒为单位) 如果超时,将抛出一个异常,设为-1可以无限等待。defaultAutocommit是数据源创建的连接所使用的默认的自动更新数据库模式,默认值为true。defaultReadOnly如果设为true,则表示该连接是只读的,缺省为false,表示该连接可读写。

本系统使用的数据源采用连接池机制实现,上述参数中maxActive, maxIdle, maxWait这三个参数体现了数据库连接池机制。连接池中到底应该放置多少连接,才能使系统的性能最佳?系统可采取设置maxIdle和maxActive来控制连接池中的连接。maxIdle是系统启动时连接池所创建的连接数。如果创建过多,则系统启动就慢,但创建后系统的响应速度会很快;如果创建过少,则系统启动的很快,响应起来却慢。因此,可以在开发时候,设置较小的maxIdle,开发起来会快,而在系统实际使用时设置较大的,因为这样对访问客户来说速度会快些。maxActive是连接池中允许连接的最大数目,具体设置多少,要看系统的访问量,可通过反复测试,找到最佳点。

数据源配置好之后,就可以在Action类中访问数据源。在org.apache.struts.action.Action类中定义了getDataSource(HttpRequest)方法,它用于获取数据源对象的应用。以下程序代码演示了如何在Action类中访问数据源[1]:

public ActionForward execute(ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response)

throws IOException, ServletException {

try{

dataSource = getDataSource(request);

connection = dataSource.getConnection();

//do what you wish with connection;

}catch(SQLException sqle){

getServlet().log(“Connection.process”,sqle)

}finally{

try{

connection.close();

}catch(SQLException sqle){

getServlet().log(“Connection.process”,sqle);

}

}

}

也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过该值来标识特定的数据源。例如[1]: <data-sources>

<data-source key=”A” type="mons.dbcp.BasicDataSource">

…properties as before…

Apache Struts是一个通用的MVC框架,它提供了对开发MVC系统的底层支持。本文首先介绍了Struts的工作原理,然后充分利用Struts架构的特点对现代物流管理系统进行设计,使系统具有易于开发、易扩展和易维护等特点。最后介绍了本系统开发过程中的关键技术之一数据源的配置。使用S

</data-source>

<data-source key=”B” type="mons.dbcp.BasicDataSource">

…properties as before…

</data-source>

</data-sources>

在Action类中通过以下方式访问特定的数据源:

dataSourceA=getDataSource(request, “A”);

dataSourceB=getDataSource(request, “B”);

5. 结论

Struts结构将模型、视图、控制层分开,形成网页之间、HTML和Java代码之间的松耦合,使开发者之间的分工更加细致,便于团队开发。由于显示页面中没有加入Java代码,网站开发者能更容易地维护网站。数据源采用数据库连接池机制实现,在很大程度上提高了数据库的访问性能。现代物流管理系统采用Struts框架不仅减轻开发负担,同时也缩短开发周期。

参考文献

[1] 孙卫琴. 精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004.8

[2] Vivek Chopra,Jon Eaves,Rupert Jones.JSP高级程序设计[M].朱文涛,张文静.北京:人民邮电出版社,2006.3

[3] Marty Hall.Servlet与JSP核心技术[M].邓英材,孟杰,孙建春.北京:人民邮电出版社,2001.10

Modern Logistics Management System Based on Struts

Architectural Pattern

Chen Ling

Beijing University of Post and Telecommunication Automation School, Beijing (100876)

Abstract

Apache Struts is one of MVC Model2 architectural pattern , it supports the development of MVC system. The aim of this paper is to realize a modern logistics management system based on Apache Struts framework.By analyzing the extra requirement of this system,an architecture based on MVC design pattern is presented.One core technology–Data Source is proposed by the end.Because of its struts-based fundamental architecture and running mechanism,this system makes a certain

performance advantage and the developing period is reduced.

Keywords:modern logistics; Struts; Data Source

作者简介:陈玲,1981年生,女,北京邮电大学硕士,主要研究方向多媒体通信

本文来源:https://www.bwwdw.com/article/mklm.html

Top