JSP/Servlet构建三层式管理信息系统

 

摘要:本文介绍了一种开发基于Web的管理信息系统的实现框架。利用JSP/Servlet技术,结合MVC设计模式,使得开发过程更加灵活,更加易于维护。

关键词:管理信息系统,JSP,Servlet,MVC设计模式,JDBC

1、     引言

管理信息系统(MIS)是一个由人、计算机等组成的能进行信息的收集、传递、存储、加工和使用的系统。随着科技的发展,信息的膨胀,企业信息化成了企业在竞争中处于不败地位的有效手段之一。而MIS不仅能够及时全面地提供信息和数据,简化统计工作,对不同的管理层次提出不同的报告之外,还能根据过去的数据预测未来的情况。因此,采用何种方法开发出一种兼顾开发效率和运行效率,同时满足分布式事件处理功能的管理信息系统就显得尤为重要。本文阐述了一种利用JSP/Servlet构建三层式管理信息系统的方法。

2、   系统的三层体系结构

系统的三层体系结构如图1。

客户机

浏览器

http服务器

应用程序服务器

Servlet容器

数据库

JDBC

servlet

jsp

图1基于Java技术的Web应用体系结构

整个管理信息系统采用Browser/Web/DataBase的三层体系结构。Web服务器接受请求,通过应用程序服务器执行一个Java服务器端小程序Servlet并返回其输出,从而实现与客户机进行信息资源的交互。数据库服务器用来存储管理信息系统中所用到的各种数据,数据由数据库管理程序直接录入。系统的客户端只需要一个浏览器即可。相关人员通过浏览器来查询、增加、修改、删除数据,对信息进行管理。

3、   系统的设计模式

设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。目前,在大多数Browser/Server结构的Web应用中,浏览器直接通过HTML或者JSP的形式与用户交互,响应用户的请求。虽然很直观,但是大多数管理信息系统操作的数据量都是惊人的,随着代码的增多会使JSP页面臃肿不堪,Web服务器的负荷过重。因此,在中间层上采用基于模型视图控制器(MVC.Model-View-Controller)的设计模式。Model层用来实现业务逻辑,View层用来显示用户界面,Controller层主要负责View层和Model层之间的控制关系。具体实现时,把Servlet用作应用程序的控制器,把JSP文档作为视图,JavaBeans被用来表示模型。所有的请求都被发送给作为控制器的Servlet,它接受请求,并根据请求信息将它们分发给适当的JSP来响应。同时,Servlet还根据JSP的需求生成JavaBeans的实例并输出给JSP环境。JSP可以通过直接调用方法或使用UseBean的自定义标签得到JavaBeans中的数据。这种设计模式很好地实现了数据层与表示层的分离,使开发工作更加容易和迅速。在这种设计模式下,各层次之间的数据传递如图2。

Controller (Servlet)

View

(JSP)

Model

(JavaBeans)

DataBase

HTTP请求             获取数据

转交 请求

文档输出             更新模型

图2 MVC设计模式的数据传递图

4、   数据存取技术

数据库是管理信息系统的核心内容。目前,Web与数据库接口技术有很多,其中JDBC是Java程序连接和存取数据库的应用程序接口,由一组用Java语言编写的类与接口组成,是执行SQL语句的Java API。本文介绍的管理信息系统中,在数据的存取方面,采用了 JSP/Servlet+JDBC的技术,即客户端不产生数据库查询命令,客户端上的浏览器通过URL和中间层的Web服务器建立连接。Web服务器主要负责接收本地或远程浏览器的HTTP数据请求,然后中间层的Servlet收到请求后,通过执行程序中的SQL语句,利用JDBC提供的标准API对数据库进行访问和相应的操作处理。Servlet再将查询的数据传给JSP,最后生成标准的JSP页面将结果返回给提出请求的浏览器。这样,不仅将客户端与数据库服务器端分开,同时提高了数据库的访问效率。

5、   实例

为了更好地说明用JSP/Servlet构建三层式管理信息系统的方法,作者将举例分析设计一个商品邮购管理信息系统。这个商品邮购管理信息系统利用Java语言进行服务器端应用程序的开发,使用IBM公司的Webshpere作为应用服务器,数据库管理系统选用SQL Server7.0,数据库接口程序使用JDBC2接口。整个系统使用基于Web的方式来实现邮购业务的客户管理、职员管理、订单管理、商品管理、出库管理、入库管理等业务处理、流程控制、权限控制、查询统计以及打印等功能。其中详细分析订单管理部分的查询功能。

51数据库设计

对于订单部分,需要定义订单信息表Db_order,表中的字段有订单编号(ddbh),客户编号(khbh),商品编号(spbh),商品单价(spdj),定购数量(dgsl),合计总价(hjzj),收到金额(sdje),收到日期(sdrq)。为了能够在应用中使用Db_order表,必须建立数据库连接。这个功能由sql_data.java来实现。其部分代码如下。

public class sql_data {

String url = "jdbc:odbc:PostOrder"; // use your hostname and port number here

String login = "sa"; // use your login here

String password ="zh12345"; // use your password here

public Connection connection = null;

public Statement st = null;

public ResultSet rs = null;

try

{

Class.forName("com.microsoft.jdbc.sqlserver.SqlServerDriver");

conn =DriverManager.getConnection(url, user, password);

} catch (Exception e)

{

e.printStackTrace();

}

}

52中间层设计

在商品邮购管理信息系统的开发过程中,基于MVC设计模式的思想,结合系统的实际情况,我们将Model层按照分工进行了进一步划分。Model层一般来说由许多JavaBeans组成,根据这些Beans在系统中起的不同的作用,将它们分为Command Beans、Data Beans、View Beans三种类型。其中Command Beans用来实现业务逻辑即对对象实例的处理;Data Beans是用来描述和定义从现实世界中抽象出来的对象模型;而 View Beans则是用来将处理完的对象实例进一步封装并返回到客户端。

首先,Command Beans获得Servlet传递过来的信息,并将这些业务信息封装在Data Beans定义的对象实例中,根据业务逻辑对信息进行处理。当需要进行调用数据库的存取操作时,Command Beans将对象实例以及相应的控制信息通过数据库接口方法完成对数据库的操作。数据库操作完成后,再将返回的记录集封装成Data Beans的对象实例,进行一定的处理后,将这些需要返回到界面的信息再封装到事先定义的View Beans中去,通过View Beans将信息返回到界面上。

以下是对订单进行查询处理的OrderGl.java的部分代码。

public class OrderGl {

……

//定义如下的方法完成对订单的查询操作

public final String currentMultiQuery(

javax.servlet.http.HttpServletRequest request,

javax.servlet.http.HttpServletResponse response)

throws com.goods.exception.GoodsException

{

//从JSP页面获得相应查询信息

com.goods.view.OrderView view = getView(request, response);

String ddbh = view.getDdbh(); //订单编号

//生成SQL语句

String sqlQuery = "select ddbh,khbh,spbh,spdj,dgsl,hjzj,sdje,sdrq from db_order ";

//执行查询操作

java.util.Vector vector = new java.util.Vector();

com.goods.sjk.sql_data per = new com.goods.sjk.sql_data();

try

{

java.sql.ResultSet rs = per.executeQuery(sqlQuery);

while (rs.next())

{

com.goods.dx.Db_order temp = new com.goods.dx.Db_order();

temp.setDdbh(rs.getString("ddbh"));

temp.setKhbh(rs.getString("khbh"));

temp.setSpbh(rs.getString("spbh"));

temp.setSpdj(rs.getString("spdj"));

temp.setDgsl(rs.getString("dgsl"));

temp.setHjzj(rs.getString("hjzj"));

temp.setSdje(rs.getString("sdje"));

temp.setSdrq(rs.getString("sdrq"));

vector.addElement(temp);

}

rs.close();

per.close();

} catch (Throwable e)

{

e.printStackTrace();

per.close();

cxyw.printErrorToWeb(request, response, e.toString());

return e.toString();

}

//将相关信息回显给界面

view.setVct(vector);

request.setAttribute("view", view);

return "1";

}

}

53客户端设计

视图是向用户显示信息的应用程序的一部分,也就是用户发出请求之后返回给用户的Web页面。当单击“查询”按钮时,将显示根据订单编号得到的订单信息结果页面ordercx.jsp。这是用JSP页面中如下语法完成的:

<jsp:useBean id="view" class="com.goods.view.OrderView" scope="request" />

<jsp:useBean id="temp" class="com.goods.dx.Db_order" scope="page" />

< jsp:useBean >动作用id和scope发现存在的各个对象,再通过<%=view.getDdbh() 和<%=temp.getDdbh()%>来获取相关数据。

6、   小结

本文提出了一个开发基于Web的利用JSP/Servlet技术的三层管理信息系统的解决方案。该方案实现了表示层和逻辑层的分离,使得系统具有很好的扩展性,同时,给管理信息系统的开发提供了一个完整的思路和方法。

 

参考文献

1 黄梯云.管理信息系统.高等教育出版社,2002

2 宋波 董晓梅.Java应用设计.人民邮电出版社.2002-8

3 Phil Hanna.即时应用Java Servlets.人民邮电出版社,麦格劳-希尔国际公司.2001-4

4 施汝军.网站JSP后台解决方案.人民邮电出版社.2001-2

用JSP-Servlet构建三层式管理信息系统相关推荐

  1. 用JSP/Servlet构建三层式管理信息系统

    摘要:本文介绍了一种开发基于Web的管理信息系统的实现框架.利用JSP/Servlet技术,结合MVC设计模式,使得开发过程更加灵活,更加易于维护. 关键词:管理信息系统,JSP,Servlet,MV ...

  2. JSP/Servlet构建三层管理信息系统

    管理信息系统(MIS)是一个由人.计算机等组成的能进行信息的收集.传递.存储.加工和使用的系统.随着科技的发展,信息的膨胀,企业信息化成了企业在竞争中处于不败地位的有效手段之一.而MIS不仅能够及时全 ...

  3. c语言槟编程把两个数交换,第三章管理信息系统技术基础.doc

    PAGE PAGE 1 第三章管理信息系统技术基础 管理信息系统是基于管理和计算机的系统,同时也是基于网络的系统.管理信息系统的技术基础主要包括计算机系统.网络技术.数据库技术和科学管理等几个方面的内 ...

  4. 基于springboot+jsp的商场停车场服务管理信息系统

    在计算机技术飞速发展的今天,计算机技术不仅影响着人们的生活,而且已经融入到大家的生活.传统的停车服务管理模式大多数是人工服务模式,该模式存在一些漏洞并且工作效率不高.运用JSP技术设计了一个商场停车服 ...

  5. 用JSP构建三层管理信息系统

    本篇文章由 泉州SEO www.234yp.com 整理发布,jsp教程 www.234yp.com/Article/176231.html 谢谢合作! jsp教程 1. 引言 管理信息系统(MIS) ...

  6. 基于javaweb的慢病报销管理信息系统(java+mysql+jdbc+servlet+jsp)

    基于javaweb的慢病报销管理信息系统(java+mysql+jdbc+servlet+jsp) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  7. 《管理信息系统》考研复试整理

    一.名词解释 1. 书中内容整理 MIS 管理信息系统 Management Information System ERP 企业资源计划 Enterprise Resource Planning CR ...

  8. 信息系统开发与管理【一】之 管理信息系统导论

    感谢内容提供者:金牛区吴迪软件开发工作室 文章目录 一.管理信息系统概念及其发展 1.管理信息系统概念的起源 2.管理信息系统概念的演进 3.管理信息系统的定义 a.基本定义 b.人机系统 c.一体化 ...

  9. 管理信息系统【四】之 管理信息系统战略规划与开发方法

    感谢内容提供者:金牛区吴迪软件开发工作室 接上一篇:管理信息系统[三]之 管理信息系统技术基础 文章目录 一.管理信息系统战略规划 1.管理信息系统战略规划与执行规划 a.信息系统的战略规划 b.信息 ...

最新文章

  1. self.opener 和 self.parent
  2. 20个Nginx Web服务器最佳安全实践
  3. linux dd 大文件下载,Linux dd+grep 大文件二分查找
  4. MySQL补充部分-SQL逻辑查询语句执行顺序
  5. 【星球知识卡片】AutoML都有哪些核心技术,如何对其进行长期深入学习
  6. 使Struts2与Servlet并存解决办法 Filter转发Servlet
  7. 【easyui】treegrid逐级加载源码
  8. 初学JSP+Servlet常见的错误
  9. android 短信 aapp,谈谈App的统一跳转和ARouter
  10. Android设计模式之——状态模式
  11. c语言递归函数奇偶归一猜想,计算机科学视角下的奇偶归一猜想
  12. c语言求正整数连续数的和大数字_机器视觉(图像处理)入门金典之图像数字化及处理方法...
  13. Discuz! X3.0/X3.1/X3.2通用 Apache伪静态规则
  14. 10-微信小程序商城 分类和产品 产品列表(微信小程序商城开发、小程序毕业设计、小程序源代码)(黄菊华-微信小程序开发教程)
  15. 教育培训招生小程序源码
  16. 数据单向安全传输方案
  17. 信息检索导论要点整理
  18. Windows10+YOLOV3+VisualStudio2017最新版本超详细过程
  19. 从规范看海洋测绘单验潮站的控制距离
  20. react + canvas点线动画背景

热门文章

  1. ins07001 oracle,社区
  2. 进军IT与安全行业:推荐学习路线图
  3. FPGA always 和assign 用法
  4. Activity系列博客5篇
  5. 有钱人抢豪宅,普通人不敢消费:社会在割裂,富人更富,穷人更穷
  6. 一级造价工程师课件下载和备考内容及学习方法总结汇总!
  7. 最低仅需万元到手,Gooxi AMD Rome平台服务器特价啦
  8. 六类网线、五类网线混合组网利用普通HUB
  9. 阶乘、排列、组合 公式计算
  10. tiptop自定义发送邮件