版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaWeb开发(JSP)课程设计报告题目:报价管理系统设计者XXX专业班级:软件学号:XXXXX指导教师:XXXXX2012年12月26日河南理工大学计算机学院word格式-可编辑-感谢下载支持报价管理系统报告书一、 系统需求背景随着国家队采购项目的不断规范,通过招标的方式来进行商品销售已经成为主流。由于生产厂家数以千计,其产品更是种类繁多,而且商品的数量、报价和规则也是不断更新,手工的预算报价已经难以胜任。报价管理系统的产生很好的解决了这一难题,能够非常快熟的生成报价方案,具有维护方便、操作简单等特点。该报价管理系统采用JSP+JDBC+MySQL来实现,同时还将使用MVC设计模式。其中视图层采用JSP来实现,控制层则采用Sevlert来实现,并通过JDBC来连接MySQL数据库。该系统包括五个模块,分别是客户管理模块、产品管理模块、产品类型管理模块、订单模块以及报价模块。其中,在数据库方面,我们需要建立数据库表,包括客户表、产品类型表、产品表、订单表和报价表。二、 系统所涉及的一些知识JSP技术JavaServerPages技术是一个纯Java平台的技术,它主要用来产生动态网页内容。在传统的网页HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页。Web服务器接收到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。JSP是基于JavaServlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网页。JSP在多个方面加速了动态的Web页面的开发:程序写一次,到处可以运行。JSP在设计时,充分考虑到应用平台的无关性。依赖于Java的可移植性,JSP得到目前许多流行操作平台的支持,可在Apache、NetScape、IIS等服务器上执行。word格式-可编辑-感谢下载支持执行速度快。JSP页面只需编译一次转化为Java字节代码,其后一直驻留于服务器内存中,加快了对JSP页面的响应速度。若不考虑JSP页面第一次编译所花的时间,则JSP的响应速度要比ASP快得多。Java的优势。JSP技术是用Java语言作为脚本语言的。跨平台、成熟、健壮、易扩充的Java技术使得开发人员的工作在其他方面也变得容易和简单。Java语言通过提供防止内存泄漏的方法,在内存管理方面大显身手。加之,JSP为应用程序提供了更为健壮的意外事件处理机制,充分发挥了Java的优势。JSP标签可扩充性和跨平台的可重用性JSP技术能够使开发者扩展JSP标签得以应用,JSP开发者能定制标签库,大大减少对脚本语言的依赖。由于定制标签技术,使网页制作者降低了制作网页和向多个网页扩充关键功能的复杂程度。 JSP组件(企业Javabeans,JavaBeans或定制的JSP标签)都是跨平台可重用的。Javabeans和企业Javabeans组件可以访问传统的数据库,并能以分布式系统模式工作于UNIX和WINDOWS平台。JDBCJDBC由一组Java语言编写的类和接口组成,使用内嵌式的SQL,主要实现三方面的功能:建立与数据库的连接,执行SQL声明以及处理SQL执行结果。JDBC支持基本的SQL功能,使用它可方便地与不同的关系型数据库建立连接,进行相关操作,并无需再为不同的DBMS分别编写程序。MySQLMySQL是一个多用户、多线程的SQL数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。MySQL的快速和灵活性足以满足一个网站的信息管理工作。因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发PostgreSQL,不管是私用,商用,还是学术研究使用。命令执行速度快,也许是现今最快的;简单有效的用户特权系统oMySQL使用完全免费,使得其运用范围更加广泛。TOMCATTomcat服务器是ApacheGroupJakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。Tomcat服务器的兼容性很好,如WebLogic服务器采用其为Web服务器引擎,Jbuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。但是Tomcat服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。EclipseEclipse是一个非常优秀的集成开发环境,它旨在简化用于多操作系统软件工具的开发过程,可以用于管理多种开发任务,其中包括测试、性能调整以及程序调试等,而且还可以集成来自多个供应商的第三方应用程序开发工具。通过集成大量的插件,Eclipse的功能可以不断扩展,以支持各种不同的应用。Eclipse平台是一个成熟的、精心设计的、可扩展的体系结构,其组成结构如图所示用Eclipse开发的插件,可以适应多平台的需要,且具有良好的可扩展性和灵活性。Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。MVC设计模式设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。本系统开发采用目前一种目前广泛流行的软件设计模式MVC。MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层一一模型层、视图层、控制层。MVC模式的出现,很好的解决了传统开发WEB应用方式中存在的问题。M代表模型(Model),包含完成任务所需要的所有的行为和数据;V代表视图(View)界面,显示模型提供的数据;C代表控制器(Controller),它将模型映射到界面中,处理用户的输入并响应请求。其模型关系如图所示。在MVC模式中,三层各尽其职、相对独立,各层内部的改变不会影响到其它层,从而降低了数据表达、数据描述和应用操作的耦合度,也能更好的实现开发中的分工,加快工程进度。MVC设计模式中的三个模式结构视图:数据的展现。视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。模型:应用对象。模型是应用程序的主体部分。模型代表了业务数据和业务逻辑;当数据发生改变时,它要负责通知视图部分;一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。控制器:逻辑处理、控制实体数据在视图上展示、调用模型处理业务请求。当Web用户单击Web页面中的提交按钮来发送HTML表单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。三、功能需求分析本系统是为了方便价格管理而设计的,分为五个模块:客户管理,订单管理,产品管理,产品类型管理,报价管理模块。系统的基本功能是:商家可以通过该系统很方便对客户,订单,产品,产品类型,价格等统一管理,既方便又很节省时间,同时也提高了工作效率。里如果客户管理这一块来说,商家可以通过统一的添加方式一一添加不同的客户,然后在管理时可以通过客户编号,客户名称,电话,地址,联系人或者其他方式对客户进行查询。对于订单管理这模块,里面可以有订单编号,客户编码,产品编码,数量,订单时间,商家可以统一管理这些信息,还有专门的报价表共同以查询物品单价等等这些功能。四、系统设计方案整体设计方案。如:根据系统功能需求分析,可将系统完善大致分为如下几步:(1) 根据系统需要,做出系统分析;(2) 根据功能分析,设计出客户管理页面;(3) 对客户管理模块DAO层进行设计:(4) 添加控制器实现客户添加功能和查询所有客户的功能;(5) 对某些页面实行分页技术,因为一页不可能把所有的信息都显示出来;(6(6)、、、、、、、五、系统涉及的数据库表所使用的数据库及其字段。列名数据类型允许空说明customercode五、系统涉及的数据库表所使用的数据库及其字段。列名数据类型允许空说明customercodevarchar(32)否用户编号customernamevarchar(255)用户名phonevarchar(20)电话addressvarchar(255)地址ralationmanvarchar(30)联系人othervarchar(255)其他如:数据库安装的是MySQL5.1,根据系统功能需求分析得到如下数据库表:客户表:列名数据类型允许空说明producttypecodevarchar(32)否用户编号pruducttypenamevarchar(100)用户名产品类型表:产品表:列名数据类型 w/ord格式-可编辑-允许空感谢下载支持 说明productcodevarchar(32)否产品编号producttypetypenamevarchar(32)产品类型名productnamevarchar(255)产品名producingareavarchar(255)产品区域productownervarchar(255)产品所有者unitvarchar(10)产品单位priceVarchar(10)产品价格quantityvarchar(10)产品数量othervarchar(255)其他信息订单表:列名数据类型允许空说明ordercodevarchar(32)否订单编号customercodevarchar(32)客户编码productcodevarchar(32)产品编码quantityvarchar(10)数量ordertimedatetime订单时间othervarchar(255)其他信息报价表:列名数据类型允许空说明quotationcodevarchar(32)否报价编码productcodevarchar(32)产品编码customercodevarchar(32)客户编码quotationmanvarchar(32)报价人quotationtimedatetime报价时间othervarchar(255)其他word格式-可编辑-感谢下载支持写好这些数据库表,定好每个数据库表的主键,再设置好外键的连接。五、具体功能分析6.1客户管理模块页面设计该页面是用户登录后所显示的初步页面,该页面包括五个模块:客户添加页面、按客户编号查询客户页面、按客户名称查询客户页面、按电话查询客户页面、按地址查询客户页面、按联系人查询客户页面、按其它查询客户页面。管理人员可以通过以上任意一种方式查询客户信息。其结果图如下:外-J吊■=H面四*表主尊*工具叫* "正文用尸名:正文用尸名:于*暗歌名:于玲植医P管理皿率修理 卜珞产耳管言 曾产耳琵母甘理 Q底山首色 圈犬于车霰菠6.2客户添加客户添加下面是部分代码:客户添加
word格式-可编辑-感谢下载支持 <%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><html><head><title>客户添加</title><styletype="text/css">td(font-size:12px;}</style></head><body><tableborder="0"width="95%"><tralign="center"><td><h1>客户添加</h1></td></tr><tralign="center"><td><formaction=""method="post"><tableborder="0"><tr><td>客户编码</td><td><inputtype="text"</tr><tr><td>客户名称</td><td><inputtype="text"</tr><tr><td>联系电话</td><td><inputtype="text"</tr><tr><td>联系地址</td><td><inputtype="text"</tr><tr><td>联系人</td><td><inputtype="text"</tr><tr><td>其他</td><td><inputtype="text"</tr><tr>name="customercode"></td>name="customername"></td>name="phone"></td>name="address"></td>name="relationman"></td>name="other"></td><tdcolspan="2"> word格式-可编辑-感谢下载支持 <inputtype="submit"value="提交"〉<inputtype="reset"value="重置"〉</td></tr></table></form></td></tr></table></body></html>(1.)在业务控制器中需要接受表单参数。publicvoidexecute(HttpServletRequestrequest,HttpServletResponseresponse)(}(2.)接受参数〃接受参数Stringcustomercode=request.getParameter("customercode");Stringcustomername=request.getParameter("customername");Stringphone=request.getParameter("phone");Stringaddress=request.getParameter("address");Stringrelationman=request.getParameter("relationman");Stringother=request.getParameter("other");(3).封装Customer对象//封装Customer对象Customercustomer=newCustomer();customer.setCustomercode(customercode);customer.setCustomername(customername);customer.setPhone(phone);customer.setAddress(address);customer.setRelationman(relationman);customer.setOther(other);(4.)通过DAO完成客户添加。〃获得DAO实例CustomerDAOcdao=CustomerDAOFactory.getCustomerDAO();//通过DAO实例完成客户添加cdao.addCustomer(customer);word格式-可编辑-感谢下载支持6.3在查询客户信息时,首先.得添加DAO中查询所有客户的方法publicList<Customer>findAll()(//1.获得连接对象Connectionconn=DataBaseManager.getConnection();//2.查询SQL语句StringquerySql="select火fromcustomer";PreparedStatementpstmt=null;ResultSetrs=null;List<Customer>customers=null;//3.通过连接对象获得预处理语句对象try(pstmt=conn.prepareStatement(querySql);//4.设置参数//5.执行查询rs=pstmt.executeQuery();customers=newArrayList<Customer>();while(rs.next())(Customercustomer=newCustomer();customer.setCustomercode(rs.getString(1));customer.setCustomername(rs.getString(2));customer.setPhone(rs.getString(3));customer.setAddress(rs.getString(4));customer.setRelationman(rs.getString(5));customer.setOther(rs.getString(6));customers.add(customer);}}catch(SQLExceptione)(e.printStackTrace();}finally(DataBaseManager.close(rs);DataBaseManager.close(pstmt);DataBaseManager.close(conn);}returncustomers}然后再添加业务控制器,代码如下:packagecom.ibeifeng.action;importjava.util.List;importjavax.servlet.http.HttpServlet; word格式-可编辑-感谢下载支持 importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.ibeifeng.dao.CustomerDAO;importcom.ibeifeng.daofactory.CustomerDAOFactory;importcom.ibeifeng.vo.Customer;publicclassCustomerFindAllextendsWebAction(publicvoidexecute(HttpServletservlet,HttpServletRequestrequest,HttpServletResponseresponse)(〃获得DAO实例CustomerDAOcdao=CustomerDAOFactory.getCustomerDAO();//通过调用cdao中查询所有记录的方法List<Customer>all=cdao.findAll();//将记录保存到request范围request.setAttribute("all",all);//设置跳转页面Stringpage="/CustomerFindAllResult.jsp";forward(servlet,request,response,page);}}查询所有客户显示页面代码:<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><%@taglibprefix="c"uri="/jsp/jstl/core"%><html><head><title>查询所有客户</title><styletype="text/css">td(font-size:12px;}</style></head><body><tableborder="0"width="95%"><tralign="center"><td><h1>查询所有客户</h1></td></tr> word格式-可编辑-感谢下载支持 <tralign="center"><td><tableborder="0"cellpadding="5"><tralign="center"><td>客户编号</td><td>客户名称</td><td>联系电话</td><td>联系地址</td><td>联系人</td><td>其他</td></tr><c:forEachitems="${requestScope.all}"var="customer"><tralign="center"><td>${customer.customercode}</td><td>${customer.customername}</td><td>${customer.phone}</td><td>${customer.address}</td><td>${customer.relationman}</td><td>${customer.other}</td></tr></c:forEach></table></td></tr></table></body></html>6.4按客户编号查询按客户编号查询客户客户编码代码如下:<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><html><head><title>按客户编号查询客户</title> word格式-可编辑-感谢下载支持 <styletype="text/css">td(font-size:12px;}</style></head><body><tableborder="0"width="95%"><tralign="center"><td><h1>按客户编号查询客户</h1></td></tr><tralign="center"><td><formaction=""method="post"><tableborder="0"><tr><td>客户编码</td><td><inputtype="text"name="customercode"></td></tr><tr><tdcolspan="2"><inputtype="submit"value="提交"〉<inputtype="reset"value="重置"〉</td></tr></table></form></td></tr></table></body></html>添加业务控制器packagecom.ibeifeng.action;importjava.util.List;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.ibeifeng.dao.CustomerDAO;importcom.ibeifeng.daofactory.CustomerDAOFactory; word格式-可编辑-感谢下载支持 importcom.ibeifeng.vo.Customer;publicclassCustomerFindByCustomerCodeextendsWebAction(publicvoidexecute(HttpServletservlet,HttpServletRequestrequest,HttpServletResponseresponse)(〃获得DAO实例CustomerDAOcdao=CustomerDAOFactory.getCustomerDAO();//获得参数Stringcustomercode=request.getParameter("customercode");//通过调用cdao中查询所有记录的方法Customercustomer=cdao.findByCustomerCode(customercode);//将记录保存到request范围request.setAttribute("customer",customer);//设置跳转页面Stringpage="/CustomerFindByCustomerCodeResult.jsp";forward(servlet,request,response,page);}}配置业务控制器map.put("CustomerFindByCustomerCode”,CustomerFindByCustomerCode.class);添加结果显示页面。<tralign="center"><td>${requestScope.customer.customercode}</td><td>${requestScope.customer.customername}</td><td>${requestScope.customer.phone}</td><td>${requestScope.customer.address}</td><td>${requestScope.customer.relationman}</td><td>${requestScope.customer.other}</td></tr>6.5按客户名称查询按客户名称查询客户客尸名称[W代码如下:<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><html><head><title>按客户名称查询客户</title><styletype="text/css">td(font-size:12px;}</style></head><body><tableborder="0"width="95%"><tralign="center"><td><h1>按客户名称查询客户</h1></td></tr><tralign="center"><td><formaction=""method="post"><tableborder="0"><tr><td>客户名称</td><td><inputtype="text"name="customername"></td></tr><tr><tdcolspan="2"><inputtype="submit"value="提交"〉<inputtype="reset"value="重置"〉</td></tr></table></form></td></tr></table></body></html>接下来的集中查询客户的方式的添加业务控制器,配置业务控制器,添加结果显示页面的代码的实现,和上述按客户编号查询的代码是类似的,在这里就不重复了。6.6按联系电话查询按联系电话查询客户联系电话代码如下:<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><html><head><title>按联系电话查询客户</title><styletype="text/css">td(font-size:12px;}</style></head><body><tableborder="0"width="95%"><tralign="center"><td><h1>按联系电话查询客户</h1></td></tr><tralign="center"><td><formaction=""method="post"><tableborder="0"><tr><td>联系电话</td><td><inputtype="text"name="phone"></td></tr><tr><tdcolspan="2"><inputtype="submit"value="提交"〉<inputtype="reset"value="重置"〉</td></tr></table></form></td></tr></table></body></html>6.7按联系地址查询按联系地址查询客户联系地址代码如下:<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><html><head><title>按联系地址查询客户</title><styletype="text/css">td(font-size:12px;}</style></head><body><tableborder="0"width="95%"><tralign="center"><td><h1>按联系地址查询客户</h1></td></tr><tralign="center"><td><formaction=""method="post"><tableborder="0"><tr><td>联系地址</td><td><inputtype="text"name="address"></td></tr><tr><tdcolspan="2"><inputtype="submit"value="提交"〉<inputtype="reset"value="重置"〉</td></tr></table></form></td></tr></table></body></html>6.8按联系人查询按联系人查询客户联系人IW代码如下:<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><html><head><title>按联系人查询客户<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省西安市未央区浐灞区小学2023-2024学年六年级上学期期中英语试卷
- 林木育种的抗念珠菌选择与策略考核试卷
- 森林改培的生态效益评估与监测考核试卷
- 新高考历史三轮冲刺过关练习专题09 选择题(解析版)
- DB11T 762-2010 电子政务业务描述规范
- DB11∕T 1814-2020 城市道路平面交叉口红线展宽和切角规划设计规范
- 我们祝福课件教学课件
- 周文强课件教学课件
- 淮阴工学院《建设工程成本控制与规划》2022-2023学年期末试卷
- 2024年高考语文二轮复习:论证分析主观题(练习)(解析版)
- 河南省信阳市2024-2025学年七年级上学期期中历史试题(含答案)
- 2024至2030年高分子吸水树脂项目投资价值分析报告
- 期中测试卷(1-5单元)(试题)-2024-2025学年三年级上册数学人教版
- DB11T 731-2010 室外照明干扰光限制规范
- 2024年学校食堂管理工作计划(六篇)
- 学校食堂消毒记录
- 塔吊使用安全协议书
- 地 理气温的变化和分布课时1课件-2024-2025学年七年级地理上册(人教版2024)
- Unit4+My+space++Reading++The+1940s+House+课件高中英语沪教版(2020)必修第一册
- 4.1 中国特色社会主义进入新时代 课件高中政治统编版必修一中国特色社会主义-1
- 人教版(PEP)小学六年级英语上册全册教案
评论
0/150
提交评论