摘 要 介绍了一种基于Web的管理信息系统的实现框架。利用JSP/Servlet技术,结合MVC设计模式,使得开发过程更加灵活,更加易于维护。
关键词 管理信息系统,JSP,Servlet,MVC设计模式,JDBC
1、 引言
管理信息系统(MIS)是一个由人、计算机等组成的能进行信息的收集、传递、存储、加工和使用的系统。随着科技的发展,信息的膨胀,企业信息化成了企业在竞争中处于不败地位的有效手段之一。而MIS不仅能够及时全面地提供信息和数据,简化统计工作,对不同的管理层次提出不同的报告之外,还能根据过去的数据预测未来的情况。因此,采用何种方法开发出一种兼顾开发效率和运行效率,同时满足分布式事件处理功能的管理信息系统就显得尤为重要。本文阐述了一种利用JSP/Servlet构建三层式管理信息系统的方法。
2、 系统的三层体系结构
系统的三层体系结构如图1所示。
图1、基于Java技术的Web应用体系结构 |
图2 MVC设计模式的数据传递图 |
5、 实例
为了更好地说明用JSP/Servlet构建三层式管理信息系统的方法,作者将举例分析设计一个商品邮购管理信息系统。这个商品邮购管理信息系统利用Java语言进行服务器端应用程序的开发,使用IBM公司的Webshpere作为应用服务器,数据库管理系统选用SQL Server7.0,数据库接口程序使用JDBC2接口。整个系统使用基于Web的方式来实现邮购业务的客户管理、职员管理、订单管理、商品管理、出库管理、入库管理等业务处理、流程控制、权限控制、查询统计以及打印等功能。其中详细分析订单管理部分的查询功能。
5.1数据库设计
对于订单部分,需要定义订单信息表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 Result Set rs = null; Try {Class.forName ("com.microsoft.jdbc.sqlserver.SqlServerDriver"); Conn =DriverManager.getConnection (url, user, password); } Catch (Exception e) { E.printStackTrace (); } } |
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 = get View (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 (Throw able e) { E.printStackTrace (); Per. Close (); Cxyw.printErrorToWeb (request, response, e.toString ()); Return e.toString (); } //将相关信息回显给界面 View.setVct (vector); Request.setAttribute ("view", view); Return "1"; } } |
<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()%>来获取相关数据。 |