Spring Boot 버전 2 부터 자동화된 필터 기능들

2025. 12. 31. 19:59·Java

원래 input 태그에서 HTTP요청은 GET과 POST 요청만 가능했다.
근데 HiddenHttpMethodFilter 로 config 설정을 한다면
input 태그에서도 속성값을 활용해서 PUT 이나 DELETE 요청을 보낼 수 있었다.

 

아래는 @Configuration 클래스에 추가한 필터 메서드 예시이다.

@Bean
FilterRegistrationBean<HiddenHttpMethodFilter> hiddenHttpMethodFilter( ) {
    FilterRegistrationBean<HiddenHttpMethodFilter> filterRegistrationBean = new FilterRegistrationBean< >( );
    HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter( );
    filterRegistrationBean.setFilter(hiddenHttpMethodFilter);
    filterRegistrationBean.addUrlPatterns("/*");
    return filterRegistrationBean;
}


config 설정을 한 다음 input 태그에서는 아래와 같이 사용했다

<form method="post" action="/users/1">
  <input type="hidden" name="_method" value="DELETE">
</form>

input 태그의 name 속성에 "_method", value 에는 HTTP 메서드(PUT이나 DELETE)를 적으면 된다.


만약 name="method" value="DELETE"라고 적으면 단순히 method 변수에 "DELETE"라는 문자열이 전달될 것이다.
하지만 name="_method" value="DELETE"라고 하면 hiddenHTTPMethodFilter 가 이를 가로채어 요청을 POST에서 DELETE로 바꿔서 요청을 보내게 된다.


Spring boot 2버전부터는 application.properties에 아래와 같이 추가하면 된다.

spring.mvc.hiddenmethod.filter.enabled=true

 

3 버전이나 이번 11월 출시된 Spring boot 4 버전에서도 쓰고 싶다면 위와 같이 설정해야 가능하다.

 

하지만 보통 fetch나 ajax 같은 메서드를 통해 put, delete 요청을 처리하기에 거의 사용하지 않는 기능이다.

다음으로 HTTP 요청이나 응답에 대한 인코딩을 지원하는 필터이다.

@Bean
FilterRegistrationBean<CharacterEncodingFilter> characterEncodingFilter( ) {
 // HTTP의 요청, 응답에 대한 인코딩을 UTF-8로 고정
}

 

이 또한 이제는 Spring boot 2 버전부터는 자동으로 지원된다.

 

FIlter에 관해 배우고, Spring boot의 버전 업데이트에 따라 어떤 식으로 기능들이 개선되었는지
체감하기에 좋은 예제이기에 글로 정리했다.

Spring boot가 버전업이 되면서 어떤 것들이 개선되는지 확인해둬야 할 필요성을 깨달았다.

'Java' 카테고리의 다른 글

엔티티에서 @Builder 사용할 때 불변성에 대한 고찰  (0) 2026.01.31
[Spring Boot] Entity <-> DTO 변환 방법 4가지, Setter부터 @Builder, static Factory 메서드 패턴, 상속까지  (0) 2026.01.23
카멜케이스와 스네이크케이스 언제 사용할까?  (0) 2026.01.08
[Java] 날짜 타입(LocalDate, Date) 다루기, Servlet, Spring, Spring Boot  (0) 2025.09.01
백준 1931번 회의실 지정,Java 풀이  (4) 2025.07.11
'Java' 카테고리의 다른 글
  • [Spring Boot] Entity <-> DTO 변환 방법 4가지, Setter부터 @Builder, static Factory 메서드 패턴, 상속까지
  • 카멜케이스와 스네이크케이스 언제 사용할까?
  • [Java] 날짜 타입(LocalDate, Date) 다루기, Servlet, Spring, Spring Boot
  • 백준 1931번 회의실 지정,Java 풀이
MvA
MvA
백엔드 개발자 김재현입니다. 주로 공부하면서 느낀점을 기록합니다.
  • MvA
    Man vs Ai
    MvA
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Java (6)
      • Python (8)
        • 딥러닝 (1)
        • 머신러닝 (7)
      • JavaScript (2)
      • 내배캠 (60)
      • 개인 프로젝트 (11)
      • 책 후기 (5)
      • 기타 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    TiL
    딥러닝
    내일배움캠프
    Riot API
    머신러닝
    배포
    아키텍처
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
MvA
Spring Boot 버전 2 부터 자동화된 필터 기능들
상단으로

티스토리툴바