项目回顾(卖淘乐【电子物品回收网站】)

运用框架:

  1. ssmp:spring springmvc mybatis-plus

运用知识:

  1. Spring: IOC DI AOP
  2. SpringMVC: 对前端返回数据的处理,对返回给前端数据的处理,JSON数据的请求响应,拦截器的运用
  3. mybatis-plus:BaseMapper的运用,wrapper的运用,mapper.xml文件中的增删查改(where,in,order by,set,association,collection)
  4. 前端:js,jquery
  5. Nginx服务器的简单使用

项目依赖:

<dependencyManagement>
    <dependencies>
       <!--mysql驱动依赖-->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.47</version>
       </dependency>
       <!--mybatis-plus依赖-->
       <dependency>
           <groupId>com.baomidou</groupId>
           <artifactId>mybatis-plus</artifactId>
           <version>3.4.2</version>
       </dependency>
       <!--druid连接池依赖-->
       <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>druid</artifactId>
           <version>1.1.16</version>
       </dependency>
       <!--spring的核心依赖-->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>5.3.9</version>
       </dependency>
       <!--SpringAOP依赖-->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-aspects</artifactId>
           <version>5.3.9</version>
       </dependency>
       <!--spring整合单元测试依赖-->
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-test</artifactId>
           <version>5.3.9</version>
       </dependency>
       <!--spring整合事务依赖-->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-tx</artifactId>
           <version>5.3.9</version>
       </dependency>
       <!--spring声明式事务的依赖-->
       <dependency>
           <groupId>org.aspectj</groupId>
           <artifactId>aspectjweaver</artifactId>
           <version>1.9.6</version>
       </dependency>
       <!--spring整合持久层依赖-->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-jdbc</artifactId>
           <version>5.3.9</version>
       </dependency>
       <!--springmvc的依赖-->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-webmvc</artifactId>
           <version>5.3.9</version>
       </dependency>
       <!-- spring内部json处理依赖 -->
       <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-databind</artifactId>
           <version>2.12.3</version>
       </dependency>
       <!--javaWeb的依赖-->
       <!--servlet依赖-->
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>javax.servlet-api</artifactId>
           <version>3.1.0</version>
       </dependency>
       <!-- jsp依赖 -->
       <dependency>
           <groupId>javax.servlet.jsp</groupId>
           <artifactId>jsp-api</artifactId>
           <version>2.1</version>
       </dependency>
       <!-- jstl依赖 -->
       <dependency>
           <groupId>javax.servlet.jsp.jstl</groupId>
           <artifactId>jstl</artifactId>
           <version>1.2</version>
       </dependency>
       <dependency>
           <groupId>taglibs</groupId>
           <artifactId>standard</artifactId>
           <version>1.1.2</version>
       </dependency>
       <dependency>
           <groupId>javax.servlet.jsp.jstl</groupId>
           <artifactId>jstl-api</artifactId>
           <version>1.2</version>
       </dependency>
       <!--其他依赖-->
       <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>1.18.12</version>
       </dependency>
   </dependencies>
</dependencyManagement>

数据库分析

首页相关数据关联:
在这里插入图片描述
评估关联表分析:
在这里插入图片描述
购物车关联表分析:
在这里插入图片描述

项目需求

  1. 首页页面展示:要求分类,品牌,商品通过数据库查询展示,且在展示商品时要注意默认界面访问,要求分页处理,图片展示(nginx服务器的使用)。
  2. 评估页面展示:要求展示指定商品的价格趋势和最高价格,在评估功能界面分为三大板块,根据数据库的数据将不同商品的不同评估项列入评估功能之中(注意多选与单选的区别)。
  3. 价格统计页面展示:要求展示评估之后的价格,由用户决定是否取用该评估价格,重新评估返回上一界面,同意评估加入购物车能够购买
  4. 购物车页面展示:要求展示物品名称,物品评估信息,物品图片等信息,实现多选购买操作,注意多选的部分逻辑问题

项目回顾

1. 首页设计

实现:

  • 前端页面向后端之发送了一次请求,一次请求中包含了数据库中与首页相关的五张表格,通过五表联查返回了分类、品牌、商品的信息,然后大部分的工程都是前端来设计,其中最难的部分就是分页处理。

缺陷

  • 五表联查听起来好像挺流弊的样子,但是其实这是一个很蠢的方法,举一个实例来说:在以后的开发环境中一个表的数据一般少的都有几千条数据,如果五表联查,四次join,会发现数据量达到了一个惊人的地步,而且在进行分页处理的时候几乎都是用前端解决,这对前端来说是一个比较重的任务,还不如每次点击页码都发送一次ajax请求,通过后端的分页处理插件进行处理。
    所以正确的对首页的处理方式是:两次三表联查,分类表和品牌表一次,品牌表和商品表一次,通过这两次来分配ajax请求,然后根据具体的分页要求来向后端发送具体的分页请求。

2. 评估页面设计

实现

  • 评估页面是在首页的基础之上,通过首页的点击商品事件实现调转,在点击商品的时候会将商品的id记录下来,然后调转到评估页面之后就获取id然后根据id向后端发送ajax请求,通过请求来得到商品的评估项和该评估项所需要折扣的金额,然后经过用户对三大评估项的点击之后得到所有的评估项详情,根据详情在前端计算好金额,然后放进cookie中,同时将评估详情也存进cookie中(用数组的形式),这样存储是方便是之后的价格展示之后,往购物车中添加数据。

缺陷

  • 在评估页面中存在着一个致命的缺陷就是将价格存在了cookie中,由于cookie的不安全性,导致敏感信息很容易被篡改,从而造成巨大的损失,还有一方面的安全问题,举个例子来说吧,就是在之后的购物车添加的时候,我是通过cookie中的信息来发送ajax,如果这个时候用户不是通过正常流程进入购物车页面,而是通过postman工具去访问,这个时候他就可以随意更改价格和评估信息,这样也存在着极大的安全问题。

3. 价格显示页面设计

实现

  • 在此界面没有需要过多关注的点,就是通过cookie来获取之前操作所得到的价格并显示而已,然后根据价格由用户判断是否是加入购物车就还是重新选择。然后最重要的一个点就是用户没有登录不能下单,如果点击下单会跳转到登录页面,还有一个非常重要的点就是通过点击下单之后在去登录,在登录成功后要跳转到下单的界面而不是首页

缺陷

  • 在此界面中缺少了对之前该商品的价格信息的保护导致用户不好判断当前价格的合理性(应该在对价格信息进行处理的时候要有一个基准来判断此价格信息是否合理),还有就是没有实现页面的合理性跳转,

4. 购物车界面设计

实现

  • 在此界面中其实跟首页差不多,也是运用了五表联查,通过五个表带出了购物车的基本信息,然后通过前端显示,这个时候也有一个前端比较苦难的点就是,多选购物车的问题

缺陷

  • 在此界面中存在着很多问题,首先最大的问题就是没有对之前传入的购物车的信息没有进行一个评估是否正确,然后就是没有实际下单功能,总之此界面还存在着很多问题

5. 登录界面的设计

实现

  • 登录界面存在着很多值得学习的地方(还有一些功能有些懵,毕竟是拷贝人家的),首先运用Spring中的AOP技术来记录每一次登录信息,运用注解在方法上添加描述信息对用户访问的方法进行记录,对json数据进行处理,对返回给前端的数据进行封装处理,包括自定义状态码和状态信息还有核心数据,通过令牌技术对验证码过度刷新进行限制,过滤器限制用户访问

问题

  • 比如验证码刷新控制、验证码过期和过滤器,还有注解,MD5加密之后两次加盐对密码加密等都不够熟悉。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值