● 项目实战
武哥聊编程
同济大学硕士,第一批华为5G研发人员,拼多多广告投放部门,全网20w+粉丝。微信公众号:武哥聊编程
展开
-
【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
在没有Ajax之前,一般都是根据用户修改的值去找Action,然后返回新的jsp页面重新加载整个页面,完成数字的更新。但是有了Ajax技术后,我们可以利用Ajax技术局部刷新要改变的地方,而不是重新加载整个页面。原创 2016-05-24 18:07:37 · 13768 阅读 · 4 评论 -
【SSH网上商城项目实战06】基于DataGrid的数据显示
EasyUI中DataGrid以表格形式展示数据,并提供了丰富的选择、排序、分组和编辑数据的功能支持。DataGrid的设计用于缩短开发时间,并且使开发人员不需要具备特定的知识。它是轻量级的且功能丰富。单元格合并、多列标题、冻结列和页脚只是其中的一小部分功能。1. 回顾一下第4节内容 在第4节中,我们使用EasyUI搭建好了左侧菜单栏,并且通过点击菜单选项在右...原创 2016-05-08 15:25:45 · 10517 阅读 · 11 评论 -
【SSH网上商城项目实战05】完成数据库的级联查询和分页
上一节我们完成了EasyUI菜单的实现。这一节我们主要来写一下CategoryServiceImpl实现类,完成数据库的级联查询。一般项目从后往前做,先做service(我们没有抽取Dao,最后再抽取),做完了再做上面层。 在写之前,先看一下数据库中的表的情况: drop database if exists shop;/*创建数据库,并设置编码*/...原创 2016-05-08 00:01:38 · 14705 阅读 · 33 评论 -
【SSH网上商城项目实战02】基本增删查改、Service和Action的抽取以及使用注解替换xml
上一节我们搭建好了Struts2、Hibernate和Spring的开发环境,并成功将它们整合在一起。这节主要完成一些基本的增删改查以及Service、Dao和Action的抽取。1. Service层的抽取 上一节中,我们在service层简单写了save和update方法,这里我们开始完善该部分的代码,然后对service层的代码进行抽取。1.1 完善...原创 2016-05-05 09:14:34 · 24667 阅读 · 51 评论 -
【SSH网上商城项目实战17】购物车基本功能的实现
上一节我们将商品的详细页面做完了,并使用了Hibernate的二级缓存加载详细页面来提高系统的性能。这节我们开始做购物车部分。1. 添加新的表 首先我们向数据库中添加几张表:用户表、订单状态表、订单表(购物车表)以及购物项表。用户表中存有用户的基本信息,订单状态表中主要存储订单的状态,比如已发货这种,订单表主要存储用户的信息和订单的状态,所以跟用户表和订单状态表关联,...原创 2016-05-16 14:25:43 · 43281 阅读 · 19 评论 -
【SSH网上商城项目实战03】使用EasyUI搭建后台页面框架
前面两节,我们整合了SSH并且抽取了service和action部分的接口,可以说基本开发环境已经搭建好了,这一节我们搭建一下后台的页面。我们讨论一下两种搭建方式:基于frameset和基于easyUI。最后我们会使用easyUI来开发。1. 抽取公共JSP页面 我们先来看一下当前的jsp页面: <%@ page language="java"...原创 2016-05-07 00:21:51 · 23492 阅读 · 19 评论 -
【SSH网上商城项目实战04】EasyUI菜单的实现
上一节我们使用EasyUI搭建了后台页面的框架,这一节我们主要使用EasyUI技术简单实现后台菜单,先将简单功能做出来,后期再继续丰富。(EasyUI下载地址)1. 实现左侧菜单 首先看一下效果图: 我们可以点击“基本操作”和“其他操作”来切换菜单选项,在具体的选项内,点击不同的连接,会在右侧显示出来。我们先把左边的菜单做出来。 ...原创 2016-05-07 16:56:13 · 16429 阅读 · 7 评论 -
【SSH网上商城项目实战30】项目总结(附源码下载地址)
项目基本完成了,加上这个总结,与这个项目相关的博客也写了30篇了,积少成多,写博客的过程是固化思路的一个过程,对自己很有用,同时也能帮助别人。顺便说个题外话,在学习的过程中肯定会遇到很多异常出现,我们要做的首先是定位这个异常,一般异常的后面都会跟一个或多个Caused by:xxx,这些都是引起异常的原因,一般我们找最下面的一个Cau原创 2016-05-27 15:44:08 · 133175 阅读 · 154 评论 -
【SSH网上商城项目实战26】完成订单支付后的短信发送功能
上一节我们使用了Java mail完成了给买家发送邮件的功能,还遗留一个功能,就是给买家发送短信,告诉他订单已经生成之类的。这一节主要介绍一下如何在用户支付完成后自动给用户发送短信。1. 申请短信发送功能 很明显,我们自己不能发短信,也没有做短信的功能,所以我们需要去借助第三方的运营商。但是像中国移动,联通,电信这种不会直接给我们提供短信服务,而是先把短信服务提供给一些运营商,然后这些运原创 2016-05-22 23:41:39 · 13377 阅读 · 8 评论 -
【SSH网上商城项目实战07】Struts2和Json的整合
上一节我们完成了DataGrid显示jason数据,但是没有和后台联系在一起,只是单纯地显示了我们自己弄的json数据,这一节我们将json和Struts2整合,打通EasyUI和Struts2之间的交互。1. json环境的搭建 json环境搭建很简单,导入json的jar包即可,如下: (注:json-lib-2.4的jar包下载地址...原创 2016-05-09 09:03:26 · 11931 阅读 · 65 评论 -
【SSH网上商城项目实战08】查询和删除商品类别功能的实现
上一节我们完成了使用DataGrid显示所有商品信息,这节我们开始添加几个功能:添加、更新、删除和查询。首先我们实现下前台的显示,然后再做后台获取数据。1. 添加、更新、删除和查询功能的前台实现 DataGrid控件里有个toolbar属性,是添加工具栏的,我们可以在toolbar属性中添加这些按钮来实现相应的功能。先看一下官方文档对toolbar的定义:...原创 2016-05-09 19:27:30 · 15733 阅读 · 15 评论 -
【SSH网上商城项目实战09】添加和更新商品类别功能的实现
上一节我们做完了查询和删除商品的功能,这一节我们做一下添加和更新商品的功能。1. 添加商品类别1.1 添加类别的UI设计 我们先说一下思路:首先当用户点击“添加商品”时,我们应该弹出一个“添加商品”的UI窗口(注意这里不是跳转到新的jsp,EasyUI只有一个页面),弹出这个“添加商品”的窗口后,应该锁住它父类的所有窗口(即点击其他地方无效,只能操作添加商...原创 2016-05-10 12:57:41 · 14595 阅读 · 27 评论 -
【SSH网上商城项目实战10】商品类基本模块的搭建
前面我们完成了与商品类别相关的业务逻辑,接下来我们开始做具体商品部分。1. 数据库建表并映射Model 首先我们在数据库中新建一张表,然后使用逆向工程将表映射成Model类,表如下: /*=============================*//* Table: 商品表结构 *//*=======================...原创 2016-05-11 09:03:28 · 13291 阅读 · 23 评论 -
【SSH网上商城项目实战27】域名空间的申请和项目的部署及发布
前面陆陆续续的完成了网上商城的一些基本功能,虽然还有很多地方有待完善,但是不影响项目的部署和发布,我们可以先来玩一把,这一节主要介绍下域名空间的申请以及项目的部署和发布流程。1. 域名空间的申请 作为一个伟大的屌丝,肯定没钱买域名空间,很自然的想到去申请个免费的,现在免费的域名空间也很多,我在福佳jsp技术网上申请了一个试用期是15天的,大家也可以去申请个玩玩,反正作为学习,这已经足够了,当然,如原创 2016-05-23 22:20:56 · 20213 阅读 · 12 评论 -
【SSH网上商城项目实战25】使用java email给用户发送邮件
当用户购买完商品后,我们应该向用户发送一封邮件,告诉他订单已生成之类的信息,邮箱地址是从用户的基本信息中获取,好了,首先我们来看一下java中发送邮件的方法。1. java中发送email的方法 在完善这个项目之前,先来回顾一下java中是如何发送邮件的,首先肯定需要发送邮件的jar包:mail.jar,导入到lib目录下,好了,下面我们先写一个普通的java程序来回顾一下java email的知原创 2016-05-22 15:21:05 · 13174 阅读 · 10 评论 -
【SSH网上商城项目实战24】Struts2中如何处理多个Model请求
上一节我们完成了在线支付功能,但是支付完成了还没结束,我们需要接收从第三方那边反馈回来的信息,比如成功支付后,我们需要给付款方发送邮件和短信等。所以我们还需要在payAction中获取从第三方传过来的参数,由于从第三方传过来的参数与我们传过去的参数是不同的,所以接收那些参数我们也得写一个Model(BackData),那么问题来了,我们的PayAction已经写成这样子了:public class原创 2016-05-21 14:44:39 · 9011 阅读 · 6 评论 -
【SSH网上商城项目实战23】完成在线支付功能
上一节我们做好了支付页面的显示,从上一节支付页面显示的jsp代码中可以看出,当用户点击确认支付时,会跳到${shop}/pay_goBank.action的action,也就是说,提交后我们得在payAction中的goBank方法中处理一些逻辑(即21节demo中的那个流程图的逻辑),即获得明文,将明文加密成签名(密文)然后再去访问易宝服务器,易宝连接银行,完成支付。 但是考虑到MVC设计模原创 2016-05-20 22:30:51 · 16908 阅读 · 18 评论 -
【SSH网上商城项目实战22】获取银行图标以及支付页面的显示
从上一节的小demo中我们搞清楚了如何跟易宝对接以及易宝的支付流程。这一节我们来做一下支付页面以及在页面中导入银行图标。1. 存储银行图标 银行图标一般不会总是去加载,因为这写东西是死的,没必要每次进入支付页面就去加载银行图标,这样性能会受到一定的影响。这让我们联想到了之前的加载首页数据了,其实跟那个道理是一样的,我们可以在项目启动的时候就将银行图标资源加载到application中,后面用到了就原创 2016-05-19 14:36:20 · 9192 阅读 · 14 评论 -
【SSH网上商城项目实战21】从Demo中看易宝支付的流程
这一节我们先写一个简单点的Demo来测试易宝支付的流程,熟悉这个流程后,再做实际的开发,因为是一个Demo,所以我没有考虑一些设计模式的东西,就是直接实现支付功能。实现支付功能需要易宝给我们提供的API。那么问题来了,使用第三方支付平台最主要的一件事就是获取该平台的API,,我们首先得获取他们的API以及开发文档,然后才可以做进一步的开发。1. 获取易宝的API 获取API的第一步,要在易宝上注册原创 2016-05-18 22:56:17 · 19015 阅读 · 10 评论 -
【SSH网上商城项目实战20】在线支付平台的介绍
之前已经完成了首页的显示,用户添加购物车,确认订单等功能,下面就是支付功能的开发了。用户确认了订单后会直接跳转到支付页面进行在线支付,在线支付需要第三方的接口,这一节主要介绍一些关于第三方支付的内容,从下一节开始,我们真正开发在线支付模块。1. 在线支付介绍 在线支付是指卖方与买方通过因特网上的电子商务网站进行交易时,银行为其提供网上资金结算服务的一种业务。它为企业和个人提...原创 2016-05-18 16:21:43 · 13173 阅读 · 4 评论 -
【SSH网上商城项目实战19】订单信息的级联入库以及页面的缓存问题
购物车这一块还剩最后两个问题,就是订单信息的级联入库和页面缓存,这里的信息是指购物车和购物项,即我们将购物车的信息存入数据库的同时,也存入每个购物项的信息,而且外键都关联好,这涉及到了Hibernate中的级联入库问题;页面缓存问题指的是当用户确认了订单后,如果点后退,又会回到订单确认页面,刚刚的订单确认页面又出来了,而且session还在,信息还是刚刚的信息,这明显不是我们想要的结...原创 2016-05-17 23:59:03 · 14718 阅读 · 13 评论 -
【SSH网上商城项目实战18】过滤器实现购物登录功能的判断
上一节我们做完了购物车的基本操作,但是有个问题是:当用户点击结算时,我们应该做一个登录的判断,判断用户有没有登录,没有登录的话,得首先让用户登录。这就用到了过滤器的技术了,过滤器是专门拦截页面请求的,它与拦截器的原理差不多,拦截器是专门拦截Action请求的,所以各有所用,如果直接是页面的跳转,不经过Action的话,我们只要写一个拦截器即可,如果需要跳转到一个Action处理,那么...原创 2016-05-17 19:38:01 · 15770 阅读 · 10 评论 -
【SSH网上商城项目实战16】Hibernate的二级缓存处理首页的热门显示
网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要进入商品的详细信息页面,就像淘宝里面那样。那么每次点击都要去后台查询一下该商品的详细信息,就会发送相应的sql语句,每次刷新一下详细页面也会发sql语句,这样的话,性能肯定会受到很大的影响。那么使用Hibernate的二级缓存就可以解决这个问题。 有些人可能会想,我们可以使用重定向...原创 2016-05-15 15:34:10 · 16916 阅读 · 7 评论 -
【SSH网上商城项目实战15】线程、定时器同步首页数据(类似于CSDN博客定期更新排名)
上一节我们做完了首页UI界面,但是有个问题:如果我在后台添加了一个商品,那么我必须重启一下服务器才能重新同步后台数据,然后刷新首页才能同步数据。这明显不是我们想要的效果,一般这种网上商城首页肯定不是人为手动同步数据的,那么如何解决呢?我们需要用到线程和定时器来定时自动同步首页数据。1. Timer和TimerTask 我们需要用到Timer和TimerTask...原创 2016-05-15 09:11:18 · 8263 阅读 · 5 评论 -
【SSH网上商城项目实战14】商城首页UI的设计
前面我们利用EasyUI和SSH搭建好了后台的基本框架,做好了后台的基本功能,包括对商品类别的管理和商品的管理等,这一节我们开始搭建前台页面。做首页的思路:假设现在商品的业务逻辑都有了,首先我们需要创建一个监听器,在项目启动时将首页的数据查询出来放到application里,即在监听器里调用后台商品业务逻辑的方法。1. 首页商品显示逻辑 在首页,我们只显...原创 2016-05-14 17:07:56 · 18250 阅读 · 8 评论 -
【SSH网上商城项目实战13】Struts2实现文件上传功能
上一节我们做完了添加和更新商品的功能,这两个部分里有涉及到商品图片的上传,并没有详细解说。为此,这篇文章详细介绍一下Struts2实现文件上传的功能。1. 封装文件信息 我们首先得有一个Model来封装文件的信息,这个Model里需要有三个属性:文件、文件类型和文件名。针对我们要传的图片,我们新建一个Model如下: public class Fil...原创 2016-05-14 12:45:16 · 18540 阅读 · 17 评论 -
【SSH网上商城项目实战12】添加和更新商品功能的实现
添加商品部分原理和添加商品类别是一样的,不过要比商品类别复杂,因为商品的属性有很多,对应的数据库中的字段也就多了,添加商品还有个选项是上传图片,这一小块内容会在下一篇博客中单独说明,因为这涉及到一个知识点,就是Struts2实现文件上传功能。其他废话不多说了,现在开始完善添加商品部分的代码:1. 添加商品1.1 添加商品的UI实现 首先完成query.js...原创 2016-05-13 09:41:24 · 19962 阅读 · 23 评论 -
【SSH网上商城项目实战11】查询和删除商品功能的实现
在第8节我们完成了查询和删除商品类别的功能,那么现在实现查询和删除商品的功能就很好做了,原理和第8节一模一样,只是修改一些参数,比如请求不同的action等。由于查询和删除商品不需要弹出新的UI窗口,所以我们只要完成完成query.jsp中相应的部分以及相应的后台即可。1. 查询商品功能的实现 查询功能主要在查询框中实现,从上一节可知,查询框用的...原创 2016-05-12 11:17:08 · 18995 阅读 · 5 评论 -
【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
这个项目终于接近尾声了,注册功能我就不做了,关于注册功能我的另一篇博客详细的介绍了一下注册的表单验证,可以直接把功能加到本项目中,修改一下相关的跳转即可,就不再做了。另外,目前这个项目只有action层和service层,dao层我还没抽取,做完这个报表,我把dao层抽取一下,再对整个项目做个总结,差不多就可以上传源码了,到时候欢迎大家下载~ 这一节主要做一下最后一个功能:使用JsChart原创 2016-05-26 14:06:18 · 11877 阅读 · 17 评论