HelloBird——资源回收o2o平台
项目介绍
"HelloBird"是一个基于微信小程序搭建的资源回收o2o平台,目的是为了实现废旧资源的流转。在"HelloBird"中,用户可以轻松的获取生活垃圾的基本信息,并能根据自己的实际情况便捷考虑是否将废品出售,在用户选择好要出售的废品并提交订单之后,系统将自动派送回收员上门服务,收取废品,使用户足不出户就能将生活中的垃圾得到妥善处理,还能获得一定的收益,并且实现了资源的再利用。
功能需求如下:
项目架构
"HelloBird"项目客户端采用微信web平台,使用JavaEE做后台架构,数据采用的是关系型数据库MySQL。在后台架构上,采用SSM(Spring+SpringMVC+Mybatis)框架,Mybatis负责持久层操作,SpringMVC作为前端控制器,处理前台和后台的交互,Spring作为IOC容器,为Mybatis和SpringMVC提供支持(事物操作等)。
架构图如下:
页面逻辑图如下:
项目中遇到的问题
- 使用json进行前后台数据交互的格式: 该项目使用json作为前后台数据传输的格式,SpringMVC的两个注解非常友好的帮我进行封装于实现,封闭式@ResponseBody和@RequestBody,@ResponseBody负责将数据包装成json字符串返回给前台,@RequestBody则将从前台接收到的数据包装成对应的JavaBean对象。在使用过程中,出现了中文字符乱码问题,后来进行了解决。
1. 使用如下配置可解决字符乱码问题(全局设置):
<mvc:annotation-driven><mvc:message-converters><bean class="org.springframework.http.converter.StringHttpMessageConverter"><property name="supportedMediaTypes"><list><value>application/json;charset=UTF-8</value></list></property></bean></mvc:message-converters></mvc:annotation-driven>2.使用produces = "text/html;charset=UTF-8"也能解决中文乱码问题
@RequestMapping(value = "/regist", method = RequestMethod.POST, produces = "text/html;charset=UTF-8")
@ResponseBody
public Map<Integer, Object> regist(@RequestBody User user){Map<Integer, Object> map = new HashMap<>();try {//用户注册map = userService.regist(user);}catch (Exception e){System.out.println(e.getMessage());}return map;
}3.在请求头中进行设置
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/json;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.write(result);
上面所讲的第二种方法中,关于produces(还有一个 consumes),可以查看此博客,做更深了解:
https://blog.csdn.net/walkerjong/article/details/7994326
Transfer-Encoding:chunked和Content-Disposition:inline;filename=f.txt问题: 在做项目的时候,响应头里面出现了 Transfer-Encoding:chunked和Content-Disposition:inline;filename=f.txt,让我百思不得其解,后来经过多方查阅,终于让我弄明白了到底是设么意思。
- Transfer-Encoding:chunked 简单来说,Transfer-Encoding是一个Http的头部字段,意思是传输编码。而chunked是分块传输的意思,就是说对于输出内容长度不确定的,如gzip格式等,就会用到分块传输技术。参考博客:
- https://blog.csdn.net/whatday/article/details/7571451
- https://imququ.com/post/transfer-encoding-header-in-http.html
- Content-Disposition:inline;filename=f.txt 初遇这个响应头的时候我也是有点懵,不知道什么意思,后来也搞明白了。该属性设置的是在文件下载时对下载文件的一个标识字段。参考链接:
- https://blog.csdn.net/dabinge1/article/details/52587662
- session问题和token的使用: 该项目是基于微信小程序的,在保存用户登录状态和身份验证这一点上,我首先想到了用session,同时我想项目比较小,可以把用户的购物车放在session中,一次会话结束就将session里面的购物车清除,后来我发现了这其中的问题。首先:微信小程序不支持Cookie(意味着session也用不了),这在项目后期对于我的打击肯定是很大的,因为我的好多业务逻辑都是基于session的,session用不了那么项目就瘫痪了一大半,后来经过冷静思考也发现的我设计的问题,关于session的问题只是其次,用户的购物车放在session中,一次会话后就被清除,这显然是不合理的,对于用户的信息,我们需要把它固话在数据库中,后来我又重新增添一张表来保存用户的购物车,这个逻辑想明白之后,还有一点不知道怎么弄,session用不了,那用什么好呢?后来我想到了使用token。
- token是什么:token是一个加密的字符串,里面包含了后台给前台传递的加密信息(不容易被破解)
- https://ninghao.net/blog/2834
- https://dombro96.github.io/2017/12/11/浅谈token/
- token是什么:token是一个加密的字符串,里面包含了后台给前台传递的加密信息(不容易被破解)
一点总结——我的心里话
说实话,自己真正做完一个项目确实挺开心,特别是在把每一个接口都测试好,并且项目真正跑起来的时候,感觉身体特别放松,觉得付出的一切都值得。作为项目负责人,需要考虑的事情特别多,一边需要和团队成员沟通,讨论需求,讨论接口,另一边还需要思考如何进行后台的整个架构,还要关心项目的进度等等,虽然团队在磨合过程中确实出现了很多问题,比如由于前期的交流不充分,需求讨论的不清楚,导致后面的接口改了好多次。还有比如原先对微信小程序的机制不是太了解,差点导致项目崩盘等等。但好在我们都坚持了下来,不管这个项目做得好不好,但我们起码还是把它完成了,总的来说还是要谢谢我们的团队,谢谢这次做项目的经历,让我得到了锻炼与成长,同时也让我明白了作为一个项目负责人,应该明白如何和组员进行良好的沟通,应该有一个清晰的项目进度计划,应该制定一个完善的奖惩措施,应该统筹安排好每个分支的工作。确实,一次历练就是一次成长,一次成长对于整个人生来说弥足珍贵!
HelloBird——资源回收o2o平台相关推荐
- 基于微信小程序的再生资源回收平台设计与开发(论文+程序设计源码+数据库文件)
1 绪论 2 1.1 项目开发背景 2 1.2 项目开发意义 2 1.3 项目主要的内容 2 2 相关技术介绍及系统环境开发条件 3 2.1相关技术介绍 3 2.2系统环境开发条件 4 3 系统的需求 ...
- 2022年O2O平台还值得做吗
本地生活服务的诱人"蛋糕"十分可观,到2025年,我国本地生活服务市场规模将从2020年的19.5万亿元增长至35.3万亿元.由于"互联网+"和"懒人 ...
- O2O平台盈利模式有哪些
直击法:说脸打脸 这是最常规.直接的玩法,生产什么卖什么.比如餐饮.美发.商品零售等等,传统企业玩互联网目下相当一部分还是玩营销渠道,后端系统与平台,后端与供应链,等等,整个信息链条的打通还有一段距离 ...
- O2O平台模式为什么需要接入分账系统?
O2O的英文全称是Online To Offline,与传统的消费者在商家店里直接消费的模式不同,O2O平台模式是指线下商家能够入驻到线上平台,借助于互联网打通商家与消费者之间的联系,消费者可以在线上 ...
- 哪些平台属于典型O2O模式 O2O平台为什么要接入分账系统?
随着互联网的不断发展,电商企业成为现在商业模式的主力军,而电商所依靠的就是商城平台系统,自行开发和入驻更好的平台商城系统是常见的模式,不管O2O商业模式,还是哪种模式,想要得到更好的使用效果,就必须要 ...
- Linux线程退出、资源回收、资源清理的方法
首先说明线程中要回收哪些资源,理解清楚了这点之后在思考资源回收的问题. 1.子线程创建时从父线程copy出来的栈内存; 线程退出有多种方式,如return,pthread_exit,pthread_c ...
- java手动回收_浅谈java是如何做资源回收补救的
学习java的过程,我们经常谈论一个对象的回收,尤其是资源类型,如果没有显示的关闭,对象就被回收了,说明出现了资源泄漏.java本身为了防止这种情况,做了一些担保的方式,确保可以让未关闭的资源合理回收 ...
- java 线程池 资源回收_JAVA线程池资源回收的问题
最近项目中为了提高用户体验度,前台创建任务后台任务,用多线程来跑. 现在的场景:后台定时任务管理这两个线程池,一个最大线程数10个,一个最大线程数15.应用部署之后,不超过5个小时,服务器负载高,内存 ...
- linux 线程退出资源回收,有关linux线程资源回收的有关问题
有关linux线程资源回收的问题 使用linux c编程的,开启一个线程,这个线程中申请了一些资源.如果需要这个线程马上取消并且回收申请的资源怎么办啊? 前面使用了pthread_cancel()这个 ...
最新文章
- linux文本编辑nano
- html中的时间代码怎么写,html网页代码中的时间样式怎样设置
- java单例模式 三种_三种java单例模式概述
- 你是农村人吗?小时候没有自来水,每天喝的是什么水?
- 解决IDEA中Maven加载依赖包慢的问题
- 360服务器自动获取设置,360推“史上最严重安全漏洞”自动检测工具 用户一键获取补丁...
- 计算机软件质量保证计划示例
- 新春活动策划案例(共31份)
- 【Linux】POSIX信号量
- 指南针c语言程序,HMC5883L电子指南针单片机程序
- 坐在自己的命运之中——《大先生》鲁迅一生的最后一分钟
- 数字IC设计学习笔记_8位7段数码管1
- 第2章第6节:使用Slider滑杆在指定的范围内选择一个数值 [SwiftUI快速入门到实战]
- 【RPG黑暗之光】第四章· 物品模块
- python利用装饰器进行运行耗时分析
- 超详细Netty入门
- 开关电源空载吱吱声_导致开关电源啸叫的六种情况及解决方法
- 他是国家的儿子 如不再优秀请原谅他
- 天源财富:室温下成功合成新型稳定有机化合物
- 【x3daudio1_7.dll下载】x3daudio1_7.dll怎么安装