版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MVC模式在三层结构
信息管理系统中的应用实例商品邮购管理信息系统
整个系统使用基于Web的方式来实现邮购业务的客户管理、职员管理、订单管理、商品管理、出库管理、入库管理等业务处理、流程控制、权限控制、查询统计以及打印等功能。目的:详细分析MVC模式在订单管理部分的查询功能中的应用。
系统的体系结构整个系统采用Browser/Web/DataBase的三层体系结构。Web服务器接受请求,通过应用程序服务器执行一个Java服务器端小程序Servlet并返回其输出,实现与客户机进行信息资源的交互。数据库服务器用来存储管理信息系统中所用到的各种数据,数据由数据库管理程序直接录入。系统的客户端只需要一个浏览器即可。相关人员通过浏览器来查询、增加、修改、删除数据,对信息进行管理。系统的体系结构系统的设计模式
目前,在大多数Browser/Server结构的Web应用中,浏览器直接通过HTML或者JSP的形式与用户交互,响应用户的请求。特点:直观,但是大多数系统操作的数据量都是惊人的,随着代码的增多会使JSP页面臃肿不堪,Web服务器的负荷过重。 对策:在中间层(?)上采用基于模型视图控制器(MVC.Model-View-Controller)的设计模式。
系统的设计模式
MVC模式的数据流图
系统的设计模式角色:Model层实现业务逻辑 View层显示用户界面Controller层负责View层和Model层之间的控制关系实现:Servlet——控制器JSP文档——视图JavaBeans——模型系统的设计模式过程:所有请求都被发送给作为控制器的Servlet,它接受请求,并根据请求信息将它们分发给适当的JSP来响应。同时,Servlet还根据JSP的需求生成JavaBeans的实例并输出给JSP环境。JSP可以通过直接调用方法或使用UseBean的自定义标签得到JavaBeans中的数据。数据存取技术
本系统的数据存取采用JSP/Servlet+JDBC的技术客户端不产生数据库查询命令,客户端上的浏览器通过URL和中间层的Web服务器建立连接。Web服务器主要负责接收本地或远程浏览器的HTTP数据请求,中间层的Servlet收到请求后,通过执行程序中的SQL语句,利用JDBC提供的标准API对数据库进行访问和相应的操作处理。Servlet再将查询的数据传给JSP,最后生成标准的JSP页面将结果返回给提出请求的浏览器。 优点:将客户端与数据库服务器端分离,提高了数据库的访问效率。具体实现结合系统的实际情况,将Model层按照分工进行进一步划分。Model层一般来说由许多JavaBeans组成根据Beans在系统中起的不同的作用,将它们分为CommandBeans、DataBeans、ViewBeans三种类型:CommandBeans用来实现业务逻辑,即对对象实例的处理;DataBeans是用来描述和定义从现实世界中抽象出来的对象模型;ViewBeans则是用来将处理完的对象实例进一步封装,并返回到客户端。具体实现CommandBeans获得Servlet传递过来的信息,并将这些业务信息封装在DataBeans定义的对象实例中,根据业务逻辑对信息进行处理。当需要进行调用数据库的存取操作时,CommandBeans将对象实例以及相应的控制信息通过数据库接口方法完成对数据库的操作。数据库操作完成后,再将返回的记录集封装成DataBeans的对象实例,进行一定的处理后,将这些需要返回到界面的信息再封装到事先定义的ViewBeans中去,通过ViewBeans将信息返回到界面上。具体开发实现服务器端应用程序的开发——Java语言应用服务器——IBM公司的Webshpere数据库管理系统——SQLServer7.0数据库接口程序——JDBC2接口
数据库连接建立数据库连接-由sql_data.java来实现。
publicclasssql_data{Stringurl="jdbc:odbc:PostOrder";//useyourhostnameandportnumberhere
Stringlogin="sa";//useyourloginhere
Stringpassword="zh12345";//useyourpasswordhere
publicConnectionconnection=null;
publicStatementst=null;
publicResultSetrs=null;
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SqlServerDriver");
conn=DriverManager.getConnection(url,user,password);
}catch(Exceptione)
{
e.printStackTrace();
}
}中间层设计——MVC对订单进行查询处理的OrderGl.java的部分代码
publicclassOrderGl{
……
//定义如下的方法完成对订单的查询操作
publicfinalStringcurrentMultiQuery(
javax.servlet.http.HttpServletRequestrequest,
javax.servlet.http.HttpServletResponseresponse)
throwscom.goods.exception.GoodsException
{
//从JSP页面获得相应查询信息
com.goods.view.OrderViewview=getView(request,response);
Stringddbh=view.getDdbh();//订单编号
//生成SQL语句
StringsqlQuery="selectddbh,khbh,spbh,spdj,dgsl,hjzj,sdje,sdrqfromdb_order";
//执行查询操作
java.util.Vectorvector=newjava.util.Vector();
com.goods.sjk.sql_dataper=newcom.goods.sjk.sql_data();
try
{
java.sql.ResultSetrs=per.executeQuery(sqlQuery);
while(rs.next())
{
com.goods.dx.Db_ordertemp=newcom.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();
}中间层设计——MVCcatch(Throwablee)
{
e.printStackTrace();
per.close();
cxyw.printErrorToWeb(request,response,e.toString());
returne.toString();
}
//将相关信息回显给界面
view.setVct(vector);
request.setAttribute("view",view);
return"1";
}
}中间层设计——MVC客户端设计--View
视图是用户发出请求之后返回给用户的Web页面。当单击“查询”按钮时,将显示根据订单编号得到的订单信息结果页面ordercx.jsp。 这是用JSP页面中如下语法完成的: <jsp:useBeanid="view"class="com.goods.view.OrderView"scope="request"/>
<jsp:useBeanid="temp"class="com.goods.dx.Db_order"scope="page"/>
<jsp:useBean>卷标告诉JSP页面它将要用到一个JavaBean
<jsp:useBean>用id和scope发现存在的各个对象,再通过<%=view.getDdbh()
和<%=temp.getDdbh()%>来获取相关数据。语法提示id属性:在静态的JSP页面中提供一个名字来标识bean
class属性:Java类的名字
scope属性: [scope=“page”] 单一网页(预设) [scope=“request”] 一个被请求的网页 [scope=“session”] 生存期限
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度酒店消防系统设备更新与优化合同3篇
- 2025年度私人承包数据中心节能减排建筑合同范本3篇
- 2025年教育培训机构销售居间代理协议3篇
- 2025年度个人股份质押合同标准范本4篇
- 2025年度个人二手车转让协议书(全新升级版)3篇
- 美容院消防安全责任及管理协议书(二零二五年度)4篇
- 湿地湖施工方案
- 毕业答辩指导模板
- 2025年度个人装修借款合同答辩状编制指南4篇
- 2024年中级经济师考试题库含答案(能力提升)
- 2024-2025学年人教版数学六年级上册 期末综合试卷(含答案)
- 收养能力评分表
- 山东省桓台第一中学2024-2025学年高一上学期期中考试物理试卷(拓展部)(无答案)
- 中华人民共和国保守国家秘密法实施条例培训课件
- 管道坡口技术培训
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 2024年认证行业法律法规及认证基础知识 CCAA年度确认 试题与答案
- 皮肤储存新技术及临床应用
- 外研版七年级英语上册《阅读理解》专项练习题(含答案)
- 2024年辽宁石化职业技术学院单招职业适应性测试题库必考题
- 上海市复旦大学附中2024届高考冲刺模拟数学试题含解析
评论
0/150
提交评论