项目实战之淘淘商城
项目实战之淘淘商城
李阿昀
昀,三尺微命,一介书生。只当穷且益坚,不坠青云之志!
展开
-
淘淘商城第119讲——使用maven的tomcat插件来部署使用到ActiveMQ的工程时,发现报了一个方法未找到的错误
问题描述今儿个,当我使用maven的tomcat插件来热部署一个用到ActiveMQ消息中间件的服务层工程时(例如taotao-search),遇到了一个错误,说是方法未找到,这个我是从Eclipse控制台打印出的错误信息中看出来的。[INFO] ------------------------------------------------------------------------[INFO] Reactor Summary for taotao-search 0.0.1-SNAPSHOT:原创 2020-11-24 11:34:32 · 406 阅读 · 0 评论 -
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
首先,大家需要先在虚拟机(例如taotao)上安装一个Tomcat服务器,如果有不会的童鞋,那么可以参考我写的《Linux入门第十三讲——在Linux CentOS 7.6系统上安装Tomcat 8.5.38》这篇文章来进行安装,应该是非常容易的。由于每一个工程都应该部署在对应的一个Tomcat服务器上,所以Tomcat服务器的名字最好有意义。我们根据下表来给Tomcat服务器起名,例如我们现在是要部署taotao-manager服务层工程,那么我们的Tomcat服务器的名字便可以叫做tomcat9000原创 2020-11-23 12:10:44 · 323 阅读 · 0 评论 -
淘淘商城第118讲——系统部署演示
部署分析首先说下淘淘商城这个项目在真实环境中部署的话需要多少台服务器。如果你写完淘淘商城这个项目,那么你会发现该项目一共有12个工程,它们分别是:本着高可用的原则,每个工程至少要对应有两台服务器,这样12个工程至少就需要24台服务器了。不要忘了,淘淘商城这个项目在真实环境中部署的话,还要开启好多的服务,如下表所示。这样算下来的话,服务所需的服务器数量至少是24台,在加上12个工程至少就需要24台服务器,这样,总共需要的服务器总数至少是48台。但我们都知道,一般的小公司是绝不可能弄这么多服务器的原创 2020-11-23 08:48:37 · 516 阅读 · 0 评论 -
淘淘商城第116讲——使用Mycat实现读写分离
什么是读写分离呢?在咱们的项目中,执行查询的命令要比执行修改、删除这些命令要多的多,所以为了保证数据库的读写性能和数据库的完整性,我们就需要实现数据库的读写分离了。通俗的讲就是读取的命令在一个数据库中,而写入的命令在另外一个数据库中,而且这两个数据库中的数据必须同步。数据库读写分离的解决方案解决方案一MySQL提供了一个解决方案,即使用binlog(二进制日志文件)进行数据库同步,只不过这种解决方案需要配置MySQL。解决方案二我们可以在代码中实现读写分离,即可以使用aop实现一个切面,然后原创 2020-11-22 10:17:26 · 338 阅读 · 0 评论 -
淘淘商城第115讲——使用Mycat实现分库分表
写在前面上一讲中,咱们新建了一台虚拟机,而且也为其设置了一个固定IP地址,例如192.168.81.137,如下图所示。而且在这台虚拟机中我安装好了如下一些东东。如果这时我们想远程访问以上这台虚拟机中安装好的MySQL数据库,那么该怎么办呢?可以在本地使用MySQL的图形化开发工具(例如Navicat for MySQL)来访问服务器上的MySQL数据库。如果你不知道怎么做,那也没有关系,具体步骤可以参考我写的《Linux入门第十五讲——远程访问Linux CentOS 7.6系统上安装的MySQ原创 2020-11-21 11:42:36 · 394 阅读 · 0 评论 -
淘淘商城第114讲——快速入门Mycat
简单介绍一下Mycat什么是Mycat?简单的说,Mycat就是:Mycat的目标是低成本的将现有的单机数据库和应用平滑迁移到"云"端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。Mycat的关键特性Mycat的架构Mycat的架构如下图所示。从上图中我们可以知道,Mycat使用MySQL的通讯协议模拟成了一个MySQL服务器,并建立了一套完整的Schema(数据库)、Table(数据表)、User(用户)的逻辑模型,并将这套逻辑模型映射到后端的存储节点DataNode(MySQ原创 2020-11-20 19:11:35 · 356 阅读 · 0 评论 -
淘淘商城第112讲——展示订单确认页面以及用户身份认证
我们上一讲一起搭建了订单系统的服务层工程和表现层工程。这一讲,我们就要实现订单确认页面展示这个功能了。展示订单确认页面在淘淘商城中,用户未登录即可添加商品到购物车,如下图所示。这儿我们是参考的之前的京东,之前的京东在用户没有登录的情况下他就可以使用购物车了,但是当用户要真正去结算的时候,一定是要求他登录的,也就是说由购物车商品列表展示页面直接跳转到用户登录页面要求他去登录。在淘淘商城中,我们也是这样做的,当用户点击购物车商品列表展示页面中的去结算之后,如果当前用户还没登录,那么必须要求他先登录。也原创 2020-11-19 10:50:19 · 1493 阅读 · 0 评论 -
淘淘商城第102讲——js跨域测试
什么是跨域?跨域是浏览器同源策略而产生的,在不同协议,不同域名,不同端口下(以上任意一个不同都算是跨域)的客服端和服务端之间是无法互相访问的。举例来说,注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。js跨域测试js不可以跨域请求json数据首先,我得说明一点,就是js是不可以跨域请求json数据的。 关于这一点,下面我会举一个案例来进行说明。咱们先在taotao-sso-web服务层工程的webapp/js目录下放置一个sso_json.json文件,其内容如下图原创 2020-11-16 23:25:31 · 298 阅读 · 0 评论 -
淘淘商城第86讲——实现商品详情页面静态化方案时,你没遇到过java.lang.IllegalArgumentException或者java.lang.NullPointerException这种异常
问题描述今儿个,我在实现商品详情页面静态化方案时,遇到了一个蛮奇怪的异常,为什么说蛮奇怪呢?因为它只在第一次测试的时候出现过,后面就再也没出现过了。我先描述一下这个异常是怎么出现的,我在淘淘商城后台管理系统中添加了一个商品,并且也添加成功了,然后立马到静态文件目录下查看生成的静态文件,发现啥都没有,如下图所示,不是说好了能生成静态页面吗?这尼玛是要闹哪一出啊????!!!而且,Eclipse控制台还给我打印出了一个java.lang.IllegalArgumentException异常,如下图所示。原创 2020-11-12 20:59:40 · 449 阅读 · 0 评论 -
淘淘商城第70讲——安装好ActiveMQ 5.16.0,并启动成功之后,竟然无法访问!!!
问题描述今天笔者在安装Apache ActiveMQ 5.16.0时,遇到了一个无法访问的问题。是这样的,ActiveMQ 5.16.0我也安装好了,而且也启动成功了,但是在访问ActiveMQ的后台管理页面时,竟然无法访问网页,如下图所示。关键是我也关闭了防火墙啊!不知道为什么会无法访问ActiveMQ的后台管理页面。解决方案修改apache-activemq-5.16.0/conf目录下的jetty.xml配置文件,将127.0.0.1修改为0.0.0.0即可。此时,重新启动ActiveM原创 2020-11-06 15:12:49 · 908 阅读 · 0 评论 -
淘淘商城第66讲——将搜索功能切换到集群版Solr时,我就不信你没遇到过这个异常:org.apache.solr.client.solrj.SolrServerException ···
问题描述今天我在将搜索功能切换到集群版Solr,准备向索引库中导入商品数据时,碰到了一个异常。真的是一天天的都会碰到异常,太闹心了????我进入后台管理系统首页,然后点击一键导入商品数据到索引库按钮准备向索引库中导入商品数据时,我满心以为是能够成功的,即使是要花费一点时间,花就花呗!老子有的是时间。结果是万万没想到啊!老子等了那么久,结果你就给我看了这么一个异常。而且,Eclipse控制台也打印出了相应的异常具体信息,我复制出来了,如下所示。org.apache.solr.client.solrj原创 2020-10-30 19:12:32 · 597 阅读 · 0 评论 -
淘淘商城第64讲——使用SolrJ管理Solr集群时,给我报了这样一个异常:org.apache.solr.common.SolrException ···
问题描述今天我使用SolrJ来管理Solr集群时,就只是想做一个简单的测试,即向索引库中添加一个文档,却给我报了一个异常,搞得我心情真的非常沮丧!怎样子向索引库中添加一个文档呢?由于我所使用的是版本比较高的Solr(版本是Apache Solr 8.4.0),所以我是像下面这样子编写代码来向索引库中添加一个文档的。package com.taotao.search.test;import java.util.ArrayList;import java.util.List;import java原创 2020-10-30 15:43:34 · 770 阅读 · 0 评论 -
淘淘商城第62讲——不会吧!不会吧!在搭建Solr集群时,你不会还没碰到过Tomcat服务器的JVM内存太小引发的这些问题吧?
问题描述作为一个小白,如果你按照我的《淘淘商城第59讲——搭建Solr集群,注意是Solr 7.1.0这个版本的哟!》这篇文章来搭建Solr集群,那么想必你会遇到一些各种各样的问题。真的,作为一个小白,要是碰到这些问题,如果你不想死,我只能说你头铁!各位知道吗?我本人遇到这些问题,是真的想跳楼啊!我真TM怀疑还有必要继续进行下去吗!但是抱怨归抱怨啊,回到主题,那么我碰到了哪些问题呢?而且我到底是怎么解决的呢?所碰到的第一个问题当我们搭建好Solr集群之后,然后访问任何一个Solr节点,接着我就想向索引原创 2020-10-29 15:28:03 · 340 阅读 · 2 评论 -
淘淘商城第61讲——搭建Solr集群时,报错:org.apache.solr.common.SolrException: No shard id for CoreDescriptor ···
问题描述搭建好Solr集群之后,我们就会想着要来启动每一个Tomcat服务器实例。当我使用tail -f /usr/local/solr-cloud/tomcat01/logs/catalina.out命令来查看第一个Tomcat服务器的启动日志时,发现报了一个如下图所示的异常。不仅第一个Tomcat服务器的启动日志会显示如上异常,而且其他的Tomcat服务器启动时都会报这个异常,该异常的详细信息如下所示。java.util.concurrent.ExecutionException: org.ap原创 2020-10-27 16:21:06 · 798 阅读 · 0 评论 -
淘淘商城第60讲——搭建Solr集群时,报错:org.apache.solr.common.SolrException: No coreNodeName for CoreDescriptor ···
问题描述在上一讲搭建Solr集群的过程中,启动每一个Tomcat服务器实例之后,我使用tail -f /usr/local/solr-cloud/tomcat01/logs/catalina.out命令来查看了一下第一个Tomcat服务器的启动日志,发现报了一个如下图所示的异常。不仅第一个Tomcat服务器的启动日志会显示如上异常,而且其他的Tomcat服务器启动时都会报这个异常。我TM瞬间裂开了,老子辛辛苦苦半天来搭建Solr集群,结果你TM就给我这个,艹!而且我在网上也没找到和我报相同异常的人,原创 2020-10-27 15:59:40 · 577 阅读 · 0 评论 -
淘淘商城第59讲——搭建Solr集群,注意是Solr 7.1.0这个版本的哟!
前言我们之前完成的商品搜索功能使用的是Solr的单机版来实现的,正是由于我们现在商品数据量不多,才几千条而已。如果商品数据量变得非常庞大,比如说淘宝,淘宝上面的商品数量就特别多,我们能用一个单机版的Solr来实现吗?显然不能,因为这样做肯定会有问题,一个是数据量特别庞大,每一台服务器存储容量是有上限的,一旦磁盘存不下了该怎么办呢?这是不是有问题啊!还有就是由于淘宝的用户访问量很大,搜索相关商品的人也有很多,并发量必然会非常高,这种情况使用一个Solr服务,极有可能撑不住,这种时候该怎么办呢?这便需要使用到原创 2020-10-26 22:31:26 · 399 阅读 · 1 评论 -
淘淘商城第60讲——搭建Solr集群时,报错:org.apache.solr.common.SolrException: Could not find collection : core1
问题描述在上一讲搭建Solr集群的过程中,启动每一个Tomcat服务器实例之后,我使用tail -f /usr/local/solr-cloud/tomcat01/logs/catalina.out命令来查看了一下第一个Tomcat服务器的启动日志,发现报了一个如下图所示的异常。而且在访问Solr集群(既访问任何一个Solr节点的首页)时,也能看到这样的错误信息。我TM瞬时裂开了,老子辛辛苦苦半天来搭建Solr集群,结果你TM就给我这个,艹!而且我在网上也没找到和我报相同异常的人,全靠老子自己一个原创 2020-07-25 12:32:37 · 1357 阅读 · 1 评论 -
淘淘商城第57讲——Zookeeper是个啥东东,要不你给介绍介绍呗!
什么是Zookeeper?你还记不记得我之前简单介绍过Zookeeper啊!如果不记得的话,那么可以再看看我的《淘淘商城第11讲——如何安装单机版Zookeeper?》这篇文章。在这篇文章中,我们是使用Zookeeper来作为Dubbo服务的注册中心的,你现在该有一点印象了吧!这里,我再次详细地介绍一下Zookeeper。Zookeeper是一个分布式的、开源的程序协调服务,而且还是Hadoop项目下的一个子项目。Zookeeper可以翻译成动物园管理员,他是用来管Hadoop(大象)、Hive(蜜蜂)原创 2020-07-24 09:32:01 · 455 阅读 · 0 评论 -
淘淘商城第50讲——导入商品数据到索引库时,报错:org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException
问题描述昨天碰到了一个问题,真的是把快我搞死了,导致我代码写下去的勇气都没有了,最后大爷我干脆不写了,我躺着睡觉还不行吗????问题是这样的,就是导入商品数据到索引库时报错了。实现这一功能时,我的service层的代码是这样开发写的,这里我只是将最关键的类的代码给贴出来了。以上实现类中所用到的HttpSolrClient对象是由Spring容器来管理的,如下图所示。以上配置可是一点问题都没有啊!你不要给我说什么上面的配置有问题啊之类的,闭嘴!service层的代码写的有错吗?压根就没有,要是谁原创 2020-07-23 09:27:51 · 1251 阅读 · 2 评论 -
淘淘商城第46讲——使用SolrJ管理索引库时,报错:java.lang.NoSuchMethodError: org.apache.http.impl.conn.PoolingHttpClie...
问题描述今天碰到一个问题,那就是在使用SolrJ管理索引库时,报了一个如下这样一个错误,具体错误信息记录如下:java.lang.NoSuchMethodError: org.apache.http.impl.conn.PoolingHttpClientConnectionManager.setValidateAfterInactivity(I)V at org.apache.solr.client.solrj.impl.HttpClientUtil.createClient(HttpClientUt原创 2020-07-21 11:46:08 · 1514 阅读 · 0 评论 -
淘淘商城第38讲——使用Jedis操作集群版Redis时,报错:redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException
问题描述今天碰到一个问题,那就是在使用Jedis操作集群版Redis时,报了一个如下这样一个错误,具体错误信息记录如下:redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException: Too many Cluster redirections? at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:34) at re原创 2020-07-19 09:42:46 · 5145 阅读 · 0 评论 -
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···
问题描述淘淘商城项目作为一个SOA架构的项目,自然地会分成表现层与服务层这两层,为了各个层之间解耦合(或者最大限度地松耦合),我们使用了Dubbo这样一个alibaba开源的分布式服务框架,该框架最大的特点就是利用分层的方式来架构,从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。但是我们在appplicationContext-service.xml文件原创 2020-07-07 21:24:45 · 506 阅读 · 0 评论 -
淘淘商城第10讲——你给翻译翻译,什么叫Dubbo?
如何实现系统间的通信?由于淘淘商城是基于SOA的架构,表现层和服务层是不同的工程,所以要实现商品列表查询这个功能需要两个系统之间进行通信。那么如何实现远程通信呢?这里我们总结一下,Dubbo有两个作用,一个是实现系统之间的远程通信,一个是统计出系统之间的调用关系、调用次数,以便于我们管理我们的服务,而管理服务的目的就是为了能够知道哪些服务的并发量比较高,哪些服务的并发量比较低,这样就可以便于我们添加节点(服务器)了。什么是Dubbo?其官网地址是http://dubbo.apache.org/en原创 2020-07-05 11:28:34 · 665 阅读 · 0 评论 -
淘淘商城第9讲——从SVN服务器下载代码
前言在上一讲中,我们已经将所有工程的代码都上传到SVN服务器上了,这一讲,我就来教大家如何从SVN服务器下载代码。为了教大家如何从SVN服务器下载代码,我们需要把Eclipse上的工程给真正删除掉,如下图所示,选中所有工程然后右键,再在其子菜单中点击Delete。接着,会弹出如下窗口,勾选上Delete project contents on disk(cannot be undone)前面的复选框,紧接着点击OK按钮。最后,删除完所有工程之后,会变得一片空白,如下图所示。接下来,我们就要从原创 2020-07-05 07:19:47 · 676 阅读 · 0 评论 -
淘淘商城第8讲——向SVN服务器提交代码
回顾一下之前所新建的SVN仓库在上一讲中,我们一起学习了如何来安装SVN服务器并且新建了一个名称为taotao-javaee的空的仓库,如下图所示。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ui6UZkXI-1593138159172)(./image/前言.png)]从上图中我们可以清楚地看到taotao-javaee仓库下有三个空的文件夹,它们分别是branches、tags以及trunk,你不仅就要问了,这三个文件夹分别代表什么意思呢?下面我就来告诉大家,如有原创 2020-06-26 10:22:52 · 641 阅读 · 0 评论 -
淘淘商城第7讲——你逃也逃不过的SVN版本控制工具
相信大家都是对SVN版本控制工具再熟悉不过了,这是因为在工作中我们要经常用到SVN来管理我们的代码,但是我相信很多人是没有搭建过SVN服务器的,平时在工作中只是使用罢了。既然我们现在开发的淘淘商城项目是一个比较综合性的项目,那么我们肯定有必要学一下怎样安装SVN服务器以及如何向SVN服务器上传代码和从SVN服务器下载代码。不过,在这一讲中,我不会教大家如何向SVN服务器上传代码和从SVN服务器下载代码,因为要详细地讲解清楚,就在一篇文章中是讲不下的,毕竟篇幅所限。不过也不用担心,后续的文章中会介绍到。安原创 2020-06-25 18:27:53 · 496 阅读 · 0 评论 -
淘淘商城第3讲——Missing artifact com.github.pagehelper:pagehelper:jar:3.4.2-fix的解决方案
问题描述上一讲中,在使用maven搭建后台管理系统工程时,你必然会遇到这样一个问题。在聚合模块时,发现在父工程的jar包依赖在子工程中无法进行添加,并报出了Missing artifact com.github.pagehelper:pagehelper:jar:3.4.2-fix异常,截图如下:也就是说在创建maven项目时,pom文件出现了错误,依赖缺失。问题产生原因我们可以清楚地看到,在父工程中已经确定下来了jar包的版本,下图所示。至于jar包下载不下来,只可能存在两种原因,分别是:原创 2020-06-25 11:39:28 · 1340 阅读 · 6 评论 -
一个淘淘商城项目送给你,愿你有一个灿烂的前程!
今天是2020年6月23日,星期二,天气晴。2020年已过一半,回想一下,这真是一个多灾多难的年份啊!可生活依然要继续,活着的人依然要继续前行。这是没道理的事情。好了,回到主题,说说写这篇文章的目的。我相信,很多人都知道淘淘商城这个项目是某个培训机构的项目,而且还是很多年之前的一个项目,我首次写这个项目时,还是3年前,即2017年5-6月份。我相信很多人会说,就这么一个老项目,有必要值得做吗?对于那些具有1~2年工作经验的人来说,确实没什么必要,不过我们也需要考虑一下那些初学Java的小白们,或者马上要出原创 2020-06-23 09:38:08 · 5218 阅读 · 8 评论 -
淘淘商城第1讲——你给介绍介绍,什么叫淘淘商城?
电商行业的背景介绍近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善以及创新的动力和能力不断增强。电子商务正在与实体经济深度融合,并进入规模性发展阶段,对经济社会生活的影响不断增大,以致正成为我国经济发展的新引擎。2016年5月17日,中国“互联网+产业”智库中国电子商务研究中心(100EC.CN)发布《2015年度中国电子商务市场数据监测报告》。报告显示,2015年,中国电子商务交易额达18.3万亿元,同比增长36.5%,增幅原创 2020-06-21 05:46:40 · 2981 阅读 · 2 评论 -
淘淘商城第113讲——生成订单
淘淘商城系列——生成订单本文我们将一起学习下如何生成订单。数据库表分析我们先来看下tb_order表,如下图所示。 可以看到:主键order_id是字符串类型,不是自增长的,因此我们需要自己生成订单编号,我们平时使用京东、天猫等购物网站,发现人家的订单号都是用数字组成的,我们也使用数字作为订单号,但是怎样才能使订单号不重复呢?用时间加随机数的方案生成的订单其实还是可能会重复的,当同一时刻生成原创 2017-06-18 13:37:03 · 21195 阅读 · 18 评论 -
淘淘商城第111讲——订单系统服务层和表现层工程搭建
首先我们还是先看一眼淘淘商城的系统架构,如下图所示,可以看到订单模块是单独的模块,有服务端还有客户端,服务端负责存储订单,客户端负责展示订单。 下面我们便开始搭建工程,首先来搭建订单服务工程——taotao-order。搭建taotao-order工程我们可参考taotao-sso工程的创建来搭建订单服务工程,它是后台的服务层工程。这个工程是个pom(聚合)工程,包含两个子模块——taotao原创 2017-06-17 15:41:28 · 5454 阅读 · 6 评论 -
淘淘商城第110讲——删除购物车商品及购物车小结
删除购物车商品通过上文的学学习,想必大家都已实现修改购物车商品数量的这个功能,本文我将带领大家一起实现删除购物车商品的功能。 我们在购物车列表页面点击”删除”链接,如下图所示。 我们会看到如下图所示界面,可以看到请求的url是/cart/delete/{itemId}.html,与购物车列表页面的url地址/cart/cart.html不一致,但是我们点击”删除”链接后页面应该仍然留在当前页原创 2017-06-17 13:13:56 · 10555 阅读 · 4 评论 -
淘淘商城第109讲——修改购物车商品数量
上文我们实现了展示购物车商品列表的功能,本文我们将继续完善购物车,实现购物车商品数量的修改功能。 当前购物车列表,如果我们修改商品数量,总价格不变,而且页面刷新后还会回到原来的数字。 我们首先看看上节课我们展示的购物车列表,如下图所示,当前商品数量是5,总价格是14995元。 下面我们点击那个”+”让商品数量加1,发现商品数量变成6了,但是商品总价格依然是14995元。 我们再刷新下原创 2017-06-17 11:57:26 · 10555 阅读 · 2 评论 -
淘淘商城第108讲——展示购物车商品列表
通过上文的学习,想必大家都已经实现了添加购物车的功能,本文我们将一起实现展示购物车商品列表的功能。 我们访问淘淘商城首页(前提是启动了所有的服务及工程,虽然有个别工程用不上,不过也没关系),点击“去购物车结算”。 理应跳转到购物车商品列表页面,展示昨天我们添加的商品,但是可以看到会报404的错误,如下图所示,可知我们请求的地址并不正确,因此我们需要对淘淘商城首页中的“去购物车结算”超链接的h原创 2017-06-16 18:27:50 · 5071 阅读 · 5 评论 -
淘淘商城第107讲——添加购物车
上文我们一起改造了下商品详情页面关于购物车那块的部分,本文我们将一起实现添加购物车这个功能。 我们以京东为例,比如我们选了一款手机,然后点击”加入购物车”,注意,此时我们并没有登录。 我们会看到如下图所示界面,可以看到,我们并没有直接进入购物车列表,而是到了一个中间页面,只是提醒我们成功加入了购物车。如果想进购物车列表的话,就点击那个”去购物车结算”按钮。 我们模仿京东的购物车功能,既原创 2017-06-16 02:59:58 · 8250 阅读 · 5 评论 -
淘淘商城第106讲——改造商品详情页面中的加入购物车板块
在上文中,我就讲过,关于购物车模块,京东和淘宝并不一样,京东允许用户在没有登录的情况下就添加商品进购物车,而且加到购物车里面的商品可以一直保存着。这其实是把购物车信息写入到了Cookie中,如果清空了Cookie也就清空购物车了。把购物车信息写入到了Cookie中也有其优缺点,优点有:不占用服务端存储空间。用户体验好。代码实现简单。缺点是:Cookie中保存的容量是有限的,最大为4k。把原创 2017-06-16 01:25:13 · 8147 阅读 · 4 评论 -
淘淘商城第105讲——购物车实现分析及工程搭建
关于购物车模块,京东和淘宝并不一样,京东允许用户在没有登录的情况下就使用购物车,而且加到购物车里面的商品可以一直保存着(其实是放到了Cookie当中,如果清空了Cookie也就清空购物车了)。而淘宝则是必须先登录才能将商品添加到购物车当中,就用户体验来说,京东的购物车模块用户体验更好。 我们看下京东购物车,如下图所示,可以看到域名是cart.jd.com,这与商品详情页面的item.jd.com是原创 2017-06-15 23:39:58 · 4959 阅读 · 2 评论 -
淘淘商城第104讲——jsonp的原理及两种实现方式
首先,说下什么是跨域?有以下两种方式的跨域:域名不同域名相同,端口不同解决js的跨域问题可以使用jsonp。那接下来说下什么是jsonp? jsonp不是新技术,它只是一种跨域的解决方案,使用js的特性绕过跨域请求,利用的特性便是js可以跨域加载js文件!!举个非常常见的例子,我们在html头部一般都会引入很多js,甚至我们直接引用在线的js,比如我们引用官方网站的jQuery路径加载进来也原创 2017-06-15 18:20:05 · 5021 阅读 · 4 评论 -
淘淘商城第103讲——js跨域分析
通过上文的学习,我有理由相信大家都实现了用户登录,登录的时候我们把token写入到了cookie当中,登录成功后,我们查看cookie的信息,如下图所示,发现是有token信息的。 我们回到登录页面,可以看到token信息,如下图所示。可以看到与淘淘商城首页的token信息是完全一致的。 虽说域名一样(也即都叫localhost),但不同的端口就已经属于跨域了,而我们就是要解决跨域问题。原创 2017-06-15 00:12:12 · 4744 阅读 · 5 评论 -
淘淘商城第101讲——单点登录之用户登录页面的实现
我们来看下login.jsp页面,如下图所示。可以看到<input .../>标签中并没有定义onclick方法,只是定义了个id="loginsubmit",那么onclick事件在哪儿定义了呢? 其实是在js代码当中定义了,如下图所示,页面加载完后就给id为loginsubmit的按钮添加了onclick事件,当点击这个按钮的时候,会触发LOGIN对象的login方法,login方法要先检原创 2017-06-14 18:12:01 · 7932 阅读 · 7 评论