《2022年计科班孙吉祥设计方案说明书》由会员分享,可在线阅读,更多相关《2022年计科班孙吉祥设计方案说明书(43页珍藏版)》请在金锄头文库上搜索。
1、1 / 43 本科毕业设计( 论文 题目基于 J2EE平台的电子商务网站后台架构的分析与实现学院名称信息学院专业班级计科 08-3 学生姓名孙吉祥导师姓名姜文峰年月日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 43 页2 / 43 山东轻工业学院本科毕业设计论文)原创性声明本人郑重声明:所呈交的毕业设计论文),是本人在指导教师的指导下独立研究、撰写的成果。设计论文)中引用他人的文献、数据、图件、资料,均已在设计论文)中加以说明,除此之外,本设计论文)不含任何其他个人或集体已经发表或撰写的成果作品。对本文研究做出重要贡献的个人和集体,
2、均已在文中作了明确说明并表示了谢意。本声明的法律结果由本人承担。毕业设计 论文)作者签名:2018 年 6 月 11日山东轻工业学院关于毕业设计论文)使用授权的说明本毕业设计 论文)作者完全了解学校有关保留、使用毕业设计论文)的规定,即:学校有权保留、送交设计论文)的复印件,允许设计论文)被查阅和借阅,学校可以公布设计 论文)的全部或部分内容,可以采用影印、扫描等复制手段保存本设计论文)。指导教师签名:毕业设计 论文)作者签名:2018年 6 月 12 日 2018年 6 月 12 日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 43
3、 页I / 43 目录摘要 IABSTRACTII第一章绪论 11.1 课题的背景、目的与意义.11.2 国内外现状 .11.3 研究设计)内容 .21.4 论文的组织结构 .3第二章相关技术简介42.1 JSP 技术. .42.2 My SQL .42.3 Web 服务器.52.4 连接数据库与 JavaScript.82.5 CSS 层.9第三章系统分析103.1 可行性分析 .103.2 需求分析 .103.2.1 业务需求分析 113.2.2 用户需求分析 113.2.3 功能需求分析 113.3 业务流程分析 .12精选学习资料 - - - - - - - - - 名师归纳总结 -
4、- - - - - -第 3 页,共 43 页II / 43 3.3.1 后台业务流程分析123.4 数据流程分析 .123.5 运行环境及开发工具 .13第四章系统总体设计154.1 系统结构设计 .154.2 功能模块设计 .154.3 后台管理模块的功能模块设计.164.4 数据库设计 .164.5 基本表设计 .17第五章系统实现215.1 程序设计 .215.2 系统页面的设计与实现 .215.3 后台功能模块的实现 .215.3.1 管理员登录模块 225.3.2 添加商品模块 225.3.3 订单信息管理模块235.3.4 查询用户信息模块245.3.5 后台的公告管理模块245
5、.4 系统测试 .245.4.1 系统测试原理 24精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 43 页III / 43 5.4.2 系统测试的方法 255.4.3 本系统测试 26结束语 27致谢 28参考文献 29附录 30精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 43 页I / 43 摘要随着社会的不断发展,科学技术也在不断的更新。Internet作为新型的工具,在90 年代便开始用于商业,它的迅速的发展为商业界提供了更加广阔信息平台与更多的商机,如催化剂一般刺激
6、着商业经济的快速发展。因此选择设计开发一个企业门户网站拥有重要的意义。结合这次设计的意义对Internet在商业中的应用与发展做一下介绍;然后针对整个系统进行分析,其中包括可行性分析、需求分析、系统的业务流程分析、数据分析等;在此基础上确定网站的功能目标,将网站的功能逐次划分,并细分出子功能模块;接下来设计并实现各个模块,在每个模块都能完成其功能的结果下将其综合成一个完整的系统。本文阐述了网上购物系统的开发与设计。设计采用现在比较流行的JSP 网站开发技术,并考虑到网站所处理的数据的结构特点及所学到的知识,应用My SQL数据库系统作为网站的后台数据库。系统实现了网站后台的基本功能,包括商品的
7、添加,删除,修改,查看;会员/ 后台管理员的冻结与解冻;数据报表的统计 。 modification of the order status, view。Noticeadvertising to add, view, modify, delete.During the process of designing the webpageI make the main frame by HTML,and use Dreamweaver8 and Eclipse to finish the detailed design. Keywords: Online Mart;JSP;HTML精选学习资料 -
8、- - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 43 页1 / 43 第一章绪论1.1 课题的背景、目的与意义计算机网络的出现带给了世界巨大的变化,从过去只面向专业部门的信息传送扩展到现代生活的各个角落,它为世界的发展和变革做出了无可估量的贡献。特别是在二十世纪九十年代,美国政府提出“信息高速公路”计划并付诸于实施以后,网络渐渐的从人们极少了解的领域来到了全世界平常人的生活中。在互联网日益流行的今天,网络是主角,是时代的宠儿。在网络大家族中,电子商务则是一个热点。电子商务一个最基本体现就是网上购物,从一定程度上讲它就是网上超市,也就是一种网上销售。“网”
9、字意味着它具有信息时代的快捷方便等特征。事实上电子商务的出现,给消费者的地位,消费观念带来了重要的变化。自我国加入WTO后,越来越多的传统企业进一步认识到企业经济发展的必然趋势是以网络化、全球化为主要特征。而企业实行电子商务则成为企业发展与国际接轨的必要条件。多年来国家十分重视企业的信息化建设,并做了大量工作,但目前企业开始实施信息化的比例还不到20% 。所以电子购物网站的实现是一个非常迫切的需求。现代的网络,已经经历过迅速发展的时期,他的技术也已经相当成熟。因此,依靠网络技术来架设一个网站会在很多方面得到相关的支持。作为信息传输的媒介,它的高速,海量,及时与可接受的可靠性满足了现代人们对于需
10、求的渴望。现在的网络对于人们来说,已经可以不再是单单获得信息的意义,更反应了现代人生活的理念,更为重要的是成为企业与政府传达思想,介绍自身的平台。因为现代社会愈发的依赖于网络,特别是“万维网”,为企业或政府量身设计一个网站被默认为必不可少的事情。1.2 国内外现状伴随着 Internet的蓬勃发展,网络购物中心作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已不再满足于信息浏览和发布,而是渴望着能够充分享受网络所带来的更多的便利。的确,客户足不出户便可以方便快捷的选购自己喜欢的商品,这正是网络购物中心为客户带来的好处。敏锐的网络商家当然不会错过这样绝好的机会,
11、越来越多的网站投身到提供网络购物服务的行列中来,一个基于Internet的全球电子商务框架正在形成。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 43 页2 / 43 在美、日等信息化程度较高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛凯玛特,家庭仓储、科罗格、J.C 培尼等纷纷挤身于网络经商的行列。调查表明:美国的家庭已越来越习惯于在家中从网上购物。在我国,网上购物从无到有也不过短短几年时间。我国第一家网上购物发生在 1996 年,燕莎友谊商场首次通过网上商城售出一个景泰蓝,虽然货款的支付不是在网上进行的
12、,但这毕竟为我国零售业奏出了网上购物的先声。根据CNNIC的统计结果,截止2004 年 1 月中国有互联网用户7950 万人,而又有40.7%以上的网民在过去的一年里有过网上购物经历,这就说明中国有网上购物的用户达是3235.7 万人,并且这一数字还在以17% 左右的速度增长,到2006年中国网上购物用户将达到6962 万人,这说明在中国发展网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。在最近一段时间里,我也查了一些关于网上购物的信息。有 60.4%的网站属于企业网站,可见如今企业都将网站作为推广自己的重要手段。其次是个人网站。而政府部门的网站占到4.4%。但是,另有调查显示,将近
13、75% 的企业的网站每天的点击率在200 次以下,更有 51.5%的企业网站的点击率不足50 次,仅有 8.6%的企业网站的点击率每天超过 1000 次。这说明,做好一个网站,做出网站的特色也企业信息与新闻相结合来吸引人观看是一个非常重要的问题。另外,作为信息、新闻传播的传统模式的报刊业也将目光和精力投入到网络网站上来。毫无疑问,高速,海量的信息传输对报刊业也是巨大的刺激。2005 第五届中国网络媒体论坛中提出到“顺应数字化潮流,地方报业踏上网上之路”。此外,随着电子时代的迅速发展,MP3等电子产品已受到广大的消费群体高度的关注。生产制造MP3的厂商作为新时代产业的一个主要部分,当然也会紧随着
14、时代的发展来使自己在市场与行业中更具竞争力。利用电子商务的模式,在介绍推广自己的同时,以新的一种渠道销售自己的产品,也愈发被关注。因此,设计一个具有电子商务功能的企业网站具有非常好的开发与应用前景。1.3 研究设计)内容这次设计实现了一个网上购物网站。网络购物中心所承载的信息量大、购物流程比较繁琐,而且互联网中日益肆虐的黑客和病毒对网络的安全性提出了更高的挑战。开发出的网络购物中心系统My SQL数据库,采用国际先进的JSP精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 43 页3 / 43 进行开发,具有很高的稳定性和安全性。网络购物
15、中心真正实现了在Internet上的经营销售,从而使其获得更大的市场机遇及经济效益,很大程度地提高了企业的核心竞争力。这个网上购物系统所需要的功能从用户角度进行划分,可以分为前台用户功能和后台管理功能。用户功能主要提供给购物的用户使用,包括用户的注册、登录,购物车,查看订单等;后台管理功能主要提供给系统的管理人员使用,包括对用户、商品、订单的管理。用户注册后,登陆网站的用户可以在线查看、订购产品,并可在论坛中与其他用户进行交流及提出意见等。这些部分用JSP 设计页面及连接,使用数据库来建立相关的表,以便于对其进行查看、修改或删除。在网站设计中,管理员完成对网站的维护与管理的工作。使用数据库中权
16、限的功能对管理员设置权限,管理员可以对商品信息进行新增,修改及删除,也可以对订单信息进行处理,同时管理员也可以对用户信息进行管理。1.4 论文的组织结构本文分为六章,通过对这个网站的分析、设计与实现的过程的全面介绍来展示系统的全部特性。第一章绪论描述了课题的背景、目的与意义,介绍了国内外现状,进而总结出此次研究工作的内容。第二章是在系统设计中的一些相关技术简介。第三章系统分析首先从几个角度分析了系统开发的可行性。阐述了系统在实际应用中的价值,然后进行了需求分析、网站业务流程分析和数据流分析。第四章的系统总体设计在明确了系统设计原则下,进行了功能模块设计。接着进行数据库设计,首先针对系统中的数据
17、设计出实体间的关系,然后描述了数据库中基本表的设计。第五章的系统实现阐述了系统页面及其逻辑功能的实现,重点描述了后台的各个功能模块的实现过程,对主要的原理和技术进行了详细的说明,并列出了一些典型的逻辑的程序流程图进行说明。第六章系统调试与实施介绍了系统的各项调试指标,分析了调试的过程和结果。第七章结论分析了系统的一些主要的优、缺点,开发此系统的过程中所遇到的困难。最后是参考文献和致谢。参考文献中列出了本次毕业设计中所用到的参考资料和文中所引用到的定义与解释的出处。致谢中对在本次毕业设计中给予指导和帮助的老师和同学表示由衷的感谢。第二章相关技术简介2.1 JSP 技术本系统采用 JSP技术开发。
18、因为JSP与同类的 CGI、ASP 、PHP相比有着独特的优势。 JSP 是 Sun 属下 Java soft 公司推出的技术,使用的Java 语言是ASP 、PHP和 JSP 三者中最新的技术。它以Java SERVLET技术为基础,又在许多方面作了改进,并且充分借鉴了ASP和 PHP一些合理的地方。它的平台无关精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 43 页4 / 43 性胜过 ASP技术,而强大的 JDBC数据库接口规范又优于PHP技术,而且 JSP技术是以 JAVA语言为基础的,可以使用JavaBeans 组件和自定义
19、标签,因此具有良好的扩展性。总的来说, JSP 业已成为目前主流的动态网页开发技术之一。JSP 的优点如下:1)借助 JSP技术, Web网页设计人员可以使用HTML或者 XML标记来设计和风格化 Web页面,使用JSP标记来生成动态Web页面。在服务器端, JSP引擎负责解释 JSP标记和脚本,生产请求的内容,然后将结果以HTML 页面等形式发送回浏览器。这样开发者可以保护自己的核心代码,同时可以保证任何Web浏览器的高度兼容性。2)JSP页面可借助可重用的、跨平台的组件Java Bean),来执行 Web应用所要求的极为复杂的业务处理。能够共享和交换调用一般操作的组件,或者让这些组件被别的
20、开发人员或者开发团队所使用。3)通过开发定制化的标签库等方法,JSP技术可以支持动态扩展技术。4)作为 Java2 的一个重要组成部分, JSP技术能够支持高度复杂的、基于Web的企业级应用。 JSP技术可以轻松地与现有多种应用体系架构整合,可以充分利用已有开发工具和技巧,并扩展到企业级分布式应用环境。此外, JSP 技术无论是在跨平台特性、运行效率、企业级软件开发还是商业支持方面都具有优势,从而使其成为目前和未来进行动态网页开发的最佳工具之一。2.2 My SQL My SQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性
21、、丰富的应用编程接口 API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache 和 PHP/PERL 结合,为建立基于数据库的动态网站提供了强大动力。My SQL是一个真正的多用户、多线程SQL数据库服务器。 SQL的关键应用数据。My SQL 建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管 My SQL仍在开发中,但它已经提供一个丰富和极其有用的功能集2.3 Web 服务器Web服务器负责JSP 文件的执行。目前支持JSP 应用服务器较多,如Tomcat、Resin、Web sphere、Web logic 、J boss 等。(1)T
22、omcat Tomcat 是 Apache 公司组织开发飞一种JSP引擎,由于自身具有Web服务器,可以作为独立的Web服务器使用。如今,基于 Web的应用越来越多,传统的Html 已经满足不了如今的需求。我们需要一个交互式的Web ,于是便诞生了各种Web语言。如 Asp ,JSP ,PHP等。当然,这些语言与传统的语言有着密切的联系,如PHP基于 C 和 C+ 语言,JSP基于 Java 语言。 Tomcat即是一个 JSP 和 SERVLET 的运行平台。Tomcat是一个免费的开源的SERVLET 容器,它是 Apache基金会的 Jakarta工程中的一个核心工程,由Apache,S
23、un 和其它一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的SERVLET 和 JSP 规范总能在 Tomcat中得到体现。 Tomcat被 Java World 杂志的编辑选为2001 年度最具创新的 java产品,可见其在业界的地位。Tomcat 最新版本是4.0x.4.0x与 3.x的架构不同,而是重新设计的。Tomcat4.0x 中采用了新的 SERVLET 容器: Catalina ,完整的实现了 SERVLET2.3和JSP1.2规 范 。 Tomcat 提 供 了 各 种 平 台 的 版 本 供 下 载 , 可 以 从http:/jakarta.apache.or
24、g上下载其源代码版或者二进制版。由于Java 的跨平台特性,基于Java 的 Tomcat也具有跨平台性。与 传 统 的 桌 面 应 用 程序 不同 , Tomcat 中 的 应用 程序 是一 个 WARWeb Archive )文件。 WAR 是 Sun 提出的一种 Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html 和 JSP 文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个 web. xml 文件和一个 classes 目录, web. xml 是这个
25、应用的配置文件,而classes 目录下则精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 43 页6 / 43 包含编译好的SERVLET 类和 JSP或 SERVLET 所依赖的其它类 如 Java Bean)。通常这些所依赖的类也可以打包成JAR放到 WEB-INF下的 lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。在 Tomcat 中,应用程序的部署很简单,你只需将你的WAR 放到 Tomcat 的Web App目录下, Tomcat 会自动检测到这个文件,并将其解压。你在浏览器中访问这个应
26、用的JSP 时,通常第一次会很慢,因为Tomcat 要将 JSP 转化为SERVLET 文件,然后编译。编译以后,访问将会很快。另外 Tomcat 也提供了一个应用: manager ,访问这个应用需要用户名和密码,用户名和密码存储在一个xml 文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。Tomcat 不仅仅是一个SERVLET 容器,它也具有传统的Web服务器的功能:处理Html 页面。但是与Apache 相比,它的处理静态Html 的能力就不如Apache.我们可以将 Tomcat和 Apache集成到一块,让 Apache 处理静态 Html
27、,而 Tomcat 处理 JSP和 SERVLET. 这种集成只需要修改一下Apache和 Tomcat 的配置文件即可。另外, Tomcat 提供 Realm支持。 Realm类似于 Unix 里面的 group. 在 Unix中,一个group 对应着系统的一定资源,某个group 不能访问不属于它的资源。 Tomcat 用 Realm 来对不同的应用 类似系统资源)赋给不同的用户类似group)。没有权限的用户则不能访问这个应用。 Tomcat 提供三种 Realm ,1:JDBC Realm ,这个 Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。 2 :JNDI
28、 Realm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息。 3:Memory Realm,用户信息存在一个xml 文件里面,上面讲的 manager应用验证用户时即使用此种Realm.通过 Realm我们可以方便地对访问某个应用的客户进行验证。在 Tomcat4 中,你还可以利用SERVLET2.3提供的事件监听器功能,来对你的应用或者Session 实行监听。 Tomcat 也提供其它的一些特征,如与SSL集成到一块,实现安全传输。还有Tomcat也提供 JNDI 支持,这与那些 J2EE应用服务器提供的是一致的。说到这里我们要介绍一下通常所说的应用服务器如Web Logi
29、c)与 Tomcat 有何区别。应用服务器提供更多的J2EE特征,如 EJB ,JMS ,JAAS等,同时也支持JSP 和 SERVLET. 而 Tomcat 则功能没有那么强大,它不提供 EJB等支持。但如果与JBOSS 一个开源的应用服务器)集成到一块,则可以实现J2EE 的全部功能。既然应用服务器具有Tomcat 的功能,那么Tomcat 有没有存在的必要呢?事实上,我们的很多中小应用不需要采用EJB等技术, JSP 和 SERVLET已经足够,这时如果用应用服务器就有些浪费了。而Tomcat 短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择精选学习资料 - - - - -
30、 - - - - 名师归纳总结 - - - - - - -第 13 页,共 43 页7 / 43 Tomcat. 基于 Tomcat 的开发其实主要是JSP 和 SERVLET的开发,开发JSP 和SERVLET 非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant 也是 Jakarta 中的一个子工程,它所实现的功能类似于 Unix中的 make.你需要写一个build. xml文件,然后运行 Ant 就可以完成xml 文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml 中写很少的东西就可以将其编译并打包成WAR
31、. 事实上,在很多应用服务器的发布中都包含了Ant. 另外,在JSP1.2 中,可以利用标签库实现 Java 代码与 Html 文件的分离,使JSP的维护更方便。Tomcat 也可以与其它一些软件集成起来实现更多的功能。如与上面提到的JBOSS 集成起来开发 EJB,与 CocoonApache的另外一个工程)集成起来开发基于 Xml的应用,与 Open JMS 集成起来开发 JMS应用,除了我们提到的这几种,可以与Tomcat集成的软件还有很多。Tomcat 确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型11
32、。(2)Resin Resin 是目前最流行的支持JSP和 SERVLET 的 Web服务器之一,它被誉为JSP最快的解释器,而且,目前的Resin 可以支持 Sun 的 J2EE ,这一点 Tomcat暂时是做不到的。 Resin 对静态页处理能力相对较弱,为了更好的发挥特性,通常,它都与 Apache组合使用,这样的组合可以架构出功能十分强大的站点。(3)Web logic Server Web logic是 BEA 公司开发的墓前最流行的Web应用服务器之一,它拥有处理关键Web应用系统问题所需的性能,具备很高的可扩展性和可用性,而且在与 BEA Web logic Commerce S
33、erver TM 配合使用时,可为部署适应性个性化的电子商务应用系统所需的多种特色和优势:1)领先的标准全面支持 EJB 、JSB 、JMS 、JDBC 、XML 、和 WML 。2)无限的可扩展性包括客户机的连接共享,资源Pooling 以及动态网页和EJB组建群集。3) 部署灵活Web logic Server的特点是与领先的数据库、操作系统和Web服务器集精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 43 页8 / 43 成。在本次设计中,选择使用的是Tomcat服务器。2.4 连接数据库与 JavaScript JDBCJa
34、va Data Base Connectivity)是 sun 公司制定的 Java 链接数据库技术。在安装好数据库后JSP 并不能直接与数据库连接8,这里选择利用第三方 JDBC驱动程序连接数据库。在工程开发中,如果频繁在JSP页面中使用数据库连接函数,释放函数进行操作的话,势必会非常麻烦,而且代码的冗余量也很大,页面很多的时候维护也会非常麻烦,页面上到处都是数据库连接和释放代码。因此,可以利用公共数据库访问连接Java Bean 的开发。通过将数据库连接函数代码,释放函数代码等封装在Java Bean 中,可以减少非常多的代码编程工作,提高代码可维护性。在加载了 JDBC驱动程序,建立了数
35、据库的URL后,创建一个DB. java的文件,通过调用Driver Manager类的 get Connection方法与 db_ Business 数据 库 连 接 。 在 get Connection方 法 的 实 现 中 , 声 明 数 据 库 名 称 为 db_ Business 。这样,在其他的Java 文件和页面中声明调用或包含了DB. java文件后,都可以对数据库操作了。JavaScript也叫小脚本语言,是一种基于对象和事件驱动并具有安全性能的脚本语言,使用它的目的是与HTML超文本标识语言、 Java 脚本语言一起实现在一个网页中链接多个对象,与网络客户交互作用,从而可以
36、开发客户端的应用程序。它是通过嵌入或调入在标准的HTML 语言中实现的9。这里主要指的是 Java script和 Jscript简称 JS都是因特网上最流行的网页脚本语言,前者与Java 无任何关系,后者是微软开发。它是网站前端开发必要的一种所谓的特效技术。JS 主要是做界面的 . 用于客户端也就是浏览器端上执行的脚本开发。可以使网页有动态的效果特效,如:图片、文字的滚动;层的动态切换,显示及隐藏;对HTML元素的操作;动态的对html 内容修改;动态的修改CSS样式;实现如下拉列表的连动等等. ),可以进行表单的输入验证 如:邮箱、电话、邮编的合法性,输入内容长度及内容验证等)Java s
37、cript短小精悍,又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。JS 文件只需用记事本就可打开修改,修改完成必须以JS 为后缀的文件。 Java script 是一种解释型的、基于对象的脚本语言。尽管与C+ 这样成熟的面向对象的语言相比,J Script 的功能要弱一些,但对于它的预期用途而言,J Script 的功能已经足够大了。Java script不是其他语言的精简版例如,它只是与 Java 有点模糊而间接的关系),也不是任何事物的简化。不过,它有精选学习资料 - - - - - - - - - 名师归纳总结 -
38、 - - - - - -第 15 页,共 43 页9 / 43 其局限性。例如,您不能使用该语言来编写独立运行的应用程序,并且没有对读写文件的内置支持。此外,Java script脚本只能在某个解释器或“宿主”上运行,如 Active Server PagesASP)、Internet 浏览器或者 Windows脚本宿主。 Java script 是一种宽松类型的语言。宽松类型意味着您不必显式定义变量的数据类型。事实上 Java script 更进一步。您无法在J Script上明确地定义数据类型。此外,在大多数情况下,Java script 将根据需要自动进行转换。例如,如果将一个数值添加到
39、由文本组成的某项 是一系列格式规则,它们控制网页内容的外观。使用 CSS 可以非常灵活并更好地控制具体的页面外观,从精确的布局定位到特定的字体和样式。并能极大的方便网页制作的工作7。这次设计中就学习使用了CSS层叠样式表,在 HTML 文文档外部将一系列CSS规则存储到一个 .CSS文件中。例如创建了一个名为body 的选择器。利用它来统一设计网站内网页背景及外部框架的样式。在声明中规定了页面的背景、滚动条的颜色样式等。还用BR和 text 两个选择器确定输出文本框时的样式。由于CSS已经规定声明部分中的属性及其取值范围,所以对于我这样初学者的难点就是如何找到合适的属性来实现页面设计。第三章系
40、统分析3.1 可行性分析可行性分析是在全面调查基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、运行的方面进行分析和研究,以避免投资失误,保证新系统开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。这部分将从以下四个方面进行研究:技术可行性、经济可行性、操作可行性和调度可行性。1)技术可行性因为计算机硬件的发展已经越来越快,现在PC 机的性能已经可以胜任普通网站的 web服务器。购买一台高性能PC机作为企业的网站对于这个营销商来说并不是问题。JSP 是 Java 在 Internet/Intranet Web上的重要应用技术,可以和各种
41、Java 技术完好的结合在一起从而实现非常复杂的应用。因此得到了广泛的支持和承认,成为一种非常流行的网站开发技术。利用JSP 技术可以建立先进、安全和跨平台的动态网站。鉴于JSP 技术的成熟与广泛的使用,加以指导老师的帮助可以得到很多的技术支持。由于在学习数据库时一直以My SQL作为例子,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 43 页10 / 43 所以采用 My SQL作为数据库。2)经济可行性根据调查的资料,现在聘用一支团队设计并建设企业商务型网站的费用为5300 元左右,另外每年交纳600 元占用网站空间和网站维护费
42、。为了使网站建成后能达到增加企业经济效益的效果,寻找一支创新与技术优秀的团队最多需要增加 3000 元的一次性投资。这样看来一个成功的网站建成后为这个营销商带来的效益将会远大于成本。但架设好一个网络中的服务器,以满足互联网中浏览者对速度的需求,这样每年服务器与网络线路和设备的维护费用将是企业不得不重点考虑的因素。如何做好经济可行性分析,需要通过仔细的调查与投资和行业方面的专业人士分析。 GoodsNumber Int 4 商品数量GoodsGrade Int 4 商品等级isSale Char 1 是否特价isValid Char 1 是否有效:上架 1,下架 0 GoodsPicture I
43、mage 商品图片GoodsDesc Text 4000 商品描述Creater Bigint 创建人CreateDate datetime 8 创建时间Updater Bigint 修改人UpdateDate datetime 8 修改时间(2)用户信息表 Tb _member 用户信息表 Tb_member 用来保存用户信息。表 4-3 Tb_member 的结构字段名数据类型长度是否主键描述MemberID Bigint 4是会员 ID MemberName Varchar 20 会员名MemberPassword Varchar 20 会员密码MemberEmail Varchar 2
44、0 会员 Email MemberGrade Int 4 会员等级精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 43 页17 / 43 MemberAmount Money 8 消费额MemberStatus Char 1 会员状态CreateDate Datetime 8 创建时间UpdteDate Datetime 8 修改时间MemberSex Char 2 性别MemberBirthday Date 生日MemberEdu Varchar 20 教育程度MemberSal Int 8 月收入MemberMariy Varch
45、ar 10 婚姻状况(3)表会员地址簿 T _Member Address Book 表 4-4 T_MemberAddressBook 的结构(4)T _Goods Type商品类型表)订单生成表T _Goods Type 用来记录新生成的订单。表 4-5 T_GoodsType 的结构字段名数据类型长度是否主键描述TypeID Bigint 4 是类别 ID TypeCode nvarchar 200 类型编码TypeName nvarchar 200 类型名称TypeDesc Varchar 2000 类型描述isLeaf Char 1 0 表示是叶子节1 表示非叶子节点(5)商品收藏表
46、 T _Shop 表 4-6 T _Shop的结构字段名数据类型长度是否主键描述ID Bigint 4是地址薄 ID MemberID Bigint bigint 会员 ID MemberTrueName Varchar 20 会员姓名MemberAddress Varchar 20 收货地址ProvinceCode Char 2 所在省份CityCode Char 4 所在城市AreaCode Char 6 所在地区MemberPostcode Varchar 6 邮政编码MemberTelephone Varchar 20 联系电话CreateDate Datetime 8 创建时间Upd
47、ateDate Datetime 8 修改时间精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 24 页,共 43 页18 / 43 ID bigint 收藏 ID MemberID bigint 8 会员 ID GoodsID bigint 商品 ID (6)Tb _order 订单信息主表)订单信息主表用来保存订单的概要信息。表 4-7 Tb_order的结构字段名数据类型长度是否主键描述OrderID bigint 是订单 ID MemberID bigint 会员 ID MemberTrueName varchar 30 收货人MemberA
48、ddress varchar 100 收货地址MemberProvince varchar 30 所在省份MemberCity varchar 30 所在城市MemberArea varchar 30 所在地区MemberPostcode varchar 6 邮政编码MemberTelephone varchar 20 联系电话OrderAmount money 订单总金额OrderPay Int 付款方式OrderInvoice bigint 100 开具发票OrderCarry Int 送货方式OrderCarryTime datetime 送货时间OrderRemark varchar
49、2000 订单备注OrderStatus char 1 订单状态发送未确认1,发送并确认2,发送确认后返回 3,未发送 4 CreateDate datetime 创建时间UpdateDate datetime 修改时间(7)Tb _order Detail订单明细表)订单明细表用来保存订单的详细信息表 4-8 Tb _order Detail的结构字段名数据类型长度是否主键描述ID Bigint 是订单明细 ID OrderID Bigint 8 订单 ID GoodsID Bigint 8 商品 ID GoodsName Int 4 商品名称GoodsPrice Money 商品单价精选学
50、习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 25 页,共 43 页19 / 43 GoodsCoun Int 商品数量(8)订单付款方式表T _Order Pay Mode 表 4-9 T _Order Pay Mode的结构字段名数据类型长度是否主键描述PayID Int 4 是支付方式 ID PayContent varchar 150 支付方式内容PayDesc varchar 50 描述(9)送货方式表 T _Order Carry Mode 表 4-10 T _Order Carry Mode的结构字段名数据类型长度是否主键描述CarryI
51、D Int 4 是送货方式 ID CarryContent varchar 50 送货方式内容CarryDay Int 送货天数CarryDesc varchar 150 描述第五章系统实现在上一章着重讨论了系统各个模块功能的设计,并详细分析了每一个模块的功能。在本章将具体讨论如何实现功能模块,最终实现整个系统。经过这个阶段的设计工作,应该得出对目标系统的描述,从而在编码阶段可以把这个描述直接翻译成用JSP网页设计语言书写的程序。5.1 程序设计本系统设计的网站在设计过程中包含页面HTML )的设计以及客户端验证机制JavaScript )的设计。 JavaScript也叫小脚本语言,他是一种
52、非常流行的动态网页技术。他不仅能够实现网页的动态效果,而且能够在一定程度上检测网页的错误,从而在一定程度上实现网站的安全。本系统应用服务器端JSP 动态网页技术,以及在SERVLET 和 Java Bean 的可重用组件技术的支持下,结合客户端动态网页技术Java script以及与 HTML 的无缝结合的设计,从而方便系统的实现。5.2 系统页面的设计与实现如果将网站比作一个人的话,服务器就像大脑,数据库就像五脏六腑,其内嵌的 Java 和 JavaScript组合起来就像是细胞与神经,而网页就是这个人的皮肉。网页将网站的各个组成部分包裹起来,形成易懂并且美观的外表展示给大家。浏览者登陆网站
53、后看到的就是一个个网页的组合。所以设计和实现每一精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 26 页,共 43 页20 / 43 个网页也是非常重要的工作。随着科技的高速发展,众多网页制作的应用软件应运而生。相对于传统的动态网页开发工具而言,由于继承了Java 语言的许多优点,用JSP开发动态网站十分方便,开发效率较高。此外,JSP 还具有强大的组件 Java Bean)支持功能,可以方便地实现组件复用,进一步提高了开发效率。在整个网页的制作过程中,都是结合使用HTML 语言来实现设计的。系统的页面设计决定了网站的风格, 制作好的网站不仅提供给
54、营销商,更多的要供浏览者浏览。所以整个网站系统应注重的是:易导航性、易操作性和友好的交互界面。因此,网站的设计最好要简洁、明了、格调清新、实用、易于使用和维护。在页面的风格上应保持统一,这里采用CSS样式表将所有页面的字体、字号、颜色以及超链接的样式做统一定义。5.3 后台功能模块的实现后台功能只允许具有管理员权限的用户使用,它是实现前台功能的基础。后台包括管理员身份验证、添加商品模块、订单信息管理模块、查询用户信息管理模块、添加链接模块、公告信息管理模块。后台首页主要有以下几个部分。1)后台导航区:放置管理员可操作工程的链接; 来完成。代码如下。为了确保商品在数据表中的唯一性,在用户提交表单
55、时,需要先根据用户输入的商品名称对数据表进行查询,确保此商品在数据表中不存在后,方可执行插入操作。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 28 页,共 43 页22 / 43 5.3.3 订单信息管理模块用户在前台购物所产生的订单并不能立即执行,需要系统管理员在后台进行订单信息管理审核以确认它的执行性。用户单击导航区中的“订单信息管理”超链接进入用户订单处理页面,该页面上会显示近期所有没被处理的订单。用户订单处理页面显示的是用户基本信息,要想知道订单中所涉及的商品,需要单击对应订单号的超链接打开商品订购详单页面才行。商品订购详单主要通过提交
56、的订单号从Tb _order表中查询处对应的商品并显示在页面中,管理员审核后可通过复选框来设置订单是否执行。图 5-3 订单信息管理模块5.3.4 查询用户信息模块查询用户信息模块用来完成对注册用户的浏览及删除功能。如果用户蓄意性注册或者在很长时间内没有订单产生,管理员就可以将该用户信息删除或者冻结。在这一部分的设计中,也使用了分页显示功能。图 5-4 用户信息管理模块精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 29 页,共 43 页23 / 43 5.3.5 后台的公告管理模块对网站的公告信息进行管理添加,删除,修改,查看)图 5-5 公告信
57、息管理模块5.4 系统测试在完成某一功能模块后,都要进行一下系统测试。检验所完成的这一模块是否能实现预计的功能。其目的是方便整个系统的实现。5.4.1 系统测试原理测试主要依据是被试系统的研制任务书和技术规格书,是对软件雄体功能和性能的综合测试与评估。测试原理是软件测试活动的理论基础,测试方法是铡试原理的实际应用和获得测试数据的手段。基于软件的共性,对于软件的测试要遵循一般软件的测试原理和方法。同时,针对软件的特性,必须找到合适的测试方法。测试用例的合理性对于软件的测试与评估具有关键作用,而如何使设计的用例、合理并且典型有效并不容易。所以应该与软件的研制人员以及最终用户一起,有针对性地研究实际
58、操作环境并加以描述,形成合理的测试用例集。另一方面,软件运行环境的复杂程度对软件评估具有重要作用,所以应产生尽量逼真的运行背景以便于研究。软件测试的周期如图6.1 所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 30 页,共 43 页24 / 43 图 5-1 软件测试周期示意图5.4.2 系统测试的方法软件测试的方法和技术是多种多样的。对于软件测试技术,可以从不同的角度加以分类 : 从是否需要执行被测软件的角度,可分为静态测试和动态测试。从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。的完整性。黑盒测试方法主
59、要有等价类划分、边值分析、因果图、错误推测等。“黑盒”法着眼于程序外部结构,不考虑内部逻辑结构,只是针对软件的界面和软件需求规格说明中规定的功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无需求分析系统设计编制程序单元测试集成测试系统测试确认测试使用维护测试阶段开发阶段精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 31 页,共 43 页25 / 43 穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。. Java核心技术 . 第 8
60、版 . 北京:机械工业出版社, 2008 2 吴亮 (月影 . JavaScript 王者归来 . 清华大学出版社3 SteveSounders(美 . 高性能网站建设. 电子工业出版社4 BillyHoffmanBryanSullivan(美. Ajax 安全技术 . 电子工业出版社5Ross Harm &Dustin Diaz. 谢廷轩译 .JavaScript 设计模式 . 人民邮电出版社6Alistair Sean Power.袁菲、房向明、袁继彬译.网站性能检测与优化.人民邮电出版社7Michael Morrison. HeadFirstJavascriptOreilly.2008.
61、 8John Res SecretsoftheJavaScriptNinja MANNING ,2009. 9 李华飚 .Java中间件开发技术.中国水利水电出版社.2005. 10Michael Morrison. HeadFirstJavascript. Oreilly.2008. 11亨德森 (美. 构建可扩展的Web站点 . 电子工业出版社12 John Res. ProJavaScript.Techniques Apr 2006. 13 李 瑾 , 卢 松 涛 .基 于Java 语 言 邮 件 收 发 系 统 的 设 计 与 实 现 J. 福 建 电脑,2007,(3:162-163
62、 14Greg Goral ski & Lord Alex Leon. FriendsofEDFoundation.Flex.forDesigners. 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 34 页,共 43 页28 / 43 Friendsof,2008. 15 马小军等 Java程序设计电子工业出版社,20051-100 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 35 页,共 43 页29 / 43 附 录1. 登录页面的关键代码如下:public class DB Connect
63、ion con = null。PreparedStatement ps = null。ResultSet rs = null。/打开数据库public void openDB( Properties p = new Properties(。try p.load(new FileInputStream(new File(F:/mysql.properties。 catch (FileNotFoundException e1 e1.printStackTrace(。 catch (IOException e1 e1.printStackTrace(。 Stringclassname=p.getPr
64、operty(classname。String url = p.getProperty(url。String uname = p.getProperty(uname。String pwd = p.getProperty(pwd。try Class.forName(classname。con = DriverManager.getConnection(url, uname, pwd 。System.out.println(成功打开数据库 。 catch (ClassNotFoundException e e.printStackTrace(。System.out.println(打开数据库失败
65、。 catch (SQLException e e.printStackTrace(。System.out.println(打开数据库失败 。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 36 页,共 43 页30 / 43 /插入、更新、删除Public boolean excuteDB(String sql,Object.o try ps = con.prepareStatement(sql。for(int i = 0。i ps.setObject(i+1, oi。 int rows = ps.executeUpdate(。if(rows
66、0 System.out.println(执行成功 .。return true。 catch (SQLException e e.printStackTrace(。System.out.println(服务器正忙,请稍后再试.。 return false。 public void closeDB( try if(rs != null rs.close(。if(ps != null ps.close(。if(con != null con.close(。System.out.println(关闭数据库成功 。 catch (SQLException e / TODO Auto-generated
67、 catch block e.printStackTrace(。System.out.println(关闭数据库失败 。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 37 页,共 43 页31 / 43 2. 添加商品模块关键代码:public class DivpageGoodsSERVLET extends HttpSERVLET public void doGet(HttpSERVLETRequest request, HttpSERVLETResponse response throws SERVLETException, IOExce
68、ption this.doPost(request, response。 public void doPost(HttpSERVLET Request request,HttpSERVLETResponse response throws SERVLETException, IOException response.setContentType(text/html。request.setCharacterEncoding(utf-8。response.setCharacterEncoding(utf-8。PrintWriter out = response.getWriter(。int cur
69、rentpage = 1。int pagesize = 6。try currentpage=Integer.parseInt(request.getParameter(page。if (currentpage currentpage = 1。 else currentpage=Integer.parseInt(request.getParameter(page。 catch (Exception e Pages p = new Pages(。DivpageGoodsService dgs = new DivpageGoodsService(。p = dgs.divpageGoodsServic
70、e(currentpage, pagesize。request.getSession(.setAttribute(list, p。/搜索判断精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 38 页,共 43 页32 / 43 Object list=request.getAttribute(degoods。Integer b=0。try b = (Integer request.getAttribute(a。 catch (Exception e System.out.println(错了 。finally request.setAttribute
71、(degoods, list。request.setAttribute(b, b。Integer c=1。request.getSession(.setAttribute(c,c。Integer li=0。request.setAttribute(li, li。request.getRequestDispatcher(/JSP/goodslook.JSP.forward(request,response。out.flush(。out.close(。 3. 订单的关键代码:public class DivpageOrder1SERVLET extends HttpSERVLET public v
72、oid doGet(HttpSERVLETRequest request, HttpSERVLETResponse response throws SERVLETException, IOException this.doPost(request, response。 public void doPost(HttpSERVLETRequest request, HttpSERVLETResponse response throws SERVLETException, IOException response.setContentType(text/html。精选学习资料 - - - - - -
73、 - - - 名师归纳总结 - - - - - - -第 39 页,共 43 页33 / 43 request.setCharacterEncoding(utf-8。response.setCharacterEncoding(utf-8。PrintWriter out = response.getWriter(。int currentpage = 1。int pagesize = 6。try currentpage=Integer.parseInt(request.getParameter(page。currentpage=Integer.parseInt(request.getParamet
74、er(page。if (currentpage currentpage=1。else currentpage=Integer.parseInt(request.getParameter(page。 catch (Exception e System.out.println(e.getMessage(。 Pages p = new Pages(。DivpageOrderService dgs = new DivpageOrderService(。p = dgs.divpageOrderService1(currentpage, pagesize。request.setAttribute(orde
75、r, p。request.getRequestDispatcher(/JSP/order1.JSP.forward(request, response。out.flush(。out.close(。 4. 会员的关键代码:public class DivpageMemberSERVLET extends HttpSERVLET public void doGet(HttpSERVLETRequest request, HttpSERVLETResponse responsethrows SERVLETException, IOException this.doPost(request, resp
76、onse。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 40 页,共 43 页34 / 43 Public void doPost(HttpSERVLETRequestrequest,HttpSERVLETResponse response throws SERVLETException, IOException response.setContentType(text/html。response.setCharacterEncoding(GBK。request.setCharacterEncoding(GBK。int pagesize = 6。
77、int currentpage = 1。PrintWriter out = response.getWriter(。try currentpage=Integer.parseInt(request.getParameter(page。currentpage=Integer.parseInt(request.getParameter(page。if (currentpage currentpage = 1。 else currentpage=Integer.parseInt(request.getParameter(page。 catch (Exception e System.out.prin
78、tln(e.getMessage(。 DivpageMemberService dms = new DivpageMemberService(。Pages p = dms.divpageMemberService(currentpage, pagesize。request.getSession(.setAttribute(list, p。request.getRequestDispatcher(/JSP/right.JSP.forward(request response。out.flush(。out.close(。 精选学习资料 - - - - - - - - - 名师归纳总结 - - -
79、- - - -第 41 页,共 43 页35 / 43 5. 后台公告关键代码如下:public class DivpageNoticeSERVLET extends HttpSERVLET public void doGet(HttpSERVLETRequestrequest,HttpSERVLETResponse response throws SERVLETException, IOException this.doPost(request, response。 public void doPost(HttpSERVLETRequest request, HttpSERVLETRespo
80、nse response throws SERVLETException, IOException response.setContentType(text/html。request.setCharacterEncoding(utf-8。response.setCharacterEncoding(utf-8。PrintWriter out = response.getWriter(。int currentpage = 1。int pagesize = 3。try currentpage=Integer.parseInt(request.getParameter(page。currentpage
81、=Integer.parseInt(request.getParameter(page。if (currentpage currentpage=1。else currentpage=Integer.parseInt(request.getParameter(page。 catch (Exception e System.out.println(e.getMessage(。 Pages p = new Pages(。DivpageNoticeService dgs = new DivpageNoticeService(。p = dgs.divpageNoticeService(currentpage, pagesize。request.setAttribute(notice, p。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 42 页,共 43 页36 / 43 request.getRequestDispatcher(/JSP/noticelook.JSP.forward(request,response。out.flush(。out.close(。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 43 页,共 43 页