2022年商城系统开发文档参照 .pdf
《2022年商城系统开发文档参照 .pdf》由会员分享,可在线阅读,更多相关《2022年商城系统开发文档参照 .pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、商城系统开发文档名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 30 页 -商城系统开发文档2/30目录目录.2 第一章系统简介 .3 1.1背景 .3 1.2 系统建设的目标.3 第二章技术分析 .4 2.1 系统分析.4 2.1.1 系统结构.4 2.1.1 组件.4 2.1.2 用户角色.6 2.2 关键技术.6 2.2.1 编写规范.6 2.2.2 URL重写.10 2.2.3 Velocity模板引擎.12 2.2.4 Spring配置.17 2.3 开发指南.20 2.3.1 入口.20 2.3.2 目录结构.20 2.3.3 web.xml解析.21 第三章开发实践
2、 .24 3.1 商品删除.24 3.1.1 后台代码流程操作.24 3.1.2 后台代码分析.26 3.1.3 前台代码流程操作.28 3.1.4 前台代码分析.29 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 30 页 -商城系统开发文档3/30第一章系统简介1.1 背景电子商务就是指以电子方式在网上完成产品或服务的一种销售,或购买和电子支付等业务交易的过程叫电子商务。电子商务的通常缩写为EC(Electronic Commerce),是一种全新的商务活动模式,它充分利用互联网的易用性、广域性和互通性,实现了快速可靠的网络化商务信息交流和业务交易。电子商务根据各种参与交易
3、的方式不同可以分为企业对企业和企业对公司,而电子商务网站可以根据功能设置的不同可以分为电子市场(E-marketplace)网站、电子销售(E-distributor)网站、电子购买(E-procurement)网站。其中,电子商务网站的设计就是在中立的立场上的,不但要考虑到购买方的不同和需求,也要考虑到销售方的利益。电子商务网站的主要服务对象是销售商,而电子购买网站的主要服务对象是买主,其目的说白了就是通过在网站上聚集大量的买主,在通过大宗的购买降低价格。有利于加速企业信息流通,为保证企业稳定发展奠定基础。1.2 建设目标构建传统电子商务的基础上实现多用户电子商务平台,从管理到店铺,从店铺到
4、产品的多维度管理模式,提炼出更可靠的盈利模式,主要为了满足顾客的需求,为企业(公司)赢得利润;与其他组织形成电子伙伴关系,向顾客提供更好的服务是一个商务网站的目标;在系统中能够使企业实现全国化与全球化经营战略;通过网络建立战略性的资源外包联盟,原来复杂的工作现在只需按几下鼠标就能在国际互联网上逐一地拓展出几百万个潜在的客户。因此,系统是实现改善经营管理、开拓市场、提高企业竞争力等。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 30 页 -商城系统开发文档4/30第二章技术分析2.1 系统分析2.1.1 系统结构2.1.1 组件我们的系统目前主要分为多组件,其中组件主要有:组件名
5、称描述是否可用(可用、不可用)Base 提供系统最基本能力支持,数据库表的持久化对象,各个表基本操作的接口以及文件上传功能。Core 整个系统的核心组件,在此组件当中包含了缓存、安全、使用Spring 通过orm 组件来代理 hibernate做数据库操作、构造统一名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 30 页 -商城系统开发文档5/30的 DAO、QueryService等等。Buyer 针对买家管理实现用户中心、消息、收藏夹、购买订单等业务。Admin 基于管理员的能力对系统进行管理,此组件主要包含管理员所能操作的业务。Login-plug 系统中可使用其他登录方式
6、,如 QQ、新浪微博等,都在此组件进行接入。Lucene 提供快速对系统、店铺、产品进行全文索引功能。Pay 系统提供多种订单支持方式,其中有支付宝、网银在线、Paypal、财付通。Seller 卖家业务管理统一在这组件内实现,主要有:宝贝管理、订单管理。Timer 实现系统中的一些定时任务,统计任务等后台运行机制。Uc 支持 ucenter 整合,实现用户的一站式注册、登录、退出以及社区其他数据的交互。View 实现浏览查看功能,主要名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 30 页 -商城系统开发文档6/30针对查询业务独立封装出来组件便于以后优化2.1.2 用户角色目
7、前在整个系统中用户大体分为四种角色:管理员、买家、卖家、匿名用户。匿名用户买家卖家管理员2.2 关键技术2.2.1 编写规范命名规则1)包:命名应该都是名词或名词性词组,全部小写,单词之间用.分开;一般使用本公司组织网站域名的逆序后跟具体的软件内部模块名包命名举例:package com.sun.java;package com.mycompany.db;2)类:名词或名词性词组,每个单词首字母大写;一般不使用缩写,除非其缩写更通用和便于理解,如 HTML;当要区别接口和实现类的时候,可以在类的后面加上 Impl,例如:interface Container与 class ContainerI
8、mpl;Exception 类用Exception做为类命名的结尾,例如:DataNotFoundException;抽象类用 Abstract名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 30 页 -商城系统开发文档7/30做为类命名的开头,例如:AbstractBeanDefinition,AbstractBeanFactory;Test类最好能用 Test做为类命名的结尾。例如:ContainerTest 类命名举例:class Person;class SpringRain 3)接口:同类的命名规则接口命名举例:interface Runner;4)方法:动词或动词性词
9、组,首字母小写,第二个及以后的单词首字母大写;方法命名举例:run();displayInformation();5)变量:名词或名词性词组,首字母小写,第二个及以后的单词首字母大写;不提倡使用下画线 _和美元符$作为变量开头;单词间可以使用下画线分隔;变量名不宜过长但也应有意义,除非是临时使用(例如只涉及几行代码)后即丢弃的情况,不建议使用单个字母做变量名,常用的临时使用的变量名包括表示整数的 i,j,k,m,n 和表示字母的 c 以及表示异常对象的e等。变量命名举例:int age;int student_age;String studentName;Exception e;6)常量:每一
10、个单词都要大写,单词之间用_分开。常量命名举例:final static int MIN_WIDTH=4 7)文件的命名:java 源程序文件以.java 结尾,编译后的文件以.class结尾。例如:Container.java,Container.class。文件组织1.一个文件由被空行分割而成的段落以及标识每个段落的可选注释共同组成。超过 2000 行的程序难以阅读,所以一个java 程序文件中的代码行数不能超过2000行,除非有特殊原因。每个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或
11、接口。Java源文件还遵循以下规则,这个规则规定了java程序段落的顺序:-开头注释-包和引入语句-类和接口声明2.在一个 Java类中,各部分顺序:1)属性声明2)构造方法声明3)static语句4)普通方法声明5)main 方法声明6)内部类的声明总结:一般一个完整的java文件内容如下:1)包的定义2)impot 类(输入包的顺序、避免使用*)输入包应该按照java.*.*,javax.*.*,org.*.*,com.*.*的顺序 import;在 import 的时候不应该使用*(例如:java.util.*)3)类或接口的定义4)静态变量定义,按public,protected,pr
12、ivate 顺序5)实例变量定义,按public,protected,private 顺序6)构造方法名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 30 页 -商城系统开发文档8/307)方法定义顺序按照public 方法(类自己的方法),实现接口的方法,重载的 public方法,受保护方法,包作用域方法和私有方法。注意:一般类中每个方法的代码行数不要超过100 行。分隔和缩进1.使用空行在下述情况下使用单行的空白行来分隔:1)在方法之间2)在方法内部代码的逻辑段落小节之间3)在方法中声明局部变量之后,具体的Java语句之前4)在注释行之前5)在同一个源文件中定义的多个类/接口
13、之间使用双行的空白行来分隔2.使用空格符除正常的成分之间以空格符分隔名(如数据类型和变量名之间),在下述情况下也应使用一个空格符来分隔:1)运算符和运算符之间,如:c=a+b;2)在参数列表中的逗号后面,如:void m1(int year,int month)3)在 if,for,while 待语句之后如:if(a b)3.使用换行符不建议在一行中写多条语句,一条语句的长度一般超过了80 个字符时,应该换行;当一行表达式不能在一行内显示,请按下列顺序要求拆行:1)在(或=符号后拆行2)在,拆行3)在一个操作符后拆行4)把并发的拆行放到同一级别上的缩进5)如果在拆行中再次拆分的时候遇到(,应该
14、新拆出来的行放在更远的一个缩进级别上4.使用小括号可以使用小括号来强行规定运算顺序5.使用花括号开始位置可以位于当前内容的尾部,也可以另起一行6.使用缩进在下述情况下应用缩进1)类中的成分2)方法体或语句块中的成分3)换行时的非起始行缩减量一般为在上一级成分的基础上再缩进四个空格,而 Eclipse 默认格式化是采用 1 个制表符的,可以采用下面的方式更改一下:Window Preferences,Java Code Style Formatter 点右边的Edit,按钮,切换到第一个选项卡 Indentation,在 General settings 组将 Tab policy 由 Tabl
15、e only 改为 Space only,同时把Indentation size 和 Tab size 改为4,最后把最上面的Profile name 取一个名字,名字任意,再点 OK 按钮就可以名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 30 页 -商城系统开发文档9/30了。以后按Tab 键或者Ctrl+Shift+F 会自动采用4 个空格作为一个层次的缩进。在 eclipse开发工具中,把代码写好之后,可以用快捷键:CTRL+SHIFT+F 来自动格式化代码。声明语句1.变量声明:每行声明一个变量,并加注释。例如:int count;/number of contain
16、ers int count,size;/AVOID THIS!数组声明应该采用前缀方式。例如:int table;String args;2.类或接口声明1)和声明语句在同一行。2)如果不能在同一行显示,就将extends或implements进行拆行,并放在两个缩进级别后。3)符号应该独自占一行。例如:public class ChiefExecutiveOfficer extends Manager implements Person .3.方法声明 和声明语句在同一行。符号应该独自占一行。总结:每行声明一个变量,并尽量在声明变量的同时对其进行初始化,除非其初值尚不确定。局部变量应在其所在
17、的方法或语句块的开头集中声明,而不应随用随声明。注释Java有两种注释方法。/*This is a comment*/或/This is a comment 第一种应该被用到写JavaDoc上,并且都用/*开头。第二种适合于在做部分代码的注释,但只适合做非常短内容的注释。另外,对于HTML、XML、CSS、JavaScript 我要遵守的编码规范如下:1)HTML、XML 由于层次缩进比较多,建议采用两个空格作为一层缩进;2)CSS 和 JavaScript 为了与 HTML 配合,也采用两个空格作为一层缩进;3)HTML、XML 的标签名、属性称全部使用小写字母,HTML 尽量能符合XHTM
18、L 的规范,避免使用XHTML 不推荐使用的标签,比如:font、applet 等等;4)HTML 的属性值采用双引号界定;名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 30 页 -商城系统开发文档10/305)JavaScript 在尽量使用标准的语法、对象等,变量声明能加上var.字符串常量统一采用单引号界定2.2.2 URL 重写简介UrlRewriteFilter 是一个用于改写URL 的 Web 过滤器,类似于Apache 的mod_rewrite。适用于任何 Web 应用服务器(如 Resin,Orion,Tomcat 等)。其典型应用就把动态URL 静态化,便于搜
19、索引擎爬虫抓取你的动态网页。基本原理JSP 页面地址-服务器 Filter过滤 -调用 urlrewrite.xml映射规则 -服务器响应-转换成伪地址安装在其主页下载该包文件,把其jar 包放在 lib 目录下,在 web.xml 中添加下面内容Xml 代码:UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter UrlRewriteFilter *.htm 参数介绍web.xml 下的 filter 参数设置介绍Xml 代码:UrlRewriteFilter org.tuckey.web.filters.url
20、rewrite.UrlRewriteFilter 名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 30 页 -商城系统开发文档11/30 confReloadCheckInterval 60 confPath /WEB-INF/urlrewrite.xml logLevel DEBUG statusPath /status statusEnabled true statusEnabledOnHosts localhost,dev.*,* modRewriteConfText RewriteRule/(/+)/?(.*)/u/$1/$2 R RewriteRule/(uge)/(
21、/+)$/$1/$2/R UrlRewriteFilter *.htm 名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 30 页 -商城系统开发文档12/30 urlrewrite.xml 配置文件参数Xml 代码:id参数文章管理/article_(0-9+).htm$/article.htm?param=$1 mark参数文章管理/article_(A-Za-z+).htm$/article.htm?param=$1 2.2.3 Velocity 模板引擎简介Velocity 是一个基于 java 的模板引擎(template engine),它允许任何人仅仅简单的使用模板
22、语言(template language)来引用由 java 代码定义的对象。作为一个比较完善的模板引擎,Velocity 的功能是比较强大的,但强大的同时也增加了应用复杂性。基本语法1、#用来标识 Velocity 的脚本语句,包括#set、#if、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;如:#if($info.imgs)#else 名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 30 页 -商城系统开发文档13/30#end 2、$用来标识一个对象(或理解为变量);如:$i、$msg、$TagUtil.option
23、s(.)等。3、用来明确标识 Velocity 变量;比如在页面中,页面中有一个$someonename,此时,Velocity 将把 someonename作为变量名,若我们程序是想在 someone这个变量的后面紧接着显示name字符,则上面的标签应该改成$someonename。4、!用来强制把不存在的变量显示为空白。如当页面中包含$msg,如果 msg对象有值,将显示msg 的值,如果不存在msg对象同,则在页面中将显示$msg 字符。这是我们不希望的,为了把不存在的变量或变量值为 null 的对象显示为空白,则只需要在变量名前加一个“!”号即可。如:$!msg 我们提供了五条基本的模
24、板脚本语句,基本上就能满足所有应用模板的要求。这四条模板语句很简单,可以直接由界面设计人员来添加。在当前很多EasyJWeb的应用实践中,我们看到,所有界面模板中归纳起来只有下面四种简单模板脚本语句即可实现:A)、$!obj 直接返回对象结果。如:在 html 标签中显示 java 对象 msg的值。$!msg 在 html 标 签 中 显 示 经 过HtmlUtil对 象 处 理 过 后 的msg 对 象 的 值$!HtmlUtil.doSomething($!msg)$!HtmlUtil.doSomething($!msg)B)、#if($!obj)#else#end 判断语句如:在 Ea
25、syJWeb各种开源应用中,我们经常看到的用于弹出提示信息msg的例子。#if($msg)alert($!msg);#end 上面的脚本表示当对象msg对象存在时,输出 等后面的内容。C)、#foreach($info in$list)$info.someList#end循环读取集合 list 中的对象,并作相应的处理。如:EasyJF开源论坛系统中论(0.3)坛首页显示热门主题的html 界面模板脚本:#foreach($info in$hotList1)名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 30 页 -商城系统开发文档14/30$!info.title#end 上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年商城系统开发文档参照 2022 商城 系统 开发 文档 参照
限制150内