《在线商城项目实战-汤小洋》课程实战笔记

最近看了csnd学院汤小洋老师的视频课程《基于SSM技术的在线商城系统》[实战视频],跟着做了一遍,弥补了之前写的商城项目的许多缺陷,并做了如下笔记,mark一下。后续会整理代码,以及使用到的相关框架。

第一章 项目功能介绍及环境搭建

第一节 环境配置

Tip1父工程的打包方式必须为pom
Tip2父工程进行依赖的管理,使用dependencyManagement
Tip3按层划分工程

        分为:
        zshop_common,
        zshop_pojo,
        zshop_dao,
        zshop_service,
        zshop_frontweb,
        zshop_backweb工程
Tip4工程间依赖关系
依赖关系

第二节 页面展示

Tip1 静态资源
        静态资源可以放在WEB-INF下,也可以放在webapp下。放在WEB-INF的资源默认是无法直接访问的,需要配置映射关系。
        / 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url;
        /* 会匹配所有url:路径型的和后缀型的url(包括/login,.jsp,.js和*.html等。
Tip2配置spring-mvc.xml
        包括注解驱动,扫包,配置视图解析器,给静态文件添加映射路径

第二章 商品类型管理

第一节 商品类型管理-查询所有

Tip1创建数据库表
        在zshop_pojo中创建ProductType类(要实现序列化)(实现serializable接口的作用是就是可以把对象存到字节流,然后可以恢复。所以你想如果你的对象没实现序列化怎么才能进行网络传输呢,要网络传输就得转为字节流,所以在分布式应用中,你就得实现序列化,如果你不需要分布式应用,那就没那个必要实现序列化)

第二节 商品类型管理-分页

Tip1 后台分页插件pagehelper
        使用分页插件Pagehelper后端分页插件。将需要传入页面的信息封装到PageInfo对象中,PageInfo中不仅包含了当前页面的信息,还包含了当前页码,页面大小,下一页,上已页,总页数等信息。
Tip2 前台分页插件bootstrap paginator
        在jsp正文body中添加<ul id=”” />,然后js使用paginator操作,实现前台分页。
当页面为空时,bootstrapPaginator的PageInfo的当前页为1,总页数为0。

第三节 商品类型管理-添加

Tip1 Ajax
        使用Ajax实现添加商品类型,这里使用fastjson,注意在spring-mvc.xml中添加fastjson的配置。
Tip2 console
        可以在前端js使用console.log(result)来判断是否接受到返回的jackson数据。
Tip3 layer前台框架
        此外可以使用layer框架来实现好看的弹框功能。下载layer框架(文件夹),将其放在WEB-INF文件夹下面,在项目中引入layer.js,然后在js中使用。

第四节 商品类型管理-删除

Tip1 input元素的type=”hiden”属性
可以将一些信息放在隐藏的input中,方便调用。

第三节 商品类型管理-启用和禁用

第三章 商品管理

第一节 商品管理-添加

Tip1 文件上传功能实现
        使用表单提交数据时如果包含了上传文件,那么enctype=multipart/form-data;
        可以创建vo包用来封装商品信息;
        Springframework定义了一个CommonsMutipartFile对象用于文件类。
        文件上传还需要在spring-mvc中配置文件解析器;
        ProductVo对象使用了Web层特有组件,不能直接往Service层中传,解决办法:创建dto对象。
Tip2 DTO VO POJO
         DTO(Data Transfer Object)数据传输对象:用于视图层和服务层的数据传输。
         VO(view object) 视图对象:用于视图层向后端传输数据
         POJO(plain ordinary java object) 普通java对象
        可以使用数据拷贝工具Apache         Commons BeanUtils中的PropertyUtils类的copyProperties来拷贝VO对象到DTO对象中,DTO对象到POJO对象中
        在common工程中添加StringUtil类,实现方法renameFileName(String fileName);
        在dao工程中使用pojo类对象,不要使用dto,dto用在服务层;
Tip3 forward转发请求
        在返回页面时可以使用forward来实现转发请求。

第二节 商品管理-客户端表单数据

Tip1 表单校验框架bootstrapvalidator
        使用表单校验jar包:bootstrapvalidator,这里只使用bootstrapValidator.min.js和bootstrapValidator.min.css;
        使用notEmpty来检测商品名称是否为空;
        使用remote来检测商品名称是否已经存在;

第三节 商品管理-查询和修改

Tip1 表的关联:inner join,left join,right join
        inner join 内连:在两张表进行连接查询时,只保留两张表中完全匹配的结果集。
        left join 左连:在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录
        right join 右连:在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录
        full join :在两张表进行连接查询时,返回左表和右表中所有没有匹配的行
        当两个关联表之间存在同名列,需要对其中一个取别名。

第四节 商品管理-删除

第四章 系统用户管理

第一节 系统用户管理-查询

第二节 系统用户管理-添加

Tip1 serialize()方法的使用
        可以使用表单然后在js中调用serialize()方法一次性获取需要传入后台的元素值,实例:$(‘#from-admin‘).serialize()。

第三节 系统用户管理-多条件查询

Tip1 mysql动态查询
        多条件查询需要使用到mysql动态查询语句

第四节 系统用户管理-启用和禁用

        比较简单,代码暂时未写。

第五章 其他功能的实现

第一节 验证码的实现

        可以去网上找别人验证码代码,复制粘贴过来使用。
Tip1 bootstrapValidator的threshold
        使用bootstrapValidator的threshold可以使得在输入4位及以上的验证码后才进行校验,更人性化。

第二节 后台登陆的实现

第三节 前台商品展示

        ftp服务器暂时未使用。

第四节 用名名密码登录

Tip1 jsp:include
        将前端页面相同的页头页尾单独作为一个jsp文件保存,然后使用jsp:include来引入页头页尾,去除冗余代码。

第五节 登录局部刷新

Tip1 artTemplate框架
        这里使用artTemplate框架来实现。然后script标签的type属性可以设置为text/html(默认值为:text/javascrpt)用来写模板。
        模板中参数传递:通过json字符串实现,首先通过template(‘模板’,json串)方法传入参数,然后在script type=text/javascript 中通过‘{{属性名}}’来取值。

第六节 短信快捷登录

Tip1 www.juhe.cn 聚合数据(用于发送验证码)
Tip2 httpclient框架
        httpclient发送请求,使用htttClientUtils工具类封装httpclient发送请求方法
Tip3 sms(short message service)
Tip4 6位随机验证码的生成
        生成6位随机验证码:
String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000);

第七节 使用Redis设置短信验证码有效期

        暂时未学习redis。= =

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值