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

网站开发 纠纷苏州网站建设公司排名

网站开发 纠纷,苏州网站建设公司排名,网站没有友情链接,内江网站建设新闻先看歧义现象 值为null 未传递此属性 所以此时如何区分null 时传递进来的的null,还是属性的默认值null? 引入方案 引入过滤器,中间截获requestBodyData并保存到HttpServletRequest,业务层从HttpServletRequest 获取到requestBodyData辅…

先看歧义现象

值为null
在这里插入图片描述

在这里插入图片描述
未传递此属性
在这里插入图片描述
在这里插入图片描述
所以此时如何区分null 时传递进来的的null,还是属性的默认值null?

引入方案

引入过滤器,中间截获requestBodyData并保存到HttpServletRequest,业务层从HttpServletRequest 获取到requestBodyData辅助判断此属性为未传递还是值为null

第1步:定义并注册过滤器

自定义过滤器截获requestBodyData并保存到HttpServletRequest

import com.practisesvr.utils.http.FilterHttpServletRequest;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.GenericFilterBean;import java.io.IOException;@Component
public class RequestCheckFilter extends GenericFilterBean {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {System.err.println("***RequestHeaderCheckFilter.doFilter.start***");if (!(request instanceof HttpServletRequest)) {throw new IllegalStateException("Expected HttpServletRequest");}HttpServletRequest httpRequest = (HttpServletRequest) request;FilterHttpServletRequest filterHttpRequest = new FilterHttpServletRequest(httpRequest);String body = filterHttpRequest.getBody();filterHttpRequest.setAttribute("requestBodyData", body);// 继续执行filter链chain.doFilter(filterHttpRequest, response);System.err.println("***RequestHeaderCheckFilter.doFilter.end***");}
}

[Ref: 过滤器使用到 HttpServletRequestWrapper 参考如下 ] What is HttpServletRequestWrapper does?

注册过滤器

@Configuration
public class AppConfig {@Beanpublic FilterRegistrationBean<RequestCheckFilter> requestCheckFilterRegistration() {FilterRegistrationBean<RequestCheckFilter> registration = new FilterRegistrationBean<>();registration.setFilter(new RequestCheckFilter());// 可以设置过滤器名称registration.setName("requestCheckFilter");// 设置拦截规则registration.addUrlPatterns("/*"); // 拦截所有请求// 设置过滤器执行顺序,默认为0,数值越小优先级越高registration.setOrder(2);return registration;}
}

第2步:从HttpServletRequest 获取到requestBodyData

public class RequestIUtils {/*** 从当前请求上下文中获取并解析请求体数据,将其转换为Map类型对象.** @return 如果成功获取到请求体数据并转换成功,则返回一个包含请求体内容的Map对象;* 若RequestAttributes不存在或请求体数据为空,则返回一个新的空HashMap对象。*/public static Map<String, Object> getRequestBodyBody() {RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();if (requestAttributes == null) {return new HashMap<>();}HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();Object requestBody = request.getAttribute("requestBodyData");if (requestBody == null) {return new HashMap<>();}return JsonUtils.jsonToT(requestBody.toString(), Map.class);}
}    

第3步:业务层使用requestBodyData辅助判断

@Override
public Student update(Student student) {Map<String, Object> requestBody = RequestIUtils.getRequestBodyBody();Student stu = new Student();stu.setId(student.getId());stu.setUsername(student.getUsername());stu.setPassword(student.getPassword());stu.setAge(student.getAge());stu.setHeight(student.getHeight());stu.setGender(student.getGender());// 使用方式if (requestBody.containsKey("classId")){stu.setClassId(student.getClassId());}stu.setIsDelete(student.getIsDelete());this.studentsMapper.update(student);return this.queryById(student.getId());
}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

http://www.ds6.com.cn/news/52672.html

相关文章:

  • 想开发一个网站需要怎样做网络营销站点推广的方法
  • 做博彩类的网站小红书笔记关键词排名优化
  • 甘南网站建设求职seo服务
  • 寻找手机网站建设长沙网站搭建关键词排名
  • 自适应网站做百度推广seo技术团队
  • 网站建设哪家效益快东莞疫情最新通知
  • 管理平台登录界面seo招聘要求
  • 横岗网站建设多少钱百度站长平台网址
  • 湖北城市建设职业技术学院网站我要安装百度
  • 网站站点断开2023年百度小说风云榜
  • 企业平台登录上海单个关键词优化
  • 怎么做网站在线客服策划公司一般怎么收费
  • 标准化班组建设网站哪个平台推广效果最好
  • 资中做网站多少钱重庆网站seo建设哪家好
  • 定制网站 报价产品经理培训
  • 四川省政府网站集约化建设经验网站排名快速提升工具
  • 电子商务网站设计目的及要求360优化大师官方下载最新版
  • 青岛病毒感染最新消息百度seo简爱
  • 网站建设大型怎样做百度推广网页
  • 访问自己做的网站吗搜索优化指的是什么
  • 邢台头条新闻seo推广优化官网
  • 做一家仓储用地的网站推广软件一键发送
  • 百度云平台建设网站关键词挖掘工具站
  • 作词做曲网站汕头seo排名
  • 暴力破解wordpress爱站网站seo查询工具
  • 做网站运营需要学什么全网关键词搜索排行
  • 同和网站建设推广联系方式
  • 网站建设 你真的懂吗品牌营销包括哪些内容
  • 电子商务网站建设 教学大纲东莞全网推广
  • 做汽配外贸是在哪个网站做手机自动排名次的软件