Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 

4.9 KiB

快递代取系统

版权

用的是一个大佬放在github上的前端代码,但是我现在找不到是哪个了

如果侵权的话,请联系我:)

介绍

  • 前后端分离

  • 前端用jquery的ajax发送请求

  • 后端使用springboot 提供json的api给前端

软件架构

软件架构说明

安装教程

  1. 先在mysql中跑一下table.sql文件,创建表
  2. 改一下src/main/resources/mybatis-config.xml(改一下db,还有密码)
  3. 用idea打开直接运行Application即可

使用说明

  1. 随便点就行
  2. xxxx
  3. xxxx

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

开发日志

自定义Message码

错误码

-1 登录:用户名不存在

-2 登录:密码错误

-3 注册:用户名已存在

-4 检查session:用户还未登录

正确码

1 登录成功

2 注册成功

3 用户已经登录

自定义订单状态

0:未接单 unpick

1:已接单 pick

2:已送达 arrived

3:已完成 completed

4:已取消 canceled

5:已中止 terminated

后端接收ajax数据

2021/01/08

今天遇到了一个很坑爹的问题

jquery的ajax传给后端的数据springboot居然接收不到

servlet接收ajax

因为springboot本质上是基于servlet的,所以看一下servlet接收ajax是什么样子的

用ajax的前端代码如下:

image-20210108231726208

正常用表单提交的方法如下:

image-20210108232120541

后端代码如下:

image-20210108231944550

用ajax发数据,结果如下:(好像第二行最前面少了一个问号?不知道表单提交的有没有)

image-20210108232255322

正常表单提交,结果如下:

image-20210108232403810

第二行为null是因为流只能读取一次

修改以下后端代码,看看用表单提交的话InputStream是什么样的

image-20210108232529868

输出!

image-20210108232612889

fuck!我一开始还以为是最前面少了个问号的关系,结果正常用表单提交最前面也是没有问号的

这个问题我没找到解决方法(似乎只能自己解析InputStream了?)

ajax那边不管data的数据有没有加上JSON.stringify()都不行

山穷水尽疑无路 ,柳暗花明又一村

我又回头搜了一下springboot和ajax,有了重大发现

springboot接收ajax

image-20210109000921900

==注意画红框的这个类,这个类是需要可序列化的!!!==

image-20210109001010687

==前端传json时,需要加上JSON.Stringify==

image-20210109103550442

ajax获取后端返回的数据

又碰到一个坑。。。

按理说ajax这么写就行了,我还特意加了async:false来取消异步

image-20210109102502329

结果前端执行的是error函数。。。

后来发现:

前端设置了希望后端发来的类型(dataType:"application/json")

但是后端没有设置返回类型

把dataType删了就行

mybatis一级缓存的禁用

因为mybatis有一级缓存,作同一个查询时,会复用上次的结果

自己通过cmd操作mysql(修改表中的数据),不会使缓存失效

只有通过mybatis修改数据,才会使一级缓存失效

所以怎么禁用一级缓存呢?

==配置文件==

mybatis:
  configuration:
    cache-enabled: false  #禁用二级缓存
    local-cache-scope: session  #一级缓存指定为session级别
    local-cache-scope: statement #一级缓存指定为statement级别, 相当于禁用一级缓存

==手动清除==

session.clearCache();