CN102117203A - 一种基于Struts框架的信息管理系统 - Google Patents
一种基于Struts框架的信息管理系统 Download PDFInfo
- Publication number
- CN102117203A CN102117203A CN2009102477137A CN200910247713A CN102117203A CN 102117203 A CN102117203 A CN 102117203A CN 2009102477137 A CN2009102477137 A CN 2009102477137A CN 200910247713 A CN200910247713 A CN 200910247713A CN 102117203 A CN102117203 A CN 102117203A
- Authority
- CN
- China
- Prior art keywords
- struts
- action
- class
- user
- information management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明揭示了一种基于Struts框架的信息管理系统,通过web客户端发送http请求,控制层抓取用户填写的表单数据生成不同的请求,调用模型层中的不同业务逻辑方法,模型层封装企业数据和业务逻辑处理方法,视图层访问控制层,封装产生动态网页的处理逻辑,将处理结果发送到Web客户端,采用了本发明所述的技术方案可以提高系统的可维护性、减少重复开发工作量。
Description
技术领域
本发明涉及信息系统领域,特别涉及一种基于Struts框架的信息管理系统。
背景技术
随着技术的发展,信息系统已经广泛的被应用到企业的运营当中,面对飞速发展的软件行业以及日益繁多的软件开发技术,人们深刻地认识到,选择良好的开发框架对保证信息系统的成功运行至关重要。一个成熟的框架能够帮助开发人员缩短开发时间、减少重复开发工作量、降低开发成本,增强程序的可维护性和可扩展性。
发明内容
本发明的目的是提供一种基于Struts框架的信息管理系统,通过模块化的架构,将用户请求的编译和转发;业务逻辑处理和数据显示分别建立成为三个独立的模块,使系统的脉络更加清晰,提高系统的可维护性、减少重复开发工作量。
一种基于Struts框架的信息管理系统,包括:
Web客户端,包含web浏览器,发送http请求;
控制层,抓取用户填写的表单数据生成不同的请求,调用模型层中的不同业务逻辑方法;
模型层,封装企业数据和业务逻辑处理方法;
视图层,所述视图层是用户看到并与之交互的界面,通过Java程序段和Java标记访问控制层,封装产生动态网页的处理逻辑,将处理结果发送到Web客户端。
所述控制层包括:
Web.xml,通过其中的配置,加载Struts-config.xml,使所述控制层接受到了用户的一个请求之后,定义了一个请求应向何处转发;
Struts-config.xml,配置全局转发,使控制层确定是否调用模型层中业务逻辑方法,调用哪一种业务逻辑方法。
Action类,用户请求和业务逻辑之间连接器,充当业务代理;
Struts Action Classes,作为客户请求动作和Action类之间的一个适配器,将请求与Action类分开,并形成多个点对点的映射;
Struts ActionMapping,存储并映射请求到特定Action类的相关信息;
Struts ActionForm Bean,为模型层的Actionbean类的操作提供与客户表单相映射的数据,并且调用Actionbean类。
所述控制器在接受到Web客户端请求动作之后,通过Web.xml加载Struts-config.xml并全局转发,并同时配置Struts Action Classes,Struts ActionMapping,Struts ActionForm Bean。
所述显示层包括以下几个组件:
Actionbean类,操作业务逻辑的方法,通过JDBC完成必要的商业逻辑和显示逻辑,返回ActionForm Bean;
JDBC数据接口,读取数据库的接口。
所述业务逻辑方法通过不同的组件完成不同的业务逻辑需求,所述业务逻辑需求按照功能划分为,用户管理,密码管理,企业数据维护,企业数据查询。
所述模型层中还包括数据库,所述企业数据均存储在数据库当中,所述数据库包括用户表和信息表。
采用本发明所述的一种基于Struts框架的信息管理系统,通过web客户端发送http请求,控制层抓取用户填写的表单数据生成不同的请求,调用模型层中的不同业务逻辑方法,模型层封装企业数据和业务逻辑处理方法,视图层访问控制层,封装产生动态网页的处理逻辑,将处理结果发送到Web客户端,采用了本发明所述的技术方案可以提高系统的可维护性、减少重复开发工作量。
附图说明
图1是本发明所述系统架构的原理框图。
具体实施方式
下面结合附图和实施例进一步说明本发明的技术方案,本实施例以一个员工管理系统进行说明。
如图1显示了本发明提供的一种基于Struts框架的信息系统的原理框图100,包括Web客户端110,控制层120,模型层130,显示层140。
Web客户端,包含web浏览器,用户通过web浏览器浏览显示层140提供的界面并提交表单,web浏览器同时发出http请求。
控制层120,包括:Web.xml配置文件,Struts-config.xml,action类,ActionForm Bean,ActionMapping四个组件。
所述Web.xml,在服务器启动之后,Struts-config.xml,使所述控制层接受到了用户的一个请求之后,定义了一个请求应向何处转发。
所述Struts-config.xml,默认配置目录为\WEB-INF\struts-config.xml,通过Struts-config.xml来配置全局转发以及ActionMapping和ActionForm Bean这两个配置文件。
所述全局转发用来在JSP页之间创建逻辑名称映射,转发都可以通过对调用操作映射的实例来获得,例如:
actionMapping Instace.findForward(“logicalName”);
所述配置ActionForm Bean组件,即利用Struts-config.xml使用ActionForm来保存请求的参数,这些bean的属性名称与HTTP请求参数中的名称相对应,控制器将请求参数传递到ActionForm bean的实例,然后将这个实例传送到Action类。
所述配置ActionMapping组件,即ActionMapping对象帮助进行框架内部的流程控制,它们可将请求URI映射到Action类,并且将Action类与ActionForm bean相关联。Struts-config.xml在内部使用这些映射,并将控制转移到特定Action类的实例。所有Action类使用perform()方法实现特定应用程序代码,返回一个ActionForward对象,其中包括响应转发的目标资源名称。例如:
<action-mappings>
<action path=“/createBook”type=“BookAction”name=“bookForm”,scope=“request”input=“/CreateBook.jsp”>
</action>
<forward name=“failure”path=“/CreateBook.jsp”/>
<forward name=“cancel”path=“/index.jsp”/>
</action-mappings>
对于控制层120如何控制、处理客户请求,让我们通过对struts的四个核心组件介绍来具体说明。这四个组件就是:Struts-config.xml、Action类,Action Mapping以及ActionFrom Bean。
Struts-config.xml继承自Javax.servlet.http.HttpServlet类,其在Struts体系结构中扮演的角色失控制器,控制器Struts-config.xml主要负责将HTTP的客户请求信息组装后,根据配置文件的指定描述,转发到适当的处理器。
ActoinServlet必须在Web Application配置文件(web.xml)中描述。
Action类,就像客户请求动作和业务逻辑处理之间的一个适配器(Adaptor),其功能就是将请求与业务逻辑分开。这样的分离,使得客户请求和Action类之间可以有多个点对点的映射。而且Action类通常还提供了其它的辅助功能,比如:认证(authorization)、日志(logging)和数据验证(validation)。
Struts ActionMapping,即将特定请求映射到特定Action的相关信息存储在ActionMapping中,ActionServelt将ActionMapping传送到Action类的perform()方法,Action将使用ActionMapping的findForward()方法,此方法返回一个指定名称的ActionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个null。
Struts ActionForm Bean,即一个应用系统的消息转移(或者说状态转移)的非持久性数据存储,是由ActionForm Bean的负责保持的。
ActionForm的主要功能就是为Action的操作提供与客户表单相映射的数据(如果在客户指定的情况下,还包括对数据进行校验)。Action负责对系统数据状态的保持,而Action则负责根据业务逻辑的需要,对数据状态进行修改,在改变系统状态后,ActionForm则自动的回写新的数据状态并保持。
模型层130,即借助JDBC数据库接口和Actionbean类,实现系统用户登陆,注册用户,找回密码,增加新信息,模糊搜索信息,删除信息,更新信息,显示信息,显示具体信息等功能。
所述Actionbean类,即操作业务逻辑的方法,通过JDBC完成必要的商业逻辑和显示逻辑,返回ActionForm Bean。
所述JDBC接口,需要在Actionbean类调用时进行初始化,需要配置的数据库属性包括:
属性 | 描述 |
desciption | 数据源的描述 |
autoCommit | 数据源创建的连接所使用的默认自动更新数据库模式 |
driverClass | 数据源所使用的类,用来显示JDBC驱动程序接口 |
loginTimeout | 数据库登陆时间的限制,以秒为单位 |
maxCount | 最多能建立的连接数目 |
minCount | 要创建的最少连接数目 |
password | 数据库访问的密码 |
readOnly | 创建只读的连接 |
User | 访问数据库的用户名 |
url | JDBC的URL |
我们以用户登录功能作为一个具体的实施例来阐述一下如何利用JDBC和Actionbean类来实现模型层的功能。用户登录功能包括已注册用户可以通过界面输入自己的用户名和密码进行登陆,后台通过界面得到用户所输入的信息,与数据库中的数据进行比对,如果信息正确,则用户登陆成功。具体实施的代码如下:
<table>
<tr>
<td align=right>Name:</td>
<td><html:text property=″name″/></td>
</tr>
<tr>
<td align=right>Password:</td>
<td><html:password property=″password″/></td>
</tr>
<tr>
<td align=right></td>
<td>
<html:submit property=″submit″>Login</html:submit>
通过点击Login按钮后,系统得到动作,
action=″/login.do″
此外,需要同时在struts-config.xml中配置如下代码,
<action attribute=″LoginForm″
input=″/addressbook/login.jsp″
name=″LoginForm″
path=″/login″scope=″request″
type=demo.addressbook.actions.LoginAction″>
<forward name=″success″path=/addressbook/mainMenu.jsp″/>
</action>
在这个login动作的配置文件中,可以清晰的看到动作的属性LoginForm,动作的方法LoginAction以及动作的跳转界面mainMenu.jsp,从界面得到的name和password存放在LoginForm这个类中,随后,系统进行LoginAction所写的具体方法。
再次从LoginForm中得到name和password,实例化LoginForm类后直接得到name和password,
name=LoginForm.getName();
password=LoginForm.getPassword();
根据得到的name进行数据库的操作,实例化UserBean类,调用其中的搜索用户的方法UserBean user=new UserBean().searchUser(name);
在UserBean这个类中已经写好了一个关于数据库查找的方法,部分代码如下:
String strSql=″SELECT*FROM USER WHERE U_NAME=′″+name+
″′″;
user.setId(rs.getInt(″U_ID″));
user.setName(rs.getString(″U_NAME″));
随后返回给Action,Action根据是否有返回值判断该用户是否存在,
i f(user.getName()==null){};
如果用户存在,则把name存入session以备整个系统之用,
request.getSession().setAttribute(″user″,user);
最后跳转成功界面mainMenu.jsp,
return(mapping.findForward(″success″));
所述模型层130还包括数据库,数据库用来储存数据并通过JDBC接口调用。作为一是实施例,本发明所述的一种基于struts框架的信息管理系统包括用户表和信息表两张表。
视图层140,所述视图层140是用户看到并与之交互的界面,通过Java程序段和Java标记访问控制层,封装产生动态网页的处理逻辑,将处理结果发送到Web客户端。
作为一实施例,所述视图层140中的JSP页面使用客户化标签,所述客户化标签源自StrutsHTML、Bean和Logic标签库。所述的视图层140在JSP页面中使用客户化标签,可以把java程序代码和JSP页面分离,使JSP页面重于生成动态网页,而不涉及应用逻辑。本实施例中的所有页面都使用了StrutsHTML、Bean和Logic标签库中的标签。客户化标签有以下优点:标签具有可重用性,因此可以提高开发效率;可以在JSP页面以静态或动态的方式客户化设置自定义标签的属性;标签可以访问JSP网页中的所有对象,如HttpServletRequest和HttpServletResponse等;标签可以相互嵌套,来完成逻辑;标签可以使JSP页面变得更加简洁,提高可读性。
本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上实施例的变化、变型都将落在本发明的权利要求书范围内。
Claims (6)
1.一种基于Struts框架的信息管理系统,其特征在于,包括:
Web客户端,包含web浏览器,发送http请求;
控制层,抓取用户填写的表单数据生成不同的请求,调用模型层中的不同业务逻辑方法;
模型层,封装企业数据和业务逻辑处理方法;
视图层,所述视图层是用户看到并与之交互的界面,通过Java程序段和Java标记访问控制层,封装产生动态网页的处理逻辑,将处理结果发送到Web客户端。
2.如权利要求1所述的信息管理系统,其特征在于,所述控制层包括:
Web.xml,通过其中的配置,使所述控制层接受到了用户的一个请求之后,定义了一个请求应向何处转发;
Struts-config.xml,使控制层确定是否调用模型层中业务逻辑方法,调用哪一种业务逻辑方法;
Action类,用户请求和业务逻辑之间连接器,充当业务代理;
Struts Action Classes,作为客户请求动作和Action类之间的一个适配器,将请求与Action类分开,并形成多个点对点的映射;
Struts ActionMapping,存储并映射请求到特定Action类的相关信息;
Struts ActionForm Bean,为模型层的Actionbean类的操作提供与客户表单相映射的数据,并且调用Actionbean类。
3.如权利要求2所述的信息管理系统,其特征在于,所述控制器在接受到Web客户端请求动作之后,通过Web.xml加载Struts-config.xml并全局转发,并同时配置Struts Action Classes,Struts ActionMapping,StrutsActionForm Bean。
4.如权利要求1和2所述的信息管理系统,其特征在于,所述显示层包括以下几个组件:
Actionbean类组件,操作业务逻辑的方法,通过JDBC完成必要的商业逻辑和显示逻辑,返回值给ActionForm Bean组件;
JDBC数据接口组件,读取数据库的接口。
5.如权利要求1和3所述的信息管理系统,其特征在于,所述业务逻辑方法通过不同的组件完成不同的业务逻辑需求,所述业务逻辑需求按照功能划分为,用户管理,密码管理,企业数据维护,企业数据查询。
6.如权利要求1和3所述的信息管理系统,其特征在于,所述模型层中还包括数据库,所述企业数据均存储在数据库当中,所述数据库包括用户表和信息表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102477137A CN102117203A (zh) | 2009-12-30 | 2009-12-30 | 一种基于Struts框架的信息管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102477137A CN102117203A (zh) | 2009-12-30 | 2009-12-30 | 一种基于Struts框架的信息管理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102117203A true CN102117203A (zh) | 2011-07-06 |
Family
ID=44215986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102477137A Pending CN102117203A (zh) | 2009-12-30 | 2009-12-30 | 一种基于Struts框架的信息管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102117203A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541561A (zh) * | 2011-12-29 | 2012-07-04 | 广州杰赛科技股份有限公司 | 配置式软件开发方法及装置 |
CN102968307A (zh) * | 2012-11-29 | 2013-03-13 | 中国传媒大学 | 一种基于java的web开发中间件 |
CN104424338A (zh) * | 2013-09-11 | 2015-03-18 | 北大方正集团有限公司 | web系统的自动生成装置和自动生成方法 |
CN104424591A (zh) * | 2013-09-07 | 2015-03-18 | 镇江金软计算机科技有限责任公司 | 一种自定义房屋租赁费用模板的方法 |
CN106874005A (zh) * | 2017-02-22 | 2017-06-20 | 深圳市丽海弘金科技有限公司 | 金融系统的开发方法及系统 |
CN108427555A (zh) * | 2018-01-25 | 2018-08-21 | 山东汇贸电子口岸有限公司 | 一种用于分布式存储的模型可变的数据分布方法及系统 |
CN108509190A (zh) * | 2017-09-11 | 2018-09-07 | 平安科技(深圳)有限公司 | 实现业务系统与多组件交互的方法、电子装置及存储介质 |
CN112041861A (zh) * | 2018-04-20 | 2020-12-04 | 三菱重工环境·化学工程株式会社 | 设施机器信息管理系统 |
CN112035025A (zh) * | 2020-08-27 | 2020-12-04 | 浪潮云信息技术股份公司 | 一种基于Angular的多功能配置型输入方法及系统 |
CN115334064A (zh) * | 2022-07-26 | 2022-11-11 | 广州通则康威智能科技有限公司 | 一种配置系统的生成方法及装置 |
-
2009
- 2009-12-30 CN CN2009102477137A patent/CN102117203A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541561B (zh) * | 2011-12-29 | 2015-02-04 | 广州杰赛科技股份有限公司 | 配置式软件开发方法及装置 |
CN102541561A (zh) * | 2011-12-29 | 2012-07-04 | 广州杰赛科技股份有限公司 | 配置式软件开发方法及装置 |
CN102968307A (zh) * | 2012-11-29 | 2013-03-13 | 中国传媒大学 | 一种基于java的web开发中间件 |
CN102968307B (zh) * | 2012-11-29 | 2016-02-24 | 中国传媒大学 | 一种基于java的web开发中间件 |
CN104424591A (zh) * | 2013-09-07 | 2015-03-18 | 镇江金软计算机科技有限责任公司 | 一种自定义房屋租赁费用模板的方法 |
CN104424338A (zh) * | 2013-09-11 | 2015-03-18 | 北大方正集团有限公司 | web系统的自动生成装置和自动生成方法 |
CN104424338B (zh) * | 2013-09-11 | 2018-02-02 | 北大方正集团有限公司 | web系统的自动生成装置和自动生成方法 |
CN106874005A (zh) * | 2017-02-22 | 2017-06-20 | 深圳市丽海弘金科技有限公司 | 金融系统的开发方法及系统 |
WO2019047488A1 (zh) * | 2017-09-11 | 2019-03-14 | 平安科技(深圳)有限公司 | 实现业务系统与多组件交互的方法、电子装置及存储介质 |
CN108509190A (zh) * | 2017-09-11 | 2018-09-07 | 平安科技(深圳)有限公司 | 实现业务系统与多组件交互的方法、电子装置及存储介质 |
CN108427555A (zh) * | 2018-01-25 | 2018-08-21 | 山东汇贸电子口岸有限公司 | 一种用于分布式存储的模型可变的数据分布方法及系统 |
CN112041861A (zh) * | 2018-04-20 | 2020-12-04 | 三菱重工环境·化学工程株式会社 | 设施机器信息管理系统 |
CN112041861B (zh) * | 2018-04-20 | 2021-09-24 | 三菱重工环境·化学工程株式会社 | 设施机器信息管理系统 |
CN112035025A (zh) * | 2020-08-27 | 2020-12-04 | 浪潮云信息技术股份公司 | 一种基于Angular的多功能配置型输入方法及系统 |
CN115334064A (zh) * | 2022-07-26 | 2022-11-11 | 广州通则康威智能科技有限公司 | 一种配置系统的生成方法及装置 |
CN115334064B (zh) * | 2022-07-26 | 2023-06-13 | 广州通则康威智能科技有限公司 | 一种配置系统的生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102117203A (zh) | 一种基于Struts框架的信息管理系统 | |
US7080092B2 (en) | Application view component for system integration | |
US9256413B2 (en) | Automatic identification of services | |
TW576982B (en) | Programmatic management of software resources in a content framework environment | |
CN101847100B (zh) | 扩展软件应用的方法和装置 | |
CN101546261B (zh) | 多策略支持的安全网页标签库系统 | |
CN101266542B (zh) | 一种在容器中装载组件的方法及装置 | |
US20020116454A1 (en) | System and method for providing communication among legacy systems using web objects for legacy functions | |
US20140188972A1 (en) | Modeling enterprise resources and associating metadata therewith | |
CN104517181B (zh) | 一种核电站企业内容管理系统及方法 | |
US20180091583A1 (en) | Multi-party updates to distributed systems | |
CN104395899A (zh) | 基于云的主数据管理系统及其方法 | |
CN102523308B (zh) | 一种应用开发方法和运行该方法所开发应用的平台系统 | |
CN112149079A (zh) | 基于微服务架构的规划评审管理平台及用户访问授权方法 | |
CN104182228A (zh) | 一种创建网络应用的方法和系统 | |
CN113673961A (zh) | 一种基于工作流的档案调度方法 | |
CN104270403A (zh) | 基于struts2框架的云平台信息web监控系统 | |
Varanasi et al. | Spring Rest | |
CN101861581A (zh) | 网络操作系统 | |
CN103561113B (zh) | Web Service接口的生成方法及装置 | |
Sefid‐Dashti et al. | A reference architecture for mobile SOA | |
CN105938442A (zh) | 基于mvc构架模式的多角色动态医疗信息传递机制 | |
Zhang | 2-Tier Cloud Architecture with maximized RIA and SimpleDB via minimized REST | |
CN109284468A (zh) | 基于ssm框架的校园互助共享平台及其运行流程 | |
Sheong | Ruby on Rails Web Mashup Projects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110706 |