欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot 請(qǐng)求參數(shù)忽略大小寫的實(shí)例

 更新時(shí)間:2021年01月28日 15:33:59   作者:開發(fā)者聯(lián)盟league  
這篇文章主要介紹了SpringBoot 請(qǐng)求參數(shù)忽略大小寫的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧

我就廢話不多說了,大家還是直接看代碼吧~

import java.io.IOException;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Map; 
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse; 
import org.springframework.core.annotation.Order;
import org.springframework.util.LinkedCaseInsensitiveMap;
import org.springframework.web.filter.OncePerRequestFilter;
 
@Order(1)
//重點(diǎn)
@WebFilter(filterName = "caseInsensitiveFilter", urlPatterns = "/*")
public class CaseInsensitiveRequestParameterNameFilter extends OncePerRequestFilter {
 
	public CaseInsensitiveRequestParameterNameFilter() {
		System.out.println("CaseInsensitiveRequestParameterNameFilter.CaseInsensitiveRequestParameterNameFilter()");
	}
	
 @Override
 protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
  throws ServletException, IOException {
 filterChain.doFilter(new CaseInsensitiveParameterNameHttpServletRequest(request), response);
 }
 
 public static class CaseInsensitiveParameterNameHttpServletRequest extends HttpServletRequestWrapper {
 private final LinkedCaseInsensitiveMap<String[]> map = new LinkedCaseInsensitiveMap<>();
 
 public CaseInsensitiveParameterNameHttpServletRequest(HttpServletRequest request) {
  super(request);
  map.putAll(request.getParameterMap());
 }
 
 @Override
 public String getParameter(String name) {
 
  String[] array = this.map.get(name);
  if (array != null && array.length > 0)
  return array[0];
  return null;
 }
 
 @Override
 public Map<String, String[]> getParameterMap() {
  return Collections.unmodifiableMap(this.map);
 }
 
 @Override
 public Enumeration<String> getParameterNames() {
  return Collections.enumeration(this.map.keySet());
 }
 
 @Override
 public String[] getParameterValues(String name) {
  return this.map.get(name);
 }
 
 }
 
}

并在啟動(dòng)類上加入@ServletComponentScan注解

補(bǔ)充:springboot 接受大寫參數(shù)時(shí),接收值為空的解決

入?yún)ⅲ?/h3>
{
 "title":"文章標(biāo)題1",
 "content":"文章內(nèi)容22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
 "DOI":"123",
 "PMID":"1234",
 "email":"121607691@qq.com"
}

springboot 接到的DOI和PMID 為null,頭字母改為小寫后正常。

原因及解決

是spring 使用@requestbody 接收時(shí)遵循駝峰命名規(guī)則,如果希望接收非駝峰的參數(shù)可以在對(duì)映的屬性上添加注解

@JsonProperty(value = "DOI")
private String DOI;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Mybatis Plus使用@TableId的示例詳解

    Mybatis Plus使用@TableId的示例詳解

    在 MyBatis Plus 中,@TableId 注解是用于標(biāo)記實(shí)體類中的主鍵字段,它可以更方便地處理主鍵相關(guān)的操作,如自動(dòng)填充主鍵值或識(shí)別主鍵字段,這篇文章主要介紹了Mybatis Plus使用@TableId,需要的朋友可以參考下
    2024-08-08
  • SpringBoot淺析安全管理之OAuth2框架

    SpringBoot淺析安全管理之OAuth2框架

    安全管理是軟件系統(tǒng)必不可少的的功能。根據(jù)經(jīng)典的“墨菲定律”——凡是可能,總會(huì)發(fā)生。如果系統(tǒng)存在安全隱患,最終必然會(huì)出現(xiàn)問題,這篇文章主要介紹了SpringBoot安全管理OAuth2框架的使用
    2022-08-08
  • Java實(shí)現(xiàn)短信驗(yàn)證碼服務(wù)的完整代碼示例

    Java實(shí)現(xiàn)短信驗(yàn)證碼服務(wù)的完整代碼示例

    這篇文章主要介紹了Java實(shí)現(xiàn)短信驗(yàn)證碼服務(wù)的完整代碼示例,文中使用阿里云的短信服務(wù)進(jìn)行應(yīng)用開發(fā)的流程,包括將屬性寫入application.yml配置文件,定義類并指定配置文件,注入實(shí)體類對(duì)象等等,需要的朋友可以參考下
    2024-09-09
  • Java?Object類和包裝類深入解讀

    Java?Object類和包裝類深入解讀

    Object類是一個(gè)特殊的類,是所有類的父類,如果一個(gè)類沒有用extends明確指出繼承于某個(gè)類,那么它默認(rèn)繼承Object類,所謂包裝類,就是能夠直接將簡(jiǎn)單類型的變量表示為一個(gè)類,在執(zhí)行變量類型的相互轉(zhuǎn)換時(shí),我們會(huì)大量使用這些包裝類
    2022-02-02
  • Java中數(shù)組轉(zhuǎn)List的三種方法與對(duì)比分析

    Java中數(shù)組轉(zhuǎn)List的三種方法與對(duì)比分析

    這篇文章主要給大家介紹了關(guān)于Java中數(shù)組轉(zhuǎn)List的三種方法與對(duì)比分析的相關(guān)資料,分別介紹了最常見方式、數(shù)組轉(zhuǎn)為L(zhǎng)ist后,支持增刪改查的方式以及通過集合工具類Collections.addAll()方法,需要的朋友可以參考下
    2018-07-07
  • SpringBoot中Token登錄授權(quán)、續(xù)期和主動(dòng)終止的方案流程分析

    SpringBoot中Token登錄授權(quán)、續(xù)期和主動(dòng)終止的方案流程分析

    SpringBoot項(xiàng)目中,基于Token的登錄授權(quán)方案主要有兩種:利用Session/Cookie和JWT,Cookie/Session方案有狀態(tài),不適合分布式架構(gòu),而JWT雖無(wú)狀態(tài),但存在過期時(shí)間不可強(qiáng)制失效、一次性等缺點(diǎn),本文介紹SpringBoot中Token登錄授權(quán)、續(xù)期和主動(dòng)終止的方案,感興趣的朋友一起看看吧
    2024-09-09
  • Java實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼功能

    Java實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • @Valid 無(wú)法校驗(yàn)List<E>的問題

    @Valid 無(wú)法校驗(yàn)List<E>的問題

    這篇文章主要介紹了@Valid 無(wú)法校驗(yàn)List<E>的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • IDEA部署jeesite3完美運(yùn)行教程詳解

    IDEA部署jeesite3完美運(yùn)行教程詳解

    這篇文章主要介紹了IDEA部署jeesite3完美運(yùn)行教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot整合jasypt進(jìn)行重要數(shù)據(jù)加密的操作代碼

    SpringBoot整合jasypt進(jìn)行重要數(shù)據(jù)加密的操作代碼

    Jasypt(Java?Simplified?Encryption)是一個(gè)專注于簡(jiǎn)化Java加密操作的開源工具,它提供了一種簡(jiǎn)單而強(qiáng)大的方式來(lái)處理數(shù)據(jù)的加密和解密,使開發(fā)者能夠輕松地保護(hù)應(yīng)用程序中的敏感信息,本文給大家介紹了SpringBoot整合jasypt進(jìn)行重要數(shù)據(jù)加密,需要的朋友可以參考下
    2024-05-05

最新評(píng)論