当前位置: 首页 > 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.zqtcl.cn/news/534608/

相关文章:

  • 全国商务网站大全木樨园网站建设公司
  • 网站搜索排名和什么有关系嘉兴建设局网站
  • 创建免费网站注意事项电商网站建设价格低
  • 网站开发接私单企业软文范例
  • 浙江省建设培训中心网站首页wordpress如何修改上传文件大小
  • 网站建设需要什么语言学完html怎么做网站
  • 国内外网站建设wordpress评论嵌套样式修改
  • 广州网站制作系统市场监督管理局投诉电话
  • 局域网建网站的详细步骤海南省建设网站的公司
  • 长沙市网站建设推广绵阳网站推广排名
  • 美容手机网站模板招标
  • 怎样用虚拟主机建网站访客可以用微信回复wordpress
  • 什么做网站做个网站一般要多少钱啊做网站界面尺寸
  • 装修网站怎样做网站中如何做图片轮播
  • 未备案网站如何加cdn河北网站制作
  • 出版社网站建设方案微信公众号h5网站开发
  • 南京建行网站云主机开网站教程
  • 炫酷表白网站在线制作微网站栏目图标
  • 西安做兼职网站设计昆山做网站的公司有哪些
  • vue手机网站开发买域名价格
  • 济南网站推广优化外包合肥住房和城乡建设部网站
  • 商品定制平台网站江苏港口建设费申报网站
  • 仿站酷网站模板网站建设捌金手指花总六
  • 南通网站建设计划书抖音关键词seo系统
  • 怎么做服务器网站下载链接生产类营销型网站
  • 做网站网站内容怎么找微信公众号免费做影视网站
  • 投资公司网站建设意义做一个网站成本大概多少钱
  • 网站建设的简洁性wordpress积分换购
  • 手机网站赏析做外贸女装有哪些网站有哪些
  • 网站建设与管理考察报告建材网站开发