当前位置: 首页 > wzjs >正文

苏州网站建设有限公司谷歌搜索引擎363

苏州网站建设有限公司,谷歌搜索引擎363,网站上的导航栏怎么做,深圳网站建设公司fantodoisRepeatSubmit 方法用于检查当前请求是否为重复提交。它通过比较当前请求的参数和时间戳与之前存储在 Redis 缓存中的请求信息来判断是否为重复提交。如果是重复提交,则返回 true,否则返回 false。 深入解释 获取请求参数 String nowParams "&…

isRepeatSubmit 方法用于检查当前请求是否为重复提交。它通过比较当前请求的参数和时间戳与之前存储在 Redis 缓存中的请求信息来判断是否为重复提交。如果是重复提交,则返回 true,否则返回 false。

深入解释

  1. 获取请求参数
String nowParams = "";
if (request instanceof RepeatedlyRequestWrapper) {RepeatedlyRequestWrapper repeatedlyRequest = (RepeatedlyRequestWrapper) request;nowParams = HttpHelper.getBodyString(repeatedlyRequest);
}// body参数为空,获取Parameter的数据
if (StringUtils.isEmpty(nowParams)) {nowParams = JSON.toJSONString(request.getParameterMap());
}

首先尝试从请求体中获取参数,如果请求体为空,则从请求参数中获取参数,并将其转换为 JSON 字符串。
2. 构建当前请求数据

Map<String, Object> nowDataMap = new HashMap<>();
nowDataMap.put(REPEAT_PARAMS, nowParams);
nowDataMap.put(REPEAT_TIME, System.currentTimeMillis());

将当前请求的参数和时间戳存储在 nowDataMap 中。
3. 构建缓存键

String url = request.getRequestURI();
String submitKey = StringUtils.trimToEmpty(request.getHeader(header));
String cacheRepeatKey = CacheConstants.REPEAT_SUBMIT_KEY + url + submitKey;

使用请求的 URI 和消息头构建一个唯一的缓存键 cacheRepeatKey。
4. 从 Redis 缓存中获取数据

Object sessionObj = redisCache.getCacheObject(cacheRepeatKey);
if (sessionObj != null) {Map<String, Object> sessionMap = (Map<String, Object>) sessionObj;if (sessionMap.containsKey(url)) {Map<String, Object> preDataMap = (Map<String, Object>) sessionMap.get(url);if (compareParams(nowDataMap, preDataMap) && compareTime(nowDataMap, preDataMap, annotation.interval())) {return true;}}
}

从 Redis 缓存中获取之前存储的请求数据,并与当前请求数据进行比较。如果参数和时间戳都匹配,则认为是重复提交,返回 true。
5. 存储当前请求数据到 Redis 缓存

Map<String, Object> cacheMap = new HashMap<>();
cacheMap.put(url, nowDataMap);
redisCache.setCacheObject(cacheRepeatKey, cacheMap, annotation.interval(), TimeUnit.MILLISECONDS);

如果不是重复提交,则将当前请求数据存储到 Redis 缓存中,并设置过期时间。
总结
isRepeatSubmit 方法通过比较当前请求的参数和时间戳与之前存储在 Redis 缓存中的请求信息来判断是否为重复提交。如果是重复提交,则返回 true,否则返回 false。

http://www.dtcms.com/wzjs/429422.html

相关文章:

  • 做自动发卡密网站的教程seo的优化技巧有哪些
  • 域名网站建设方案南京百度seo排名
  • xv10相同网站鞋子软文推广300字
  • 网站文字链接宁波seo教程推广平台
  • ecshop网站标题站长工具使用方法
  • dm网站制作软件sem优化公司
  • 电子商务网站开发策划案全媒体广告代理加盟靠谱吗
  • 万网注册域名做简单网站网络营销措施有哪些
  • 网站都到哪里做推广青岛百度seo
  • 怎么自己做彩票网站吗网络舆情的网站
  • 公司地址怎么免费上地图seo行业岗位有哪些
  • 网站公司备案推广页面
  • 个人订阅号支持微网站的建设吗公司seo营销
  • 外贸建设网站重庆seo排名公司
  • php 网站开发收费百度权重是怎么来的
  • 装饰装修公司举例说明seo
  • 福清可以做宣传的网站网站建设关键词排名
  • 医疗器械网站建设方案满十八岁可以申请abc认证吗
  • 网站建设专家 金石下拉营销策略怎么写范文
  • 台州卫浴网站建设企业建站
  • 重庆石桥铺网站建设公司百度外推排名
  • 网络营销的5种方式嘉兴seo外包
  • 做网站维护有什么要求上海网络推广专员
  • 佛山顺德做网站技成培训网
  • 网站外链建设可以提升网站权重对还是错互联网推广工作好做吗
  • 做水果生意去哪个网站百度旧版本
  • 外贸网站建设公司咨询国外网站推广
  • 吉林省建设信息网官网入吉合肥网站优化软件
  • 衡阳公司做网站真正的免费建站在这里
  • word如何做网站链接怎么在网上推广产品