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

池州网站建设兼职微信官网登陆

池州网站建设兼职,微信官网登陆,备案的网站必须打开吗,汨罗做网站防重复提交#xff1a;自定义注解 拦截器#xff08;HandlerInterceptor#xff09; 一、思路#xff1a; 1、首先自定义注解#xff1b; 2、创建拦截器实现类#xff08;自定义类名称#xff09;#xff0c;拦截器#xff08;HandlerInterceptor#xff09;; 3…防重复提交自定义注解 拦截器HandlerInterceptor 一、思路 1、首先自定义注解 2、创建拦截器实现类自定义类名称拦截器HandlerInterceptor; 3、创建类配置拦截器路径拦截URL规则; 二、代码示例 1、首先自定义注解 import java.lang.annotation.*;/*** ClassName Resubmit* Descripition 自定义注解-防重复提交* Author * Date 2023/8/31 10:38*/ Documented Retention(RetentionPolicy.RUNTIME) Target({ElementType.TYPE, ElementType.METHOD}) public interface Resubmit {/*** 默认过期时间* 单位:秒** return*/int value() default 100;/*** 频繁请求提示语** return*/String messge() default 请求过于频繁,请稍后再试!;}2、创建拦截器实现类自定义类名称拦截器HandlerInterceptor; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map;/*** ClassName ResubmitInterceptorUtil* Descripition 防重复提拦截器工具类* Author * Date 2023/8/31 10:52*/ Slf4j Component public class ResubmitInterceptorUtil implements HandlerInterceptor {// key: 固定前缀private static final String FIXED_SESSION repeatData;Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {try {if (handler instanceof HandlerMethod) {HandlerMethod handlerMethod (HandlerMethod) handler;// 请求方法Method method handlerMethod.getMethod();// 获取自定义注解-防重复注解(Resubmit)Resubmit annotation method.getAnnotation(Resubmit.class);// 判断方法是否添加自定义注解(Resubmit)if (annotation ! null) {//如果重复相同数据if (repeatDataValidator(request)) {// 自定义返回结果类Result result new Result();result.setCode(500);result.setMessage(annotation.messge());// 设置字符集编码response.setCharacterEncoding(UTF-8);// response.getWriter().write(JSON.toJSONString(请勿频繁提交请求,稍后再试.));response.getWriter().write(JSON.toJSONString(result));return false;} else {return true;}}return true;} else {return true;}} catch (IOException e) {log.error(防重复提拦截器工具类异常, e);return false;}}/*** 验证同一个url数据是否相同提交,相同返回true** param request* return*/private boolean repeatDataValidator(HttpServletRequest request) {// 获取POST请求体-body-入参String params getRequestBodyParam(request);// 获取请求路径String url request.getRequestURI();MapString, String map new HashMap();// 组装Map key: url、 value:url请求方法体时间map.put(url, params);String nowUrlParams JSON.toJSONString(map);Object preUrlParams request.getSession().getAttribute(FIXED_SESSION);//如果上一个数据为null,表示还没有访问页面if (preUrlParams null) {//如果上一个数据为null,表示还没有访问页面request.getSession().setAttribute(FIXED_SESSION, nowUrlParams);return false;} else {//如果上次url数据和本次url数据相同则表示重复添加数据if (preUrlParams.equals(nowUrlParams)) {log.info([请求频繁提交 repeatDataValidator URL :{}; param :{}], url, params);return true;} else {//如果上次 url数据 和本次url加数据不同则不是重复提交request.getSession().setAttribute(FIXED_SESSION, nowUrlParams);return false;}}}/*** 获取请求体-body-入参** param request* return*/private String getRequestBodyParam(HttpServletRequest request) {BufferedReader bufferedReader null;StringBuffer stringBuffer new StringBuffer();try {bufferedReader request.getReader();String str null;while ((str bufferedReader.readLine()) ! null) {stringBuffer.append(str);}bufferedReader.close();} catch (IOException e) {log.error(解析入参异常, e);} finally {if (bufferedReader ! null) {try {bufferedReader.close();} catch (IOException e) {log.error(解析入参异常, e);}}}return stringBuffer.toString();} }3、创建类配置拦截器路径拦截URL规则; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/*** ClassName WebMvcConfig* Descripition 配置拦截路径* Author * Date 2023/9/1 10:08*/ Configuration public class WebMvcConfig implements WebMvcConfigurer {Autowiredprivate ResubmitInterceptorUtil resubmitInterceptorUtil;Overridepublic void addInterceptors(InterceptorRegistry registry) {// 配置拦截类registry.addInterceptor(resubmitInterceptorUtil)// 设置拦截路径URL.addPathPatterns(/**);}}
http://www.hkea.cn/news/14287581/

相关文章:

  • 什么是网站改版做网站的为什么不给域名和密码
  • 运城做网站要多少钱本科电子商务专业就业方向
  • 网站开发哪家好网站建设项目验收付款
  • 微信自创小程序网站优化意见
  • 龙岩市官方网站服装公司网站首页
  • wordpress可以建立多个站点网站建站四种方案
  • 多少钱才算有钱人360优化大师官方下载
  • 怎样创建自己公司网站企业网站上的二维码怎么获得
  • 那个网站上有打码的任务做株洲网站建设兼职
  • 中山如何制作网站优设网字体
  • 南宁网站建设软件销售
  • 无锡装修公司哪家口碑最好重庆怎么站seo
  • 山东济南市网站建设中国网络营销网站
  • seo算法入门教程无线网络优化工程师
  • 网站不做icp备案网页设计与制作模板免费
  • 企业建站官网运营网络营销与网站推广的区别
  • 网站301重定向代码没有基础学做网站
  • vs2008网站消息弹窗怎么做wordpress阅读更改
  • 企业备案网站可以做论坛吗旅游网站建设设计
  • 网站建设 pdf1688品牌加盟网
  • 做中介最好用的网站有没有做线播放网站
  • 免费做外贸的网站平台专业的国内网站建设公司
  • 建网站首选公司做网站需要
  • 网站关键词分隔符想做外贸做哪些网站好
  • dede大气企业网站模板(一屏展示)做房产网站需要了解什么
  • 现在做什么个人网站好佛山高端网站建设工作室
  • 一些做淘宝优惠券的网站江苏建设教育网官网入口
  • 苏州城乡建设局网站国际网站开发客户
  • wordpress标签网站seo诊断优化分析该怎么做
  • 做网站 用 云主机qq空间网站根目录