목록BE/Spring (178)
오봉이와 함께하는 개발 블로그
서블릿과 파일 업로드 1 먼저 서블릿을 통한 파일 업로드를 알아보자. ServletUploadControllerV1 @Controller @Slf4j @RequestMapping("/servlet/v1") public class ServletUploadControllerV1 { @GetMapping("/upload") public String newFile() { return "upload-form"; } @PostMapping("/upload") public String saveFileV1(HttpServletRequest request) throws ServletException, IOException { log.info("request = {}", request); String itemName = ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oY2kx/btrLaU0S2kg/YkuKoemxykDKmF2INNS220/img.png)
파일 업로드 소개 일반적으로 사용하는 HTML Form을 통한 파일 업로드를 이해하려면 먼저 폼을 전송하는 다음 두 가지 방식의 차이를 이해해야 한다. 참고 : https://5bong2-develop.tistory.com/266 HTML 폼 전송 방식 application/x-www-form-urlencoded multipart/form-data application/x-www-form-urlencoded 방식 application/x-www-form-urlencoded방식은 HTML 폼 데이터를 서버로 전송하는 가장 기본적인 방법이다. Form 태그에 별도의 enctype옵션이 없으면 웹 브라우저는 요청 HTTP 메시지의 헤더에 다음 내용을 추가한다. Content-Type: application/x..
스프링이 제공하는 기본 포맷터 스프링은 자바에서 기본으로 제공하는 타입들에 대해 수 많은 포맷터를 기본으로 제공한다. IDE에서 Formatter인터페이스의 구현 클래스를 찾아보면 수 많은 날짜나 시간 관련 포맷터가 제공되는 것을 확인할 수 있다. 그런데 포맷터는 기본 형식이 지정되어 있기 때문에, 객체의 각 필드마다 다른 형식으로 포맷을 지정하기는 어렵다. 스프링은 이런 문제를 해결하기 위해 어노테이션 기반으로 원하는 형식을 지정해서 사용할 수 있는 매우 유용한 포맷터 두 가지를 기본으로 제공한다. @NumberFormat : 숫자 관련 형식 지정 포맷터 사용, NumberFormatAnnotationFormatterFactory @DateTimeFormat : 날짜 관련 형식 지정 포맷터 사용, Js..
포맷터 적용하기 포맷터를 웹 애플리케이션에 적용해보자. WebConfig - 수정 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addFormatters(FormatterRegistry registry) { // 주석처리 우선순위 // registry.addConverter(new StringToIntegerConverter()); // registry.addConverter(new IntegerToStringConverter()); registry.addConverter(new IntegerToStringConverter()); registry.addConverter(new IpPortTo..
포맷터를 지원하는 컨버전 서비스 컨버전 서비스에는 컨버터만 등록할 수 있고, 포맷터를 등록할 수 없다. 하지만 포맷터는 객체 -> 문자, 문자 -> 객체로 변환하는 특별한 컨버터일 뿐이다. 포맷터를 지원하는 컨버전 서비스를 사용하면 컨버전 서비스에 포맷터를 추가할 수 있다. 내부에서 어댑터 패턴을 사용해서 Formatter가 Converter처럼 동작하도록 지원한다. FormattingConversionService는 포맷터를 지원하는 컨버전 서비스다. DefaultFormattingConversionService는 FormattingConversionService에 기본적인 통화, 숫자 관련 몇가지 기본 포맷터를 추가해서 제공한다. 테스트 코드 public class FormattingConversio..