作为一个购物商城,很明显淘宝绝对是一个巨头,其功能之强大,内容之广泛,我这种小渣渣是很难想到那么多,也不会啊。
目前来说,我所能做到所能想到的也就是实现注册、登录、购物等功能的简单实现。
嗯,不是弄前端的所以页面目前都是写好的(我就直接甩页面啦)。那就一步步来实现吧。
一、首先是注册
具体的html代码我就省略啦。
在注册过程中,使用js代码来判断一些不能为空的内容,还有内容的格式,比如用户名,密码等等
使用了ajax的内容来做一个局部更新,当用户名已经被注册过了,则显示用户名已存在。否则显示用户名可用。
下面是对应的java代码
使用servlet接收所有数据,并进行一些封装,将必要的数据通过mybatis存入数据库,注册成功后则自动跳转到登录界面
具体servlet代码如下
二、登录
通过servlet接收用户名和密码,这里也可以用ajax来进行一个局部更新,我有点省事,就没写,只在控制台输出结果。
通过从数据库中查找用户的名字和密码都正确后,登录跳转到index界面。
具体代码:
在登录这里,如果用户登录成功,就给用户创建了一个购物车对象
三、加入购物车
这是一个主页面,显示所有的book对象,而这些都是从数据库里拿出来的,所以这里就写了一个监听器,一旦服务器打开,
就自动去数据库里查找,将所有的book对象封装,并显示在页面上
监听器代码:
然后就是要加入购物车了,在淘宝上剁过手的人都知道,加入购物车的前提是该用户登录了,所以写了一个过滤器,包括之后的所有需要登录
才能访问的页面都需要进行过滤
isLogin 是用户登录成功后往session里添加的值,如果没有登录自然就没有。
我就直接晒加入购物车的代码了,也就是一个取出id值,从数据库中查处对应的产品,再封装一个订单项并存入购物车的过程。
购物车里的三个小点
1、有没有人注意到购物车里的产品的数量是可以更改的,当然数量更改,价格自然也要改。这里有个笨笨的点,总价我是直接在服务器端算好然后在jsp页面中取出来的
那就把jsp代码也放上来看看好了
jsp页面代码就有点长了
2、删除订单项
3、清空购物车
这个就简单了,可以直接取出存进去的shopcar对象,赋空值。我是在shopcar里写了一个clear方法,直接调用就移除了所有的line
四、提交订单
首先会跳转到一个显示所有信息的页面,用户信息可以从之前登录时存入的customer对象的属性一一拿出来,购物清单则是遍历购物车里的所有line对象
再次点击提交订单,就是真的下订单,要入库了。
这应该是最难的一个点,存入数据库的过程可能要多思考一下,由于要一次性存两张表,并且两张表中还有主外键的联系,所以封装的订单对象中也要有订单项这个
属性,订单项中也有所属的订单属性。意思大概就是这样。
注意一点
在这里还有一个修改用户的servlet,与注册类似的代码我就不重复了,注意sql语句的书写以及更新列表的条件就行了
五、查询订单:
这就是考研以下数据库的多表查询的功力了,本人还是有点弱啊,都是分开来查的,可以一次性在查找订单是将所有的订单项对象和book对象封装到一起,
我就只是在line里封装了一个book对象,order是单独查询的,这里我就为了省懒,用了一个过滤器,将该用户的所有订单查出来显示
这里也涉及两个小方面:
1、订单明细
通过传到servlet的订单号,从数据库查询出所有的line,如果之前是封装好的order,则可以直接显示order中的line属性值了。我就是分开来的,
要再去数据库里查一次
2、删除订单
这个过程有先后顺序的,必须先删订单项再删订单
六、用户注销
我做的比较任性,直接销毁所有session
差不多就到这里了,作为初学者,还是很多不够完善与准确,以后要多多学习。。。