做一个模仿个天猫官网的J2EE项目,来练手吧

1. 项目演示地址

2. 学习思路

其实呢,要在网上找一个J2EE项目是很容易的,随便在百度或者git搜索,都是一大把。 但是拿到这样的搜索来的J2EE项目,其中包含了上百个java文件,jsp文件,各种配置信息,如果没有好几个实践过的J2EE项目经验,会觉得无从看起,难以下手,最后影响学习的效果。

为了使学习的曲线变得更平滑,逐渐建立学习的信心,我为这个模仿个天猫官网项目制作了由浅入深的学习教程。

2.1 首先下载一个跑起来

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

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

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

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

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

2.2 由浅入深,从零开始构建整个项目

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

[list]

[*]从需求分析开始,明确要做哪些功能。

[*]然后分析表结构,确定什么样的表结构,表关系,可以支撑需求中的业务功能。

[*]接着再做持久层的实体类和DAO设计

[*]最后才开始进行前后台的功能开发

[/list]

2.3 表结构设计

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

比如这个产品表与产品页面的截图,这样表的每个字段在界面上分别对应什么样的显示数据,对于这个表有什么用,心里就会有底很多。

2.4 每个类的源代码,细致到方法级的讲解

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

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

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

2.6 后台第一个功能精讲

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

2.7 其他后台功能

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

2.8 前台第一个功能精讲

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

2.9 其他前台功能

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

2.10 视频讲解

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

3. 可运行项目

每个知识点都有当前的可运行项目下载,以确保项目一定可以运行,保障持续学习的信心。

学习一个较为复杂的项目,会有这样的体验:各个步骤差不多都跟着做了呀,但是为什么就是不能正确运行呢? 而且花很多时间,翻来覆去的改,越改越糟糕,越改越乱,犹如进入了茂密的丛林一般,几乎失去了方向。如果进入这样的状态,真正可怕的是一点点丢失的学习的信心和动力,自然而然地开始怀疑项目本身是不是有问题喔,各种疑虑加上止步不前, 最后实在是学习不动了,只好放弃了。

其实之所以跑不出来,大部分原因都是因为某个细节没有处理好。为了面对这种情况,我特意在每个学习步骤的右上角,准备当前学习进度对应的可以运行的项目。 如果自己老是搞不出来,那么就把右上角的项目下载下来,部署,运行,就跑通了。

这样做的作用是什么呢?

[list]

[*]第1,确保了项目是可以运行的,教程没问题,打消了项目本身就有问题的疑虑

[*]第2,此时就可以把自己写的代码与“标准答案” 代码进行比较,很快就能定位自己的问题所在了。 为此还特意在对应位置,为每个源代码提供了一个文件比较功能, 方便快速定位自己哪些 “细节” 不一样。

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

4. 可以期待的收获

看上去这个项目也不短嘛,那么真正学完这个项目后,能够得到什么呢?

4.1 典型业务场景的掌握

所谓的典型业务场景就是各种商业项目里,都会有类似或者接近的功能。 在这个项目里你掌握了这些业务场景的开发,去工作之后,做类似的就能驾轻就熟。 那么都有哪些业务场景呢?

4.2 设计模式的掌握

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

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

教程由个人完成,局限于个人的经验和视野,有诸多不足之处,请各位多多指点,谢谢。

仿天猫 java web_JAVA WEB项目教程-模仿天猫J2EE版相关推荐

  1. idea导入web项目教程

    idea导入web项目教程 导入web工程 直接选择要打开的工程,new window file->Project Setting->Project 注意选择jdk(我的是1.8版本) f ...

  2. jsp项目在idea需要导入什么依赖_idea中的java web项目(添加jar包介绍)和java maven web项目目录结构...

    java web项目 web项目下web根目录名称是可以更改的 idea中新建java web项目,默认src为Sources Root,当然也可以手动改,在Sources Root下右键只能新建Pa ...

  3. Java RESTful Web Service实战(第2版)

    Java核心技术系列 Java RESTful Web Service实战 (第2版) 韩陆 著 图书在版编目(CIP)数据 Java RESTful Web Service实战 / 韩陆著. -2版 ...

  4. SpringBoot实战项目教程----springboot天猫整站

    目录 一:技术准备 二:开发流程 三:本地演示 1 : 下载并运行 2 : 访问地址 3 : nginx 4 : nginx.conf 配置文件 5 : 启动nginx 6 : 访问测试 7 : 动静 ...

  5. 在tomcat上部署项目需要打成jar_Spring Boot Web 项目教程,SpringBoot与传统Web 优缺对比...

    1.引子 大家好,在接下里的一段时间里,我会给大家详细的介绍SpringBoot的基本使用,相信学完这门课程以后,你会对SpringBoot有一个清晰的认识,并且能够运用这门比较新颖的技术开发一些小程 ...

  6. Java springmvc web项目,基于maven的hello world入门级项目使用IntelliJ IDEA 2017版本

    IntelliJ IDEA使用教程 (总目录篇) 使用这个IntelliJ IDEA创建一个简单的Java web maven项目,我在前面的文章里面已经示范过了. 地址:IntelliJ IDEA ...

  7. java basedaoimpl_java web项目DAO层通用接口BaseDao与实现类BaseDaoImpl

    在spring+hibernate的web项目中,处理数据层通常会使用Spring框架提供的HibernateTemplate类提供的方法.通常的用法是每一个实体类对应的去写DAO层的接口和实现类.每 ...

  8. IntelliJ IDEA 12 创建Web项目 教程 超详细版

    原文 http://www.cnblogs.com/cnjava/archive/2013/01/29/2881654.html IntelliJ IDEA 12 新版本发布 第一时间去官网看了下   ...

  9. myeclipse java maven web 项目结构,Myeclipse 10 Maven 构建 Java Web 项目

    下载 Maven http://maven.apache.org/download.cgi,解压到任意非C盘位置,比如:D:\Java\apache-maven-3.1.0 打开 Myeclipse ...

最新文章

  1. python quit函数作用_Python常用函数学习笔记
  2. 某港企高管:将孩子送出去吧!
  3. Java 数字用二进制表示,以及原码,反码,补码、负数的二进制表示
  4. oracle分页数据,oracle 分页 数据重复 数据不正确
  5. 江苏有线门户网站服务器地址,江苏有线手机客户端的登录服务器
  6. 网络基础知识——以太网
  7. resnet50训练imagenet记录
  8. python两两组合求和_LeetCode-python 40.组合总和 II
  9. Linux shell:执行shell脚本的几种方式
  10. 05-雷海林-mysql备份原理与在TDSQL中的实践
  11. [Hands-on Lab (2) - 使用Helm部署OpenShift应用
  12. 服务器日志egl文件,【图片】Liddy's Linux编译日志(版本8.4)【蕾迪猫的linux吧】_百度贴吧...
  13. 1.6 Linux文件目录复制与重命名
  14. 《我是一只IT小小鸟》阅读笔记
  15. 人人网 校内- 日志分享
  16. 百度网盘更新,不限速了?
  17. MapGIS出现“存储服务错误,可能未启动”问题解决方案
  18. OJ每日一练——输出元音字母
  19. 国美易卡对IP层数据进行处理,国美易卡对TCP/IP的封装
  20. 07,springcloudalibaba_sentinel(流量卫兵)

热门文章

  1. 学成在线项目note
  2. 密码学 aes rsa 分段加密 填充 rsakey 生成
  3. 超Facebook,TikTok成全球下载量最大应用
  4. python pygame项目
  5. fomail邮箱lmap服务器,Foxmail如何同步企业邮箱IMAP收发邮件?
  6. Python-购物车
  7. 11、自动化基础:单元测试框架
  8. 【转】编程中的硬编码问题
  9. 信息系统分析与设计杨选辉_信息系统分析与设计
  10. 基于Python实现有效前沿(Efficient Frontier)