练手项目之天猫商城网站的总结

news/2024/5/15 17:44:19/文章来源:https://blog.csdn.net/qq_43365423/article/details/102392302

花时间练手的项目,怎能不做总结

  • 项目中用到的技术
  • 项目中用到的设计模式
    • MVC设计模式
    • Filter+Servlet+反射
    • 模块化的jsp设计
  • 做项目的流程
    • 需求分析
    • 实体类的设计
    • DAO类的设计
    • 后台管理的开发
    • 前台页面的开发
  • 项目中遇到的错误
  • 通过项目学到了什么

项目中用到的技术

Java SE基础;
前端:HTML,CSS,JavaScript,JQuery;
J2EE:Tomcat,Servlet,JSP,Filter;
数据库:MySQL;

项目中用到的设计模式

1.MVC设计模式贯穿了整个项目
2.Filter+Servlet+反射的设计模式
3.模块化的jsp设计

MVC设计模式

即模型(Model)、视图(View)、控制器(Controller)
模型就是数据(bean,dao);
视图就是网页,jsp,用来展示数据;
控制器就是把不同的数据,显示在不同的视图上。

Filter+Servlet+反射

原本一个功能需要对应一个Servlet,而后台管理需要增删改查编辑5种功能,所以仅仅后台就会需要30个Servlet,编程的成本还有出错的概率大大提高了。
所以就使用了这种设计模式,其中拦截器主要拦截浏览器的访问路径,对其进行判断,获取带有servlet名称和方法名称的字符串,转发到具体的servlet后通过反射调用指定的方法。
降低了开发成本,节约了大量时间。

模块化的jsp设计

通过jsp包含关系抽象出多个公共页面,并且把业务jsp按照功能,设计为多个小的jsp文件,便于维护和理解。

做项目的流程

1.需求分析
做一个项目,你当然要明白你要做什么功能。关于展示页面,后台的操作,还有它们之间的交互。
2.表结构的设计
表结构设计可以说相当于你建造大楼的地基,很重要。你需要想清楚在你这个项目中需要用到哪些表,以及表与表之间的关系。然后创建数据库和所需的表。
3.实体类的设计
根据创建好的表设计实体类,一个表对应着一个实体类。
4.DAO类的设计
根据实体类进行对应的DAO类的设计,包含有基本的CRUD方法和非CRUD方法,非CRUD方法比如说通过关键字查询、填充订单的订单项数据等等。
5.业务层设计
在此项目中DAO层比较详细,设计service层也只是调用DAO中的方法,倒显得麻烦了。所以在这个项目中直接使用Servlet调用DAO中的方法。
6.后台的原型以及开发
7.前台的原型以及开发

需求分析

1.后台方面,需要做对分类信息,产品信息的增删改查功能,还有对订单的查看,以及订单状态的修改功能。
2.前台方面,需要做产品的展示,产品的购买,订单状态的流转,登录注册等功能。

实体类的设计

通过表的列来创建相应实体类的属性,通过表与表之间的关系创建相应的集合。比如说产品类的属性应该有基本的产品信息,即产品的id、名称、小标题、原价、优惠价格、产品的库存数量、什么时候添加的产品、这个产品属于哪一个分类、该产品的首页图片、该产品的图片集合、产品的销量和评价数。

DAO类的设计

通过对应的实体类来设计对应的DAO类,DAO类中的方法应该具有基本的CRUD方法和非CRUD方法。比如说产品类的CRUD方法包含增删改,通过id查询、获取总数、分页查询、查询所有。非CRUD方法就包含查询某种分类下的所有产品、获取某种分类的产品总量、为分类填充产品集合、根据关键字查询产品、为产品设置主图片、为产品设置销量和评价数。

后台管理的开发

后台的管理基本是对数据库的增删改查操作。由于用户信息和订单信息很重要,故不需要相关的删除操作,而且都是由用户注册或生成订单,故后台也不需要相关的增加和修改功能,只需要查询功能即可。
1.分类管理
包含有设置分类的属性,设置分类下的产品的功能
2.用户管理
查看所有的用户
3.订单管理
主要是查看订单的详细信息,并且提供了发货按钮,用于修改订单状态信息。

前台页面的开发

在前台的页面中,几乎每一个页面都需要一些公共的代码,比如搜索框,页头,页脚的代码。所以能够抽出来公共的页面,来简化编程。
面对一些比较复杂的界面,比如首页来说,我们需要有横向的导航栏,还有竖向的分类信息栏,分类信息栏中又要显示具体的分类链接,再加上产品的信息。是很麻烦的一个界面。
故将首页拆分成公共页面:header.jsp、top.jsp 、search.jsp footer.jsp,再加上homePage.jsp就可以组成首页。然后homePage.jsp又可以分成分类加轮播的jsp和分类产品的jsp页面。对分类加轮播的jsp再进行拆分,将其拆分为分类的横向导航、竖向导航和轮播图三个jsp页面。首页的小页面关系图
后面的页面都可以根据首页的这种拆分小jsp页面的方法来做。

项目中遇到的错误

1.在jsp页面写错属性名,导致获取不到数据。
根据错误提示能够很快找到出错点并修改,主要原因粗心。
2.在对数据库进行插入操作并返回自增的id时报错
错误原因是在使用getGeneratedKeys方法的过程中,没有使用Statement.RETURN_GENERATED_KEYS,导致出错。
当然在插入数据后有很多方法可以返回自增长的id,不过其他的我看着有挺大缺点的,所以就没有用。
3.还有其他的一些错误,大都是粗心大意导致,就不再一一详谈了。

通过项目学到了什么

1.巩固了项目中所用到的基础知识;
2.比较清晰的开发思路和流程;
3.Filter+Servlet+反射的设计模式;
4.模块化jsp的思想。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_899515.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐一个好用的操作系统下载网站

MSDN - 原版之家 里面大多数的操作系统都有,而且不像其他网站,一下载就附带很多垃圾软件

微信公众号项目(公众号关注登录网站)

目录 文章目录 目录资料地址资料说明课程内容云盘资料概览 资料地址 微信公众号项目(公众号关注登录网站) 资料说明 项目是基于微信公众号完成的,需要学习公众号项目开发的同学,可以参考。资料包含完整源码、和视频教程,以及众多辅助资料。…

别人都不知道的“好用”网站,让你的效率飞快

✅🎡个人主页:程序猿追 ✅🎡系列专栏:【日常学习上的分享】 ✅🎡目前状态:创建Java学习之路(零基础到就业实战)系列,目前更新到JAVAWEB开发 ✅🎡作者简介&…

网站的json数据

我们知道,Python的一些数据可以用字典、列表等,网站也是这样,它们会用一种叫json的格式存储。 json(JavaScript Object Notation)是最早用于java的一种格式,后来被广泛应用。在网站一般会存储一些文件信息。…

利用springboot2,elFinder和TinyMCE来简化网站的文件管理,支持阿里云OSS

背景 需要在编辑文章的时候,能很好的管理相关素材,如图片和附件等。一直以来都是用编辑器的上传功能,造成很多素材的冗余,比如上传错了图片,错误图片无法便捷的删除,所以需要一个能够方便管理的素材库。现…

大型网站技术架构

架构演变第一步:物理分离webserver和数据库 最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管…

在服务器上搭建wordpress网站

开始之前先要知道如下几个linux命令,如果不会自行百度 1.mv命令 2.vim命令 3.zip解压命令 4.apt-get install 安装命令 5. cd 命令 写一份简约版走起! 0.首先在购置好服务器(腾讯云阿里云都行)后,选一个常用的系统,…

Java网站视频资源加密

----------------------------------------------------------分享此文章,只为让版权能够得到更多的保护---------------------------------------------------------------------------- 目前公司是做线上视频教育的,教育视频资源一直被盗取&#xff0c…

网站怎么做才能够真正的留住用户?

当今已是互联网的时代,各种网站层出不穷,各种网站优化的方式也千变万化,每个站长都希望自己能吸引的用户能越来越多,关注度能越来越高,能将越来越多的用户留在自己的网站,最好能将自己的网站变成一个“黑洞…

做网站如何怎么做到吸引用户和留住用户的运营思路

一直做产品,从未做运营,但这并不妨碍我谈谈对运营的理解。因为在互联网领域,产品和运营都是相通的,产品是要给用户提供价值,运营是让用户认识这种价值,它们相互依存,战略目标是一致的。任何运营…

前端程序猿常用网站总结

第一PPT 优品PPT 油猴 PPT超级市场 极简简历 简信 书签地球 https://www.bookmarkearth.com/ 小图标 fontasome 精灵图在线编译 https://css.spritegen.com/ 在线转ico图标 https://www.bitbug.net/ 阿里图标库 蓝湖 摩客 解压缩文件 7.zip 站长素材 字体免费、 …

介绍几个练习机试的网站

竟然好久没有没有写博客了,最近为了考研复试在练习机试,九度OJ关闭了好可惜,但是我还找到几个比较不错的网址,放上来供参考一下。 牛客网 链接到的是考研专题(感觉对考研复试比较有针对性所以放最前面了,…

看SEO老鸟如何用一篇文章教会你写作

相信对于很多站长来说,建站发外链,搞点事件营销不在话下,甚至可以说信手拈来,但是一提到写文章。我估计很多站长都会立即没了精神头,倒不是说写文章很难,但是对于大部分技术宅的我们来说写文章的确是一件痛…

网站性能提升之采用FreeMarker实现网页静态化

摘要 众所周知,随着网站的访问量增加,如何给用户以良好的访问体验就显得尤为重要。提升网站性能便成为一些网站面临的一大难题,像hao123这样的导航网站要提升网站的性能只要部署的web服务器数量足够就可以承载超大规模的访问量,如…

RHCE-Day18(2)-LNMP搭建网站

RHCE-Day18(2)-LNMP搭建网站 使用LNMP架构部署动态网站环 1.源码包程序 使用源码包来安装服务程序具有两个优势。 源码包的可移植性非常好,几乎可以在任何Linux系统中安装使用,而RPM软件包是针对特定系统和架构编写的指令集,必须严格地符合…

网站站长必备的六款网页负载、网速性能测试工具

转自:http://www.cnplugins.com/zhuanti/sixwebmastertestplugins.html 有大数据表明,一个网页打开的速度超过4秒,用户就会关掉页面,对于网站来说就是流失到一个潜在的客户。有什么一些开发者插件可以帮助我们站在来及时的检测自己…

大型网站技术架构

作者:xlzd 链接:https://www.zhihu.com/question/20657269/answer/101795180 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 1. 初始阶段的网站架构 一般来讲,大型网站都是从小型网站发展而来,一开…

Java开发牛人十大必备网站

本文由 ImportNew - 张文太 翻译自 programcreek。如需转载本文,请先参见文章末尾处的转载要求。 ImportNew注:如果你也对Java技术翻译分享感兴趣,欢迎加入我们的 Java开发 小组。参与方式请查看小组简介。 以下是我收集的Java开发牛人必备…

Java开发牛人十大必备网站

本文由 ImportNew - 张文太 翻译自 programcreek。如需转载本文,请先参见文章末尾处的转载要求。 ImportNew注:如果你也对Java技术翻译分享感兴趣,欢迎加入我们的 Java开发 小组。参与方式请查看小组简介。 以下是我收集的Java开发牛人必…

Python Django windows 环境配置---(网站开发)

学习做网站纯属个人的兴趣,就选择了Python对网站的开发。 下载Python 可以在Python官方网站下载下载完成以后就可以进行环境配置。环境配置路径就不做详细介绍了,可以在网上搜索出来。安装Django 在配置完Python以后就可以在Django官网下载程序包了&a…