JAVA WEB练手项目-模仿天猫J2EE版

sojan 2017-02-16 03:24:07
做一个模仿个天猫官网的J2EE项目,来练手吧
1. 项目演示地址
前台 http://how2j.cn/tmall
后台: http://how2j.cn/tmall/admin

2. 学习思路
其实呢,要在网上找一个J2EE项目是很容易的,随便在百度或者git搜索,都是一大把。 但是拿到这样的搜索来的J2EE项目,其中包含了上百个java文件,jsp文件,各种配置信息,如果没有好几个实践过的J2EE项目经验,会觉得无从看起,难以下手,最后影响学习的效果。
为了使学习的曲线变得更平滑,逐渐建立学习的信心,我为这个模仿个天猫官网项目制作了由浅入深的学习教程。

2.1 首先下载一个跑起来
看了演示地址之后,第一步总是要下载下来,把项目配置起来,自己也跑跑看看效果的。 如果下载出来的项目不能运行,为什么要跟着你做呢?




为了顺利的演示,不仅需要项目代码,还需要数据库中的数据, 所以提供了导入数据的SQL文件




而导入的数据量比较大,上万条数据,使用工具导入不仅慢,还有可能出错,所以专门准备了一个命令行的方式导入,以保证导入的顺利进行




配置tomcat也是比较容易出错的环节,特意准备了一个完整的server.xml,直接复制粘贴,然后启动tomcat,就一定能够成功配置了。




如此这般,便可以顺利的自己也搭建一个模仿天猫的J2EE项目,在自己的机器上看到效果。

2.2 由浅入深,从零开始构建整个项目
在确定了这个项目确实可用的前提下,就可以开展对这个项目的学习。但是这个项目里有许多的java,jsp.xml 等等各种类型的文件,彼此之间又有着各种关联关系,从哪里开始着手好呢? 其实,从哪里着手,都不好着手,毕竟项目有着相当的复杂度。 最好的方式,就是从零开始,由浅入深地构建出整个项目出来。

  • 从需求分析开始,明确要做哪些功能。
  • 然后分析表结构,确定什么样的表结构,表关系,可以支撑需求中的业务功能。
  • 接着再做持久层的实体类和DAO设计
  • 最后才开始进行前后台的功能开发





2.3 表结构设计




表结构设计是非常重要的,如果这一步没有做正确,将无法支持业务功能的需求,所以放在第一步来做。在这部分列出了表与表之间的关系,建表的SQL语句等等。值得一提的是,因为表比较多,为了便于理解每张表的作用,特意把表和前台页面截图做了对应,从感性上理解这些表都是干什么用的。
比如这个产品表与产品页面的截图,这样表的每个字段在界面上分别对应什么样的显示数据,对于这个表有什么用,心里就会有底很多。




2.4 每个类的源代码,细致到方法级的讲解
项目里有非常多的类,如实体类,DAO类,Servlet类,Filter,JSP等等,不仅每个类提供源代码,而且每个类的每个方法有什么作用,与业务有什么关系,都有细致到方法级别的讲解, 力求把代码吃透,消化明白。




2.5 业务类与界面的对应关系

稍复杂的方法,还有与项目截图的一一对应关系,辅助理解。




2.6 后台第一个功能精讲
在功能开发环节,比如后台功能,通常来说,大部分后台功能是比较接近的,主要是业务数据的CRUD操作。 而做第一个的时候,不仅需要规范化,对于不熟悉的同学,也会略感吃力。 所以在讲解如何做后台第一个分类管理功能的时候,把其拆的特别细,碾碎到很小的颗粒,这样消化起来就容易多了。




2.7 其他后台功能
在完成了第一个后台功能,并消化理解之后,再做其他的后台功能就会顺畅很多





2.8 前台第一个功能精讲
前台功能与后台功能的做法会有区别,所以与后台功能类似的,前台第一个功能也讲得很细致,便于理解与消化




2.9 其他前台功能
在完成了第一个前台功能,并消化理解之后,再做其他的前台功能就会顺畅很多




2.10 视频讲解
光有文字讲解有时候也无法把一些较为复杂的概念、思路表达清楚。 所以在各个关键点,都有视频讲解,加深理解。





3. 可运行项目
每个知识点都有当前的可运行项目下载,以确保项目一定可以运行,保障持续学习的信心。
学习一个较为复杂的项目,会有这样的体验:各个步骤差不多都跟着做了呀,但是为什么就是不能正确运行呢? 而且花很多时间,翻来覆去的改,越改越糟糕,越改越乱,犹如进入了茂密的丛林一般,几乎失去了方向。如果进入这样的状态,真正可怕的是一点点丢失的学习的信心和动力,自然而然地开始怀疑项目本身是不是有问题喔,各种疑虑加上止步不前, 最后实在是学习不动了,只好放弃了。
其实之所以跑不出来,大部分原因都是因为某个细节没有处理好。为了面对这种情况,我特意在每个学习步骤的右上角,准备当前学习进度对应的可以运行的项目。 如果自己老是搞不出来,那么就把右上角的项目下载下来,部署,运行,就跑通了。




这样做的作用是什么呢?

  • 第1,确保了项目是可以运行的,教程没问题,打消了项目本身就有问题的疑虑
  • 第2,此时就可以把自己写的代码与“标准答案” 代码进行比较,很快就能定位自己的问题所在了。 为此还特意在对应位置,为每个源代码提供了一个文件比较功能, 方便快速定位自己哪些 “细节” 不一样。








  • 第3,定位到自己错误的地方,修改后,再回过头去部署自己的项目,并运行通过。 这样不仅技术上成长了,也能逐步增强了学习完整个项目的信心。

4. 可以期待的收获
看上去这个项目也不短嘛,那么真正学完这个项目后,能够得到什么呢?
4.1 典型业务场景的掌握
所谓的典型业务场景就是各种商业项目里,都会有类似或者接近的功能。 在这个项目里你掌握了这些业务场景的开发,去工作之后,做类似的就能驾轻就熟。 那么都有哪些业务场景呢?





4.2 设计模式的掌握
设计模式的书和文章有很多,从我自己学习和工作的经验来看,如果一种设计模式,我只是在书上看过,却没有在实际工作中运用的话,那么犹如无根之树,打一把dota就忘记了,即无法深入理解其中的原理,也不能在真正工作的时候,灵活地运用到他们。




而通过这个项目,基于实践所运用到的项目,就会变成你真正的技能,因为这些都会是你一行一行代码敲出来的设计模式,在面试的时候如果被问到相关问题,你也会对答如流,因为这些会是你真正“实践过”的设计模式

5. 教程地址: http://how2j.cn/k/tmall-j2ee/tmall-j2ee-894/894.html?tid=31
教程由个人完成,局限于个人的经验和视野,有诸多不足之处,请各位多多指点,谢谢。
...全文
3326 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_23618879 2017-08-21
  • 打赏
  • 举报
回复
谢谢楼主分享
脆爽 2017-08-09
  • 打赏
  • 举报
回复
学习了 感谢楼主分享
f731z9hjr7 2017-08-08
  • 打赏
  • 举报
回复
谢谢楼主分享
m2a6ueoowp 2017-08-02
  • 打赏
  • 举报
回复
我去,写的真够详细的啊,这学会了,肯定找得到工作了吧
h315r5rrhn 2017-07-24
  • 打赏
  • 举报
回复
果断收藏了,666
长沙郭富城 2017-07-24
  • 打赏
  • 举报
回复
厉害啊 前排支持
u4g0cgsmk6 2017-07-17
  • 打赏
  • 举报
回复
太牛了,正好是我这种新人需要的
j1jh9xvdjf 2017-07-03
  • 打赏
  • 举报
回复
要的就是这个,太缺乏实战经验了
q4uyk2gqeq 2017-06-22
  • 打赏
  • 举报
回复
引用 39 楼 k6qomag0ee 的回复:
额。。。。这么多内容,看到我就想放弃了
放弃了就学不会啦
k6qomag0ee 2017-06-05
  • 打赏
  • 举报
回复
额。。。。这么多内容,看到我就想放弃了
墨墨无文 2017-06-02
  • 打赏
  • 举报
回复
厉害啊,我才开始接触,没有实战经验
v5bbg4kqea 2017-06-01
  • 打赏
  • 举报
回复
厉害了,老哥。。。。
s8o84cog4m 2017-05-22
  • 打赏
  • 举报
回复
哇塞,很不错哦
Scaarf 2017-05-16
  • 打赏
  • 举报
回复
页面这个很容做出来,毕竟模仿很快,到天猫网页F11看布局再模仿,之前在培训班时刚学完第二阶段,就有人模仿出来了淘宝页面,简直一模一样
yanmengdewo 2017-05-16
  • 打赏
  • 举报
回复
厉害了,老哥。。。。
k6m6a0262s 2017-05-15
  • 打赏
  • 举报
回复
这个有些难吧,我觉得
bobolnear 2017-05-15
  • 打赏
  • 举报
回复
完整的人气给点赞。
聖手求生 2017-05-15
  • 打赏
  • 举报
回复
。。。。。。
n139jz7hx9 2017-05-12
  • 打赏
  • 举报
回复
模仿模仿,这个用心了
sojan 2017-05-02
  • 打赏
  • 举报
回复
引用 28 楼 zc881124 的回复:
前段界面做的还可以,可以模仿。
是呢,模仿起来学得快嘛
加载更多回复(28)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧