【前言】

商城项目实战day1心得:
   今天正式进入商城的项目实战。以前,总是写个小程序,里面弄个main方法。或者做个小网页,验证验证一下是否有做出符合要求的效果就可以。通过今天第一天的实战效果来看,大部分写出来的代码以前都做过,但是感觉代码规范方面得到了提高。
  今天做了用户模块的功能,包含用户注册功能,用户登录功能,用户退出功能。其中,注册功能又包括了异步校验用户名是否存在,生成一个注册用户激活码,给用户在注册表单填写的邮箱发送用户激活码这三个比较难的功能。下面是总结好的个人收获。
  (1).MVC思想:进入一个页面时候,不能直接进入jsp页面。而是要先进入处理该页面的Servlet。进行后台处理数据以后,在Servlet中返回该页面。今天在进入首页index.jsp,进入到jsp ,马上就写了一个标签<jsp forword page ="IndexServlet路径?method=index"/> 然后index()方法里面直接转发到index.jsp。这样做尽管有些毫无意义。但是符合了MVC的设计思想。
 (2).用一个UserServlet解决了所有用户模块功能。之前,做一个注册,生成一个注册Servlet。做一个登录,生成一个登录Servlet...一个商品的增删改查和分页下来,有9个Servlet。这样子,限定了Servlet只能处理一个功能。但是,通过昨天学习了动态代理,能增强一个类的方法。通过动态代理写了一个所有servlet都应该继承的BaseServlet工具类。BaseServlet里面有个service()方法。我们知道,一个servlet如果有写service()方法的时候,不管是post请求或get请求,只要有请求访问servlet,都会自动优先执行service(),并且不会再执行doget()和dopost()这两个方法。
     UserServlet继承了BaseServlet,就得到了BaseServlet这个父类的service()方法。这样,每次有请求访问到UserServlet,就执行了service()。在sevice()里面。我们每次要访问Servlet都要带一个方法名。然后通过这个方法名。利用反射得到这个方法,并让它执行。
    按照这样的思路,UserServlet只要写好注册,异步验证,登录,激活用户等方法,当有请求带着方法名来访问UserServlet时,就会被自动调用。所以,UseServlet能写所有用户模块的功能。
3)在注册功能中,当用户名能被注册,就通过UUID生成一个64位的用户账户激活码code;这个code一存放到数据库中,二是通过邮箱jar包mail.jar。构建了一个MailUtils工具类,我们通过易邮邮箱服务器管理软件,自己建立一个邮箱账号service@store.com代表官方账号。用户填写的邮箱账号是收件方。通过MailUtils的构建邮件发送操作。官方账号将带有访问UserServlet的激活方法active发送给了用户的邮箱。用户点击了链接就携带了code访问UserServlet的active方法。然后active方法通过这个code与数据库中的code比较。如果相等。就表示是正确的激活码。把数据库中的激活状态state设置成2 .就表示这个用户激活了。
4)在验证用户是否登录成功。除了判断用户名是否正确,还需要用户的状态是否是激活的。三者都满足才算激活成功。
5)退出功能的核心原理就是消除session中存放的用户实体。采用invalidate()手动销毁的方法。以后如果做自动登录,也要销毁cookie中的用户实体
6)在注册表单中,有一项生日,是输入框形式的,上传到Servlet中,得到的是字符串类型的生日日期,但是我们的User类的生日变量是Date的。这样子,通过JavaBean封装会出现String和Date不匹配的情况,就会报错。通过工具类MyDateConverter注册,可以完成String 类型向Date类型的转换。了解即可

总结,项目运用到的综合知识很多。现在离能独立实现完整功能还有不小的差距,希望通过不断总结方法,掌握知识运用技巧,理解学习过的知识,坚持做完每日的模块功能,提高编程水平。

【用户功能模块代码】

web项目电商网站开发实战(1)相关推荐

  1. 微软ASP.NET 电商网站开发实战 MVC6 +HTML5 +WCF+WebAPI+NoSQL+mongoDB+Redis+Core视频 代码 面试题...

    <微软ASP.NET 电商网站开发实战 MVC6 +HTML5 +WCF+WebAPI+NoSQL+mongoDB+Redis+Core 视频 代码 面试题 >下载网盘:https://y ...

  2. Django项目之Web端电商网站的实战开发(一)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 项目源码下载 目录 一丶项目介绍 二丶电商项目开发流程 三丶项目需求 四丶项目架构概览 五丶项目数据库设计 六丶项目框架搭建 一丶 ...

  3. 电商系统开发实战-用户微服务基础模块开发

    电商系统开发实战-用户微服务基础模块开发 1.用户微服务项目开发之收货地址查询接口开发 1.1 配置文件配置 application.yml server:port: 9001spring:appli ...

  4. 简易版电商推荐系统开发实战Hive

    简易版电商推荐系统开发实战 数据来源 数据转换 Pandas->MySQL 用Sqoop把数据导入Hive 推荐算法 Mahout安装 itembase协同过滤算法 进行推荐 实验结果 这是从H ...

  5. B2B制造业电商网站开发,整合提高机械设备市场资源配置效率

    传统机械设备制造业怎么在B2B电商网站营销中占据一席之地?现在的电商商城网站售卖的商品大都是跟快消零售.家具电器.家具家居等类目,机械设备企业通过定制一个B2B制造业电商商城同样可以实现在电子商务平台 ...

  6. 浅谈电商网站开发中用户会话管理机制的设计和实现原理

    笔者由于工作需要,最近对国内外两款知名的电商网站的用户会话管理(User Session Management) 的实现机制做了一些调研,这里把我学习到的一些知识分享给各位同行,希望起到抛砖引玉的作用 ...

  7. 2019年B2B电商网站开发重点功能全解析!

    目前,不少制造企业都将B2B电商网站视为其数字化转型过程中必不可少的关键资产.我们在上篇文章中提及78%的B2B跨国企业均已开始涉猎在线销售,且绝大多数未进行数字化电商的企业,都计划在2019年投入到 ...

  8. php电商网站开发流程图,php网上购物平台设计+ER图+流程图.doc

    php网上购物平台设计ER图流程图 php网上购物平台设计+ER图+流程图 摘要:广义来说,电子商务是指电子工具在商务活动中的应用.狭义来说,电子商务是在技术.经济高度发达的现代社会里,掌握信息技术和 ...

  9. 【笔记2-环境配置及初始化】从0开始 独立完成企业级Java电商网站开发(服务端)

    准备工作 Linux系统安装 云服务器部署 概要 申请和配置 域名的购买.解析.配置.绑定流程 用户创建实操 环境安装及部署 JDK.Tomcat.Maven下载安装及配置 vsftpd下载安装及配置 ...

最新文章

  1. 2022-2028年中国数字化档案加工行业市场深度分析及发展策略分析报告
  2. 高德地图关键字搜索oc版
  3. 「AI不惑境」网络深度对深度学习模型性能有什么影响?
  4. python链接安卓 跳一跳
  5. 自动驾驶小车循迹 图像二值化方法
  6. python 中的 and / or
  7. Netty1:初识Netty
  8. 2013.11.18—2013.11.22周总结
  9. th标签能包裹select吗_电影《八佰》过后,他能摘掉马思纯前男友标签了吗?
  10. MySQL笔记-InnoDB中Record Lock与Gap Lock
  11. C/C++排序算法(5)归并排序
  12. Hooks解决了什么问题?
  13. GDB 调试命令讲解-转
  14. 如何有效使用Project
  15. android studio单元测试插件,Android Studio单元测试插件下载
  16. 等价类划分法设计测试用例
  17. Spring Boot应用在kubernetes的sidecar设计与实战
  18. java设置excel整列格式,poi excel设置列格式方法添加
  19. linux系统文件名颜色含义
  20. 怎么在html中复制粘贴图片,如何复制其他网页上的文章和图片

热门文章

  1. 手机信令数据怎么获得_更换手机怎么转移数据?手机备忘录便签数据如何转移?...
  2. CTFHUB——反射型XSS详解
  3. java调用百度地图API根据地理位置获取经纬度
  4. 我敢打赌你们都不知道,在微软中国研究院,我们拥有许多位世界一流的多媒体研究方面的专家。——比尔·盖茨
  5. web 项目 连接mycat 读写分离失效问题
  6. 泰州5万多人须更换身份证 过期身份证将无法登机
  7. 06年java星战ol,《星战三国》微端网游 左转是网游右拐是页游
  8. 使用海康摄像头保存的mp4文件,无法web端预览的问题,现已解决,记录一下
  9. [ZZ]Windows磁盘驱动基础教程
  10. 在ibatis中查询返回List集合的问题