You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

244 lines
4.2 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. # 快递代取系统
  2. ## 版权
  3. 用的是一个大佬放在github上的前端代码,但是我现在找不到是哪个了
  4. 如果侵权的话,请联系我:)
  5. ## 介绍
  6. - 前后端分离
  7. - 前端用jquery的ajax发送请求
  8. - 后端使用springboot
  9. 提供json的api给前端
  10. ## 软件架构
  11. 软件架构说明
  12. ## 安装教程
  13. 1. 先在mysql中跑一下table.sql文件,创建表
  14. 2. 改一下src/main/resources/mybatis-config.xml(改一下db,还有密码)
  15. 3. 用idea打开直接运行Application即可
  16. ## 使用说明
  17. 1. 随便点就行
  18. 2. xxxx
  19. 3. xxxx
  20. ## 参与贡献
  21. 1. Fork 本仓库
  22. 2. 新建 Feat_xxx 分支
  23. 3. 提交代码
  24. 4. 新建 Pull Request
  25. # 开发日志
  26. ## 自定义Message码
  27. ### 错误码
  28. -1 登录:用户名不存在
  29. -2 登录:密码错误
  30. -3 注册:用户名已存在
  31. -4 检查session:用户还未登录
  32. ### 正确码
  33. 1 登录成功
  34. 2 注册成功
  35. 3 用户已经登录
  36. ## 自定义订单状态
  37. 0:未接单 unpick
  38. 1:已接单 pick
  39. 2:已送达 arrived
  40. 3:已完成 completed
  41. 4:已取消 canceled
  42. 5:已中止 terminated
  43. ## 后端接收ajax数据
  44. 2021/01/08
  45. 今天遇到了一个很坑爹的问题
  46. jquery的ajax传给后端的数据springboot居然接收不到
  47. ### servlet接收ajax
  48. 因为springboot本质上是基于servlet的,所以看一下servlet接收ajax是什么样子的
  49. 用ajax的前端代码如下:
  50. <img src="image-20210108231726208.png" alt="image-20210108231726208" style="zoom:80%;" />
  51. 正常用表单提交的方法如下:
  52. ![image-20210108232120541](image-20210108232120541.png)
  53. 后端代码如下:
  54. ![image-20210108231944550](image-20210108231944550.png)
  55. 用ajax发数据,结果如下:(好像第二行最前面少了一个问号?不知道表单提交的有没有)
  56. ![image-20210108232255322](image-20210108232255322.png)
  57. 正常表单提交,结果如下:
  58. ![image-20210108232403810](image-20210108232403810.png)
  59. 第二行为null是因为流只能读取一次
  60. 修改以下后端代码,看看用表单提交的话InputStream是什么样的
  61. ![image-20210108232529868](image-20210108232529868.png)
  62. 输出!
  63. ![image-20210108232612889](image-20210108232612889.png)
  64. fuck!我一开始还以为是最前面少了个问号的关系,结果正常用表单提交最前面也是没有问号的
  65. 这个问题我没找到解决方法(似乎只能自己解析InputStream了?)
  66. ajax那边不管data的数据有没有加上JSON.stringify()都不行
  67. **山穷水尽疑无路 ,柳暗花明又一村**
  68. 我又回头搜了一下springboot和ajax,有了重大发现
  69. ### springboot接收ajax
  70. ![image-20210109000921900](image-20210109000921900.png)
  71. ==注意画红框的这个类,这个类是需要可序列化的!!!==
  72. ![image-20210109001010687](image-20210109001010687.png)
  73. ==前端传json时,需要加上JSON.Stringify==
  74. <img src="image-20210109103550442.png" alt="image-20210109103550442" style="zoom:80%;" />
  75. ## ajax获取后端返回的数据
  76. 又碰到一个坑。。。
  77. 按理说ajax这么写就行了,我还特意加了async:false来取消异步
  78. ![image-20210109102502329](image-20210109102502329.png)
  79. 结果前端执行的是error函数。。。
  80. 后来发现:
  81. **前端设置了希望后端发来的类型(dataType:"application/json")**
  82. **但是后端没有设置返回类型**
  83. 把dataType删了就行
  84. ## mybatis一级缓存的禁用
  85. 因为mybatis有一级缓存,作同一个查询时,会复用上次的结果
  86. 自己通过cmd操作mysql(修改表中的数据),不会使缓存失效
  87. 只有通过mybatis修改数据,才会使一级缓存失效
  88. 所以怎么禁用一级缓存呢?
  89. ==配置文件==
  90. ```yaml
  91. mybatis:
  92. configuration:
  93. cache-enabled: false #禁用二级缓存
  94. local-cache-scope: session #一级缓存指定为session级别
  95. local-cache-scope: statement #一级缓存指定为statement级别, 相当于禁用一级缓存
  96. ```
  97. ==手动清除==
  98. ```java
  99. session.clearCache();
  100. ```