基于JavaEE的B2B在线交易系统的设计与实现

六眼飞鱼酱① 提交于 2020-04-08 01:39:16

获取项目源文件,技术交流与指导联系Q:1225467431

 

B2B(Business To Business),是指一个市场的领域中的一种,是企业对企业之间的营销关系。而电子商务B2B系统是现代B2B marketing的一种具体主要的表现形式。它将供应商、采购商、生产商等各种角色通过电子商务系统有效地组织起来,通过网络的快速反应,为用户提供更好的服务,从而促进企业的业务发展。

随着电子商务在互联网上飞速的发展,越来越多的大型企业或者集团根据其拥有的客户资源、企业权威等优势想要建设具有行业特点的B2B电子商务系统,可以方便自己的客户以及同行业的企业之间的交易,本系统是根据目前电子商务业的需求设计的一个B2B在线交易系统(部分功能参照国内比较出名的B2B系统:阿里巴巴和慧聪网)。

系统根据现实中行业的市场需求,目的为解决各行业中的供应商和采购商的跨地域交易不便、诚信无担保、中间费用较高等问题而设计的在线电子商务交易。

本系是统采用B/S架构的J2EE企业级应用程序,采用工具主要有:Myeclipse、SVN、PowerDesignerSQLyog等,在J2EE技术中主要采用了Struts1.2框架、Spring2.0框架、EL表达式和公司内部数据处理框架(保密),系统的整体结构采用MVC三层模式,项目中还大量运用了较新的ajax技术(避免页面的重复刷新)和EL表达式(系统语言的国际化处理)。

通过规范的需求分析、概要设计、详细设计、编码、测试等阶段最终完成此系统的开发,本文主要对系统中的整体逻辑结构、业务流程、技术实现等方面展开细致的讨论。通过这次的项目设计和论文设计,使我对电子商务行业的业务流程有了深入的了解,掌握了Struts1、Spring2、ajax、EL表达式等技术,对软件工程中的开发流程等方面也有了细致的了解,并且锻炼了自己动手的实践能力。

关键词B2B、电子商务、软件工程、StrutsSpring

ABSTRACT

B2B, is a friend To the field of a market refers To a kind of, is the enterprise To between enterprise's marketing relationship. And e-commerce B2B system is a kind of modern B2B marketing specific main forms of expression. It will suppliers, buyers and manufacturers, etc. Various kinds of characters, through the electronic commerce system effectively organize and quick response through the network, to provide better service, so as to promote enterprise business development.

As the electronic commerce in the Internet and rapid development, more and more large enterprises or group according to its have clients resources, enterprise authority has advantages such as want to build the profession characteristic B2B e-commerce system, can go to the lavatory to their customers and in the same trade between enterprises, this system is according to the needs of the present e-commerce industry design of a B2B online trading system (part function reference to domestic famouser B2B system: alibaba and hc360.com).

System according to the market demand in reality to industry for solving the suppliers and purchasers industries of border-crossing trading inconvenience, honesty unsecured, intermediate costs higher problem and design online e-commerce transactions.

The department is series adopts B/S structure of J2EE application, using tools hongdu basically has: Myeclipse SVN, PowerDesigner, SQLyog, such as in J2EE technology, in Struts1.2 framework, mainly by the Spring2.0 frame, EL expression and a company's internal data processing framework (secret), the overall structure of the system by using MVC three-layer model, project is application of a new ajax technology (avoid repetition of the page refresh) and EL expression (the internationalization of the system language treatment).

Through the standard requirement analysis, general design, detailed design, code, test stage finish this system development, this paper focuses on the system of overall logic structure, business process, technology to achieve such aspects of detailed discussion. Through this project design and papers to design, make my business process of e-business industry developed a deep understanding of Struts1, and master the Spring2, ajax, EL expression of software engineering technology, such as the development process also had an accurate understanding of, and exercise oneself start work ability of practice.

Key WordsB2B, e-commerce, software engineering, Struts, Spring

第一章  

B2B是电子商务的一种模式,是英文Business-to-Business的缩写,即商业对商业,或者说是企业间的电子商务,即企业与企业之间通过互联网进行产品、服务及信息的交换。

B2B电子商务模式包括两种基本模式:一种是企业之间直接进行的电子商务(如制造商的在线采购和在线供货等);另一种是通过第三方电子商务网站平台进行的商务活动。例如,国内著名电子商务网站阿里巴巴(china.alibaba.com)是一个B2B电子商务平台,各类企业可以通过阿里巴巴进行企业间的电子商务(B2B),如发布和查询供求信息,与潜在客户/供应商进行在线交流和商务洽谈等,本系统属于后者的应用,即提供一个由运营商来提供一个第三方的电子商务交易平台供其他企业使用。

本系统以产品在线批发交易为核心,辅助功能有供应、求购、资讯等,涉及的用户主要是各行业内的供应商企业、采购商企业、生产商企业和系统运营商等,由运营商作为担保人维护平台会员的公平交易。

系统名词解释

管理员:管理用户发布的信息,主要操作有:审核信息、删除信息、分配权限、设置系统的基础参数。

管理员子账号:由于系统信息量大,管理员分配其账号和权限,然后协助管理员管理系统的信息,以减轻管理员的工作量。

企业会员:主要核心业务为发布产品和购买产品,辅助功能为发布供应信息、求购信息、资讯信息等,企业会员的性质如果详细划分的话可分为:供应商、采购商、生产商等。

企业站:每个企业会员都有属于自己的一个企业展示平台,类似于阿里巴巴和慧聪网等B2B系统,相当于企业自己的企业网站,会员的产品信息、供应信息、求购信息、企业新闻、企业介绍等都会在自己的企业站展示。

企业币:在系统中的虚拟货币,与人民币的等比例兑换,会员通过系统的支付宝接口和网银在线接口,网系统运营商打钱,然后可以在系统中使用企业比来进行交易。

系统环境和技术介绍

第一节 硬件平台

  • 服务器:hp  CPU  Xeon,2×1GB MEM
  • 设计与开发PC:笔记本电脑
  • 系统:Windows XP(本地开发)、Linux(系统测试及发布)
  • 服务器:Tomcat6.0
  • 数据库:Mysql
  • 编码环境:Myeclipse
  • 数据库:PowerDesignerSQLyog
  • 本系统使用struts ,spring,公司自己的数据库操作框架(保密)开发的。
  • struts 主要负责表现层,在action中实现各模块的业务逻辑。
  • spring负责业务层他提供了很高的Session管理,事务管理以及接口的管理调用。
  • Ajax 页面无刷新,用于html调用级水平页面。主要用于查询和在线留言。
  • EL表达式,通过EL表达式中的国际化模块实现整个系统中的语言翻译,根据不同的用户显示不同版本的语言。
  • urlrewrite,通过urlrewrite可以自定义网站的实际访问路径,由此可以避免浏览器中地址过长条件过多造成的用户体验,并且可以防止实际文件路径的暴露,并且对网站的SEO也有较好的改善。
  • 网页动态编辑:将文件通过javascript动态编辑过后相应的参数存储到数据库中,类似于QQ空间的页面动态编辑效果。
  • 其它技术:数据库备份、jqueryFCK插件、支付宝支付接口、网银在线支付接口、短信接口、邮件接口等。

第二节 服务器平台

第三节 开发工具

第四节 技术构架

系统需求及功能特点

第一节 会员注册与登录

一、 会员注册

会员注册需要通过两种方式验证注册会员的合法性:1.邮箱验证,2.管理员审核。用户在填写好自己的信息资料后,系统发送一封邮件到用户填写的邮箱地址。用户激活邮箱后,还需要管理员审核,只有管理员审核通过的状态下,该用户才为系统中的会员,才可以登陆,注册时用户可以选择系统角色(供应商、采购商、供应商+采购商)。

1、邮箱验证,用户注册后系统向注册时填写的邮箱地址发送激活邮件,用户注册成功后系统提示用户去邮箱接收邮件并激活。

2、管理员审核,用户注册成功后系统向管理员发送审批请求,由管理员审批通过后用户方可使用系统,用于验证会员的个人身份和企业身份,防止平台内出现欺诈。

注册面截图

注册流程图 

二、 会员登录

会员成功登陆到后台的条件有三个:邮箱验证通过;管理员审核通过;用户名和密码正确。只有在保证以上三个条件都成立时,会员才算成功登陆到自己的管理后台发布和管理信息。如果邮箱验证通过,管理员审核不通过,那么该会员只有修改自己的企业资料的权限。

登录页面截图

登录流程图

第二节 会员后台

准确的来说本系统属于一个产品,所有的功能都是B2B的最基本和最核心的功能,即在线交易、供应、求购、资讯、企业站,当然根据不同的运营商和行业可以在此系统上进行二次开发,所以整个系统不涉及到其他的一些复杂的功能。会员后台的功能点主要即企业信息管理、产品信息管理、供应求购管理、资讯管理、企业站管理和交易管理。

会员后台截图

一、 企业管理

1) 企业信息修改:会员在注册时填写的信息并不是该企业的全部信息,会员可以修改自己的企业信息。修改后需要管理员认证,只有认证通过的企业资料才可以在前台展示出来。如果认证未通过,企业必须再次修改,管理员再次认证。管理员验证未通过,要填写未通过原因,以便会员查看,知道什么地方填写的不正确,有针对性的修改。

2) 修改密码:修改会员登录密码

企业管理截图

二、 产品管理

产品模块属于网站中的核心功能,产品管理中的主要功能有发布产品、修改产品、产品管理和产品详细页,会员发布产品后需要由管理员或管理员子账号审核通过后方可在前台显示、供其他会员购买。

产品信息的主要参数:产品名称产品类别产品品牌产品简介上架时间下架时间产品图片、库存量、产地售后服务条款产品描述FCK)等。

产品管理截图

三、 供应管理

供应信息是企业会员发布在前台显示的信息,让浏览者看到这个企业商家有这样的生产能力,也给自己的企业在整个平台中做了推广,增加浏览者对这个企业的了解,供应属于附属功能,主要作用是方便用户之间的商务交流。

供应信息的主要参数:供应标题、供应分类、供应量、供应价格区间、供应产品参考图片、供应详细说明等。

供应管理中的功能主要有:发布供应、管理供应、修改供应、供应详细信息(FCK)。

供应管理截图

四、 求购管理

求购信息是企业会员发布的采购信息,会员可以根据自己的需要发布一个采购信息,显示出采购商需要的求购信息和采购商的联系方式等,给浏览者查看,通过这个渠道寻找供货商或有生产能力的企业会员。

求购信息的主要参数有:采购标题、采购产品分类、采购地点采购量采购详细要求和描述、采购商联系方式等。

求购模块的主要功能有:新增求购、管理求购、修改求购、求购详细页。

求购管理截图

五、 资讯管理

资讯主要功能是由企业会员在前台显示,包括企业动态、行业动态、企

业公告、企业报告等用于宣传形象和经验分享等。

资讯主要参数:资讯标题、资讯图片、资讯详细内容。

资讯模块主要功:新增资讯、资讯管理、修改资讯、资讯详细页。

资讯管理

六、 交易管理

1) 订单管理:

订单是买卖双方交易的桥梁,通过订单把买卖双方紧密联系在一起。其中运营商在整个交易过程中起到担保作用。买家支付的企业币全部支付给运营商,在交易成功后,运营商将交易企业币返回给卖家。

在交易过程中订单的状态会实时发生变化,订单的状态一共有:1.买家取消订单,2.卖家关闭交易,3.等待买家支付,4.买家支付,5.卖家发货,6.买家确定收货,7.买家换货,8.买家退货。

订单管理包括我是买家(当前会员在系统中购买产品下的订单)和我是卖家(当前会员在系统中售出的产品的订单)。

2) 配送地址管理:

配置当前会员的收货地址,用于交易后的发货和物流的基础信息。

3) 企业币管理:

管理当前企业会员在系统中的虚拟币,会员可在此查看自己在系统中的费用使用记录,也可以通过支付宝接口或网银在线接口往系统只“充钱”,也可以将平台中的虚拟的企业币通过支付宝接口或网银在线接口提出到自己的银行账号。企业币管理的主要功能是:费用记录查询、出款、入款。

交易管理

七、 企业站管理

企业站属于一个与系统关联性不大的单个站点(本系统中一个不足之处是企业站不能绑定独立域名),相当于该企业的单独的网站,主要信息是显示当前企业所有的信息,包括企业信息、产品信息、供应信息、求购信息、资讯信息、友情链接等。

1) 友情链接管理:

管理在企业站底部显示的友情链接,主要功能:删除友情链接、添加友情链接、修改友情链接。

2) 编辑企业站:

此处用到比较主流的jquery和网页动态编辑技术,会员可以在此编辑企业站的网站风格模板、logo、背景、横幅、企业占导航等。

企业站管理

管理员后台

管理员后台的功能主要是审核会员信息和网站的基础参数设置。

管理员后台截图

一、 初始设置

1) 网站参数

对网站公用信息进行管理和配置,比如网站名称、网站备案号、网站LOGO、无图时默认的图片、附件上传格式限定、邮件服务器配置、运营商支付宝账号配置、运营商网银在线配置、运营商联系方式和客服配置等等,主要是网站建设时期对网站的基础信息的配置。

2) 产品分类管理

管理此添加当前运营行业内的产品的分类,供会员在发布产品、供应、求购时选择分类,最多可以设置四级分类,例如:通信产品->无线通信->手机->GSM手机。

3) 地区管理

网站建站初期管理员在此设置地区分类,供会员在注册时选择地区、发布产品选择产地等时使用。

4) 子账号管理

设置管理员的子账号,用于减轻管理员自己的工作量。管理员可以设定很多个子账号,一起管理系统,在分配子账号的时候可以通过分配相应的权限来控制子账号的操作功能,如只分配资讯菜单给子账号,则子账号在登录管理员后台时只能看到资讯菜单。

二、 网站管理

1) 广告管理

广告管理中包括:广告位管理和广告管理。

广告位是在前台页面确定的时候,广告位也确定了,然后给该广告位一个特殊的编码,然后管理员通过该广告位发布广告。

广告主要参数:广告标题、广告图片、广告链接、起始时间、结束时间、广告描述等。

2) 系统公告管理

管理员发布系统公告,主要是一些通知等信息,发布的公告会在会员登陆后在会员后台的提示信息中显示。

3) 友情链接管理

添加、修改、删除前台的友情链接。

4) 词语过滤管理

管理员在此添加一些敏感的过滤词汇,然后当会员在此系统中发布信息时候会将一下敏感词汇过滤掉。 

5) 数据库备份/恢复

用于备份数据库信息,适用于windows平台和linux平台,可以在此设置将数据库按时间自动备份,也可以手动备份,以防止一些特出情况写出现的数据丢失等问题,管理员可与选择以前的备份数据直接还原回去。

三、 企业管理

1) 企业注册审核

审核会员注册时的信息,只有审核通过并且邮箱验证通过的会员才可以在系统中登录,注册审核主要是过滤资料虚假的企业。

2) 企业资料认证

当会员通过了邮箱验证和管理员审核后,在后台需要完善企业资料后才可以在系统中发布信息,完善后的资料通过管理员审核通过后才会成为系统只正式的会员,如果资料验证不通过,管理员在审核不通过时会给出审核不通过理由,企业可以根据审核不通过的理由修改信息重新提交。

3) 企业管理

主要功能是查看系统注册会员,并有冻结会员账号、删除会员账号、推荐企业等功能。

4) 企业币管理

企业币管理中的主要功能是包括会员出款申请处理、企业企业币调整。当会员需要将系统中的企业币提取到企业的银行账号时,先发布申请,管理员审核后通过系统中的支付宝接口或网银在线接口将企业币等额换算成人民币汇款到企业账号的支付宝账号或网银在线账号。

四、 产品管理

1) 产品审核

审核通过的产品信息会在前台和会员自己的企业站显示和交易,审核不通过的产品信息给出审核不通过的理由。

2) 产品管理

管理员可以对审核通过的产品进行删除、推荐操作,删除的产品信息将不会在前台和会员企业站显示,推荐的产品会在前台特殊的醒目的栏目中展示,推荐的产品是销售较好的并且评价较好的产品。

五、 供应管理

1) 供应审核

审核通过的供应信息会在前台和会员自己的企业站显示和交易,审核不通过的供应信息给出审核不通过的理由。

2) 供应管理

管理员可以对审核通过的供应进行删除、推荐操作,删除的供应信息将不会在前台和会员企业站显示,推荐的供应会在前台特殊的醒目的栏目中展示,推荐的供应是评价较好的产品供应信息。

六、 求购管理

1) 求购审核

审核通过的求购信息会在前台和会员自己的企业站显示和交易,审核不通过的求购信息给出审核不通过的理由,会员根据不通过理由把信息修改后重新发布。

2) 求购管理

管理员可以对审核通过的求购进行删除、推荐操作,删除的求购信息将不会在前台和会员企业站显示,推荐的求购会在前台特殊的醒目的栏目中展示,推荐的求购是求购比较迫切的求购信息。

七、 资讯管理

1) 发布资讯

管理员也可以发布资讯,在前台单独显示,管理员发布的资讯不需要审核。

2) 资讯审核

审核通过的资讯信息会在前台和会员自己的企业站显示和交易,审核不通过的资讯信息给出审核不通过的理由,会员根据不通过理由把信息修改后重新发布。

3) 资讯管理

管理员可以对审核通过的资讯进行删除、推荐操作,删除的资讯信息将不会在前台和会员企业站显示,推荐的资讯会在前台特殊的醒目的栏目中展示,推荐的资讯是属于比较有价值的行业资讯或经验分享等。

八、 交易管理

交易管理中主要功能点是:通知卖家发货和通、通知买家付款、处理用户投诉功能,由于系统属于B2B,买卖双方交易量会较大,交易基本上是买卖双方会员经过平台了解和线下了解自己完成,由运营商在中间做担保人,所以管理员的干预不多。

系统前台预览

前台页面预览截图

 

 实现方法和技术

第一节 采用JSP技术开发B2B系统的实现原理和优越性

1) JSP的的主要作用,就是做动态网站,相对于html,jsp更容易操作于动态显示页面.

2) 将内容的生成和显示进行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。 在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。

3) 强调可重用的组件 绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执 行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

4) 采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。 标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。 JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。 由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。 作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。

第二节 特殊的数据库访问原理和流程

1) 由于B2B的系统将来的数据量会比较的大,而且涉及到在线交易的环节,所以本系统没有使用开源的hibernate,因为第一hibernate虽然实现了面向对象的数据库模型操作,但是对于一个系统数据量操作巨大的系统来说其数据处理速度上受到影响,更适合中小型企业系统的应用;其二处于安全要求,基本上的现金交易系统中不会使用开源的框,所以在此使用了公司的数据库操作框架。

2) 整个程序的所有SQL语句都是在一个配置文件中包含,每条SQL语句都对应一个SQL名。当页面提交数据的同时,会相应的提交一个trade_type_code值(一个特殊的节点值),struts中的action接收接受这个值,调用相应的方法读取bpm表中与trade_type_code值相对应的记录,此记录中记录了当前操作数据的类的路径和方法,调用相应的方法,buffer缓冲接收数据,再调用方法读取SQL配置文件读取相应的SQL对表进行增、删、改、查等操作,由于属于公司的框架,在这里只做简单的介绍。

第三节 MD5加密方式

MD5的全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输完整一致。在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。这三个算法的描述和c语言源代码在Internet RFC 1321中有详细的描述(http://www.ietf.org/rfc/rfc1321.txt),这是一份最权威的文档,由Ronald L. Rivest在1992年8月向IETF(互联网工程任务组)提交。

MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:

MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461

这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

MD5技术主要在注册时的密码加密和登录时候的密码验证,通过这种加密方式可以更加确保系统中的安全性,如外在系统中使用现金交易的时候同样使用MD5加密,在支付宝接口和网银在线接口中交易跳转到第三方(支付宝、网银在线)的时候会将交易信息使用MD5加密,从第三方平台跳转回来的时候会将返回信息通过MD5加密后与前面保存的MD5信息对比,相同时才会被确认是合法操作。

 javascript和jquery的使用

为了使网页能够具有交互性,能够包含更多活跃的元素,就有必要在网页中嵌入其它的技术。如:Javascript、VBScript、Document Object Model(文件目标模块)、Layers和 Cascading Style Sheets(CSS),CSS和Lyaer(图层)技术已作过专题介绍,因此在这里主要讲Javascript。那么Javascript是什么东东?Javascript就是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。 Javascript是由 Netscape公司开发的一种脚本语言(scripting language),或者称为描述语言。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。 运行用Javascript编写的程序需要能支持Javascript语言的浏览器。Netscape公司 Navigator 3.0以上版本的浏览器都能支持 Javascript程序,微软公司 Internet Explorer 3.0以上版本的浏览器基本上支持Javascript。微软公司还有自己开发的Javascript,称为JScript。 Javascript和Jscript基本上是相同的,只是在一些细节上有出入。 Javascript短小精悍, 又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。 同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。

直接加入HTML文档,这是最常用的方法,大部分含有Javascript的网页都采用这种方法,如:

<script language="Javascript">

<!—

document.writeln("这是Javascript!采用直接插入的方法!");

//-Javascript结束-->

</script>

在这个例子中,我们可看到一个新的标签: <script>……</script>,而<script language="Javascript”> 用来告诉浏览器这是用Javascript编写的程序,需要调动相应的解释程序进行解释。HTML的注释标签<!--和-->:用来去掉浏览器所不能识别的Javascript源代码的,这对不支持 Javascript 语言的浏览器来说是很有用的。这个项目中很多地方的判断都用到了javascript。比如登陆页面,当用户登陆名、密码验证码、输入为空时,用到JavaScript判断,使它们不能为空等等。

如外系统中大量的使用了一个优秀的javascript的框架,即jquery,随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype、YUI、 jQuery、mootools、Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应 用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。

jQuery是继prototype之后的又一个优秀的Javascript框架。它是由 John Resig 于 2006 年初创建的,它有助于简化 JavaScript™ 以及Ajax 编程。有人使用这样的一比喻来比较prototype和jQuery:prototype就像Java,而jQuery就像ruby. 它是一个简洁快速灵活的JavaScript框架,它能让你在你的网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互。

由于jquery的简单易学易用等优点,现在的很多程序开发上都又运用,当然这个系统中也是大量的运用了jquery,不但解决了一些浏览器不兼容问题,而且和以用很少的代码实现需要很多javascript来实现的功能。

 urlrewrite的使用

urlrewrite顾名思义,就是对URL进行重写,用户得到的全部都是经过处理后的URL地址,这样做我觉得好处有三:

一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多

二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL

三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息

项目部分截图和核心代码

第一节 截图

  1. 注册页面

 

  1. 注册流程图

 

  1. 登录页面

 

  1. 登录流程图

 

  1. 会员后台截图

 

  1. 企业管理

 

  1. 产品管理

 

 

  1. 供应管理

 

 

  1. 求购管理

 

 

  1. 资讯管理

 

 

  1. 交易管理

 

  1. 企业站管理

 

 

  1. 管理员页面截图

 

 

  1. 前台页面预览

首页

 

产品页

 

供应页

 

企业页

 

企业站

 

第二节 部分核心代码

  1. web.xml配置(部分)

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>

org.apache.struts.action.ActionServlet

</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>3</param-value>

</init-param>

<init-param>

<param-name>detail</param-name>

<param-value>3</param-value>

</init-param>

<load-on-startup>0</load-on-startup>

</servlet>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

<welcome-file>index.html</welcome-file>

</welcome-file-list>

<error-page>

<error-code>404</error-code>

<location>/dialog/ErrorPage404.jsp</location>

</error-page>

<error-page>

<error-code>501</error-code>

<location>/dialog/ErrorPage404.jsp</location>

</error-page>

<error-page>

<error-code>400</error-code>

<location>/dialog/ErrorPage404.jsp</location>

</error-page>

<servlet>

<servlet-name>chat</servlet-name>

<servlet-class>com.im.ChatServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>chat</servlet-name>

<url-pattern>/chat.srv</url-pattern>

</servlet-mapping>

<servlet>

<servlet-name>checkImage</servlet-name>

<servlet-class>com.saas.biz.commen.CheckImage</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

<servlet>

<servlet-name>DisplayChart</servlet-name>

<servlet-class>

org.jfree.chart.servlet.DisplayChart

</servlet-class>

</servlet>

.

.

.

.

.

<servlet-mapping>

<servlet-name>checkImage</servlet-name>

<url-pattern>/checkImage</url-pattern>

</servlet-mapping>

<servlet>

<servlet-name>UpLoadUserHeadImage</servlet-name>

<servlet-class>com.servlet.UpLoadUserHeadImage</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>UpLoadUserHeadImage</servlet-name>

<url-pattern>/UpLoadUserHeadImage.do</url-pattern>

</servlet-mapping>

</web-app>

2、struts配置文件struts-config.xml(部分)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

<data-sources />

<form-beans >

<form-bean name="staffLoginForm" type="com.saas.struts.form.StaffLoginForm" />

<form-bean name="fileform" type="com.saas.struts.form.FileForm" />

<form-bean name="loginForm" type="com.saas.struts.form.LoginForm"/>

<form-bean name="registerForm" type="com.saas.struts.form.RegisterForm"/>

</form-beans>

<action-mappings >

<action path="/doShoppingCartTradeReg" name="staffLoginForm"

   type="com.saas.struts.action.TradeRegAction">

   <forward name="sessionEnded" path="/index.jsp" />

   <forward name="succeed" path="/supply/order/shopping_carts.jsp" />

   <forward name="fail" path="/dialog/fail.jsp" />

</action>

<action path="/doCompanyTradeReg" name="staffLoginForm"

   type="com.saas.struts.action.TradeRegAction">

   <forward name="sessionEnded" path="/index.jsp" />

   <forward name="succeed" path="/dialog/noAlertSuccess.jsp" />

   <forward name="fail" path="/dialog/fail.jsp" />

</action>

<action path="/doAdminTradeReg" name="staffLoginForm"

   type="com.saas.struts.action.TradeRegAction">

   <forward name="sessionEnded" path="/index.jsp" />

   <forward name="succeed" path="/dialog/adminRegSuccess.jsp" />

   <forward name="fail" path="/dialog/fail.jsp" />

</action>

<action name="loginForm"

  path="/doCartTradeReg"

  type="com.saas.struts.action.TradeRegAction" >

  <forward name="succeed" path="/supply/order/shopping_carts.jsp" />

  <forward name="fail" path="/supply/order/b2c_content.jsp" />

</action>

.

.

.

.

.

<action name="loginForm"

  path="/stafflogin"

  type="com.saas.struts.action.AutoLoginAction" >

  <forward name="main" path="/dialog/addOk.jsp" />

  <forward name="fail" path="/dialog/loginInfo.jsp" />

</action>

<action path="/queryTrade" type="com.saas.struts.action.QueryTradeAction" />

</action-mappings>

<message-resources parameter="com.saas.struts.ApplicationResources" />

</struts-config>

3.spring配置文件applicationContext.xml(部分)

<?xml version="1.0" encoding="UTF-8"?>

<beans>

<bean id="tradeTarget" class="com.saas.sys.bpm.TradeReg" />

<bean id="bufferTarget" class="com.saas.sys.buffer.Buffers" />

<bean id="LogAdvisor" class="com.saas.sys.log.LogAdvisor" />

<bean id="ExceptionAdvisor" class="com.saas.sys.exp.ExceptionAdvisor" />

<bean id="trade" class="org.springframework.aop.framework.ProxyFactoryBean">

    <property name="proxyInterfaces">

        <value>com.saas.sys.bpm.TradeRegIntf</value>

    </property>

    <property name="target">

        <ref local="tradeTarget"/>

    </property>

    <property name="interceptorNames">

        <list>

            <value>LogAdvisor</value>

            <value>ExceptionAdvisor</value>

        </list>

    </property>    

</bean>

.

.

.

.

.

<bean id="buffer" class="org.springframework.aop.framework.ProxyFactoryBean">

    <property name="proxyInterfaces">

        <value>com.saas.sys.buffer.BufferIntf</value>

    </property>

    <property name="target">

       <ref local="bufferTarget"/>

</property>

</bean>  

</beans>

4.数据库连接配置以及相关配置的文件

#数据库配置

MainDB=mysqlbase

#驱动

driver=com.mysql.jdbc.Driver

#数据库IP地址

mysqlbase.host=192.168.0.110

#数据库访问端口

mysqlbase.port=3306

#数据库名

mysqlbase.sid=b2b

#数据库用户

mysqlbase.user=root

#用户密码

mysqlbase.password=111111

#是否启用连接池0:不启用;1:启用

database.pool=1

#连接池字串

pool.string=jdbc/mysql

#是否打印日志0:不打印;1:打印

logger=0

#是否启用定时器0:不启用;1:启用

项目总结

经过整个项目的开发我想做一下总结:本系统功能主要是交易管理,信息管理,并不复杂,但本系统的可伸缩性较大,可以当做是一个产品原型,在此核心原型基础山可以附加其他的各种功能从而满足各种行业B2B系统的特殊需要。

如外通过这个项目让我对程序员行业和编程工作也有了进一步的了解,编程技术是一门学无止境的技术,在这一年的工作学习和项目设计中只是一个程序员的起步,在这次的毕业设计中,让我深深地体会到进行软件开发并不是一件简单的事情,它需要设计者具有全面的专业知识、慎密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。所以不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手,最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。我自认为这个项目还是有很多不足之处,但是在设计过程中所学到的东西是这次设计的最大收获和财富,使我终身受益。

参考文献

[1] 作者:郭宁等 书名:软件工程使用教程 人民邮电出版社2006年3月第1版

[2] 精通Spring企业级应用开发详解 编著:陈兄华  出版社:机械工业出版社                 出版日期:2007-05

[4] 作者: 吴斌 赵有珍SQL Server应用与提高   科学出版社     第三版  

[5 作者:王珊 陈红数据库系统原理教程   清华大学出版社 第二版   

[6] 作者:孙卫琴 精通Structs基于MVC的JAVAWEB的应用与开发电子工业出版社

[7] 作者:JSP应用开发详解 飞思科技产品研发中心编著电子工业出版 2006年1月

[8] 作者:(美)lazaro lssi cohen  电子工业出版社 web开发人员参考大全完整的htmlcss与JavaScript工具书 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!