j2ee基础技术模仿天猫项目总结(无框架)

不能上传视频就随便发了两张照片
前台效果
在这里插入图片描述后台效果:
在这里插入图片描述
目的:
之前查资料看网上人们都说一开始不要太依赖框架学习,框架只是锦上添花,当我们能不依赖任何框架开发完整项目时,才是真正掌握了它。所以就选择用最基础的j2ee技术来模仿天猫,以此夯实好基础,为后面学习框架铺垫好。

开发流程:

技术准备
java:java基础和java中级以及java高级的反射
前端:html,css,js,jq
j2ee:所有内容
数据库:mysql

学习方法推荐
如果不会其中的技术也可以跟着做,计算机的学习方法个人认为检索式学习是最好的,即以一个项目为目标去学习,哪里不会学哪里。而不要一来就往书里面钻,当然第一遍看书泛泛的看也是可以的。我当时看java编程思想的时候完全懵逼的状态,感觉特别枯燥无味。而实践中去学习知识会觉得更有趣一点。而且学了马上实践也能更好的记忆。也能更直接的就知道这个知识能运用到哪些实际的地方。

开始项目
1.需求分析:
功能包括前台和后台。前台就是获取后台的数据展示出来,还有就是提交数据到后台进行处理。

2.设计数据库
这是极其重要的,如果表结构设计的很差,那么功能实现也非常的麻烦。这里应该先去看页面的功能。然后抽象出来数据之间的关系,然后再建表。

3.设计界面
前台和后台都需要界面,这个就不用多说了

4.实体类的设计(即类似user)
这里首先肯定是对数据库的表映射过来,仅此还不够,还需要兼顾对功能实现的支持。

5.DAO类设计
首先肯定是要完成数据库中的表增删改查的功能,其次还要加上业务支持的方法。

6.service设计
这里单独提一下业务类,一般公司会有这个类,但是自己跟着教程做的这个项目运用了Filter+反射的设计,就不需要业务类了。

7.后台
分类即天猫的最左边的那个分类栏,所有商品都有对应的分类。这个第一个开发,因为它是祖先相当于,其他很多功能都需要它实现后才能开发,否者会很麻烦。同时其他功能后面按着他为模板开发。

8.前台
前台分为两个部分,一部分需要登录(如购买物品),一部分不需要登录(比如就只逛逛)。

重要技术详解

表结构设计
首先表结构设计应该是先看完项目最后想要的样子后再来设计。
看教程说不要做多对多的表,后续会很麻烦(但是自己也不知道,后面遇到类似问题再解决吧)只设计1对多的表。

1个分类对应多个具体产品,1个分类对应多个属性。
1个属性对应多个属性值(这里需要重点提一下,举个例子吧,一个电脑有操作系统,质量等多个属性,而操作系统一个属性也对应多个属性值例如Linux,windows)
1个产品对应多个评价,多个属性值,多个产品图片,多个订单项(订单项是存放购买产品的种类,数量等)
1个用户对应多个评价,多个订单(订单是存放订单的信息,如邮寄地址,电话号码等)多个订单项。
1个订单对应多个订单项。

Filter+反射
我们如果采用一个servlet实现一个小功能的话,那么一个属性管理就对应了至少5个的servlet,类似属性管理这样的大功能还有6个以上,那么至少就有30个servlet。这就会导致web.xml配置非常麻烦,如果采用注解方式,则会导致可拓展性差(虽然我目前也不知道这啥意思).总之如果你想修改代码的话去30个以上的servlet找还是麻烦,所以我们想减少servlet数量。
首先我们用一个Filter拦截所有请求,判断该地址是否是以/admin_开头的,如果不是那么不做特殊处理。如果是的话那么用request.getServletContext().getContextPath()方法获取根目录
再用request.getRequestURI()得到uri,然后再用StringUtils.remove(uri, contextPath)去除根目录就得到想要调用的servelet和对应的方法(例如输入http://localhost:8080/toostrong/admin_category_list,经过处理后就得到/admin_category_list,然后经过处理最后采用反射(即动态调用类中的方法)。
这种处理方式就大大的减少了servlet的数量(比如以前需要写分类addservlet,分类deleteservlet,而现在只需要用写分类servlet,然后在分类servlet里面写add,delete等方法)

核心:
始终是MVC思想,即jsp负责展示界面和提交数据到servlet,然后servlet又处理数据到数据库,再返回来。但重点要关注每次传递数据的request对象以及相应的response对象是否是你想要的对象,不然会出错。

小结:
此项目让我了解了设计一个网站的大体步骤,做完此项目后,我觉得代码其实是最简单的,重点应该是前面的分析。此外对于此项目来说,我对具体的细节并未做深入研究,比如容器使用的合适场景,图片如何用IO流处理等等的基础内容。后面完全独立做项目的时候再来补吧。

后续学习目标
听李老师(成信大最好的老师,no one of)的,先学SSM框架,学完后再学Linux,再接触服务器,然后开始考虑优化,到这一步后学java虚拟机和并发编程的艺术以及具体优化的算法。尽量让项目真实。

发布了5 篇原创文章 · 获赞 0 · 访问量 149

猜你喜欢

转载自blog.csdn.net/weixin_45593271/article/details/105101469
今日推荐