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

作者&投稿:禹侧 (若有异议请与网页底部的电邮联系)
~
1、 引言
管理信息系统(MIS)是一个由人、计算机等组成的能进行信息的收集、传递、存储、加工和使用的系统。随着科技的发展,信息的膨胀,企业信息化成了企业在竞争中处于不败地位的有效手段之一。而MIS不仅能够及时全面地提供信息和数据,简化统计工作,对不同的管理层次提出不同的报告之外,还能根据过去的数据预测未来的情况。因此,采用何种方法开发出一种兼顾开发效率和运行效率,同时满足分布式事件处理功能的管理信息系统就显得尤为重要。本文阐述了一种利用JSP/Servlet构建三层式管理信息系统的方法。
2、 系统的三层体系结构
系统的三层体系结构如图1。
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。
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的方式来实现邮购业务的客户管理、职员管理、订单管理、商品管理、出库管理、入库管理等业务处理、流程控制、权限控制、查询统计以及打印等功能。其中详细分析订单管理部分的查询功能。
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 ResultSet rs = null;
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SqlServerDriver");
conn =DriverManager.getConnection(url, user, password);
} catch (Exception e)
{
e.printStackTrace();
}
}
5.2中间层设计
在商品邮购管理信息系统的开发过程中,基于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";
}
}
5.3客户端设计
视图是向用户显示信息的应用程序的一部分,也就是用户发出请求之后返回给用户的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技术的三层管理信息系统的解决方案。该方案实现了表示层和逻辑层的分离,使得系统具有很好的扩展性,同时,给管理信息系统的开发提供了一个完整的思路和方法。



什么是MVC(三层架构)
前端跟服务端之间多了个中间层,前台先提交给中间层,由中间层去访问服务端。JSP中,“<%……%>”里面的java代码是可以有一些业务逻辑的,而三层架构正是要将业务逻辑从页面中分离出来,因些不要过多的使用“<%……%>”,但根据实际情况,适量的添加一些是可以的。而MVC实际上其实是一种架构模式,...

三层架构和mvc的区别是什么
三层架构的目的着重点是“高内聚,低耦合”,即解耦。 MVC的目的则是实现Web系统的职能分工,即职责划分。 其实职责划分也是解耦,但是三层侧重的是整体的一个解耦,而MVC侧重的是web系统的解耦,即侧重jsp和Servlet的一个解耦。 最后,为何我们会将其混为一谈? 既然两者有这么多的不同,我们为什么还总是将其混淆呢,下...

请问JAVA三层架构,持久层,业务层,表现层,都该怎么理解?和MVC三层模型...
表示层(采用JSP\/Servlet技术)、 展示数据用的。应用层(采用Bean\/EJB技术) ,处理业务逻辑,一般if判断,循环之类。数据层(准确的说是数据接口,采用JDBC),保存数据和访问数据的。 这个嘛,有一定的联系啦,也并不是完全是一样的啦,你首先把mvc理解清楚吧,M是MODEL(模型),V是view(视图)...

jsp与struts的区别
JSP通常用于MVC的View层,Struts1,Struts2用于MVC的Control层。JSP用来展示页面信息,使用servlet API封装而成,代替servlet中response向客户端输出HTML等页面信息。这样做更利于界面设计与输出,而不用使用代码将HTML页面元素输出。Struts分为1和2。struts1 是基于Servlet API,利用通配符,将*.do或者自定义...

struts +hibernate在JSP页面设置动态下拉列表
jsp代码:<%@ page language="java" contentType="text\/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-\/\/W3C\/\/DTD HTML 4.01 Transitional\/\/EN" "http:\/\/www.w3.org\/TR\/html4\/loose.dtd"> Insert title here (document).ready(function(){ .ajax({ ...

按照MVC设计模式,JSP用于实现于哪一个
jsp对应mvc的v层,就是视图层,用来显示用户界面。JSP编译器将会加载mytaglib.tld这个XML文件,然后可以看到标签myaction由JAVA类MyActionTag实现。当该标签首次在文件中使用时,将会创建一个MyActionTag的实例。然后(而且当每次该标签被使用时),当出现开始标签时,将会调用doStartTag()方法,根据开始标签...

三层架构和MVC架构模式。
一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。三层结构是N层结构的一种,是人产在长时间使用中得出来的一种应用场合广泛的N层结构,被当作一种典型的软件层次结构而广为流传甚至写入教科书。MVC模式是一...

Web应用的三层体系架构中的三层是 ( ) 、 ( ) 和 ( ) ? 。
web三层从内到外分别为数据层,业务层和展示层。三个编译指令为:page、include、taglib。JavaBean密切相关的三个JSP元素是:useBean、getproperty和setproperty

JSP用什么编写,JSP,C++,和JAVA,三者的难易度
楼上的固然有理,但好像没有解决你的问题 jsp可以用记事本,dreamweaver8,jbuilder,elcipse,netBean等等工具编写 推荐dreamweaver8,虽然代码的编辑功能不如其它几个,但美工它说了算.jsp,java,c++这三者两两联系紧密 jsp是java技术在web开发方便的应用,学好的java再看jsp就容易了,c++比较难,mfc更是让人...

java中 MVC 三层架构
再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。 控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。 最后,它还有利于软件工程化管理。由于...

集宁区13734657112: 有JSP三层架构的实例么?求大神分享,给我个参考!!! -
顾扶雷公: 简单来说系统的三层架构中的三层只是一个概数,是一个不确定的数,根据实际环境来的,就和四层是有相同的地方的,而两层就分为前台和后台,前台展示,后台处理相关的逻辑,在灵活性上和安全性上是不如三层的,但是就性能来讲,执行的效率会比三层架构要高

集宁区13734657112: 用Java的Servlet+jsp如何快速地开发出三层权限模块来? -
顾扶雷公: 三层权限 你可真会制造名词 jsp 页面 输入密码 提交给 servlet servlet 调用 查询的dao 类 查询数据库 看密码 是否正确 正确 就返回 登陆信息 在Servlet 存到 session中 然后再Servlet 转发到 登陆到成功的页面 值听说过mvc 三层设计...

集宁区13734657112: 基于Web的数据库应用采用几层客户 - 服务器结构.
顾扶雷公: 一般都是三层结构为最基础的了 提供一些教程,希望能对您有帮助 JSP/Servlet构建三层管理信息系统 该文章转载自德仔工作室:http://www.dezai.cn/Article_Show.asp?ArticleID=21181 创建一个三层的数据库应用程序 该文章转载自德仔工作室:http://www.dezai.cn/Article_Show.asp?ArticleID=16179 软件三层架构 该文章转载自德仔工作室:http://www.dezai.cn/Article_Show.asp?ArticleID=12526

集宁区13734657112: 基于jsp的物流信息管理系统毕业设计该怎么写 -
顾扶雷公: 需要下载开发工具、服务器、jdk、数据库 开发工具:eclipse 服务器:tomcat 开发语言:java 数据库:oracle 你可以在网上找教程搭建开发环境,但是系统有哪些功能,页面怎么设计就要去问老师了,或者问在物流公司工作的亲戚、朋友,或者上网、去图书馆查资料,再不行只能去实习了

集宁区13734657112: 我是初学者,课程设计要做个简单的图书管理系统,应参考什么样的书啊 -
顾扶雷公: 有关用JAVA开发管理程序, 这里有两篇介绍文章:1. JSP/Servlet构建三层管理信息系统: http://www.javanb.com/jsp/1/4540.html2. J2ME开发中记录管理系统的详细介绍 http://www.javanb.com/j2me/1/17070.html 参考资料:http://www.javanb....

集宁区13734657112: 药品存销信息管理系统jsp的怎么做?? -
顾扶雷公: Hwnd = Plugin.Window.GetKeyFocusWnd() Delay 2000 t1=now:t2=now:sj1=0.5:sj2=60 Rem abcc Delay 20 If DateDiff("s",t1,now)>=sj1 Delay 10 Call Plugin.Bkgnd.KeyPress(Hwnd, 83) Delay 10t1=now End IfIf DateDiff("s",t2,now)>=sj2 Delay 10 Call Plugin.Bkgnd.KeyPress(Hwnd, 70) t2=now End If Goto abcc

集宁区13734657112: 如何用SQL和JSP做一个学校图书管理系统 -
顾扶雷公: ORACLE数据库支持SQL查询语言,我用ORACLE数据库自带的PROC*C开发过信息管理程序,用的就是SQL(结构式查询语言).我也写过图书管理程序,还是选用专业的数据库吧,ORACLE自带的开发工具非常全,建立一个信息管理程序很简单. 学生用书和教师用书不必分为两个数据库,只要设置一个逻辑型的标志字段(域)就行,要实现你说的"新读者注册分为学生和老师的注册,注册后权限不同."很简单,用SQL语句根据标志字段分别建立两个查询表,而这两个虚拟表分别只对学生或者老师授权就行,.........

集宁区13734657112: 网吧计费管理系统的论文 -
顾扶雷公: 摘 要 计费管理是网络管理的重要组成部分,ISP对于高效准确的网络流量采集处理机制和功能强大的Web计费管理系统具有迫切需求.本文介绍和比较了计费管理系统的两种设计模式,对不同使用角色进行全面需求分析的基础上,将目前流行实...

集宁区13734657112: 用jsp做的简单的图书管理系统,sql2005+tomcat5.5+eclipse,希望大家帮帮忙 -
顾扶雷公: 图书管理:建立图书类的表,实现对图书对象的增删查改 书架信息管理:建立书架类的表,实现对书架类的增删查改,图书类关联书架类 实现对图书的查询方法 OK,处理好界面

集宁区13734657112: 各位大神,小白有一事不明,还望指教,老师叫我做个信息管理系统,如果我只用javase写,那么做好的 -
顾扶雷公: 首先,java现在分支无爱护三种,ee,se,me,你做的这个,可以用se做,一般这种会做成CS架构,做完之后需要打包发给别人,安装使用;另一种是BS架构,也就是我们常说的java web,也就是你说的jsp作为显示页类似的东西,这种别人直接访问你给的网址就可以通过浏览器访问;建议用BS架构.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网