분류 전체보기
스프링 MVC 2 - 서블릿과 파일 업로드 2
스프링 MVC 2 - 서블릿과 파일 업로드 2
2022.10.19서블릿과 파일 업로드 2 서블릿이 제공하는 Part에 대해 알아보고 실제 파일도 서버에 업로드 해보자. 먼저 파일을 업로드를 하려면 실제 파일이 저장되는 경로가 필요하다. 해당 경로에 실제 폴더를 만들어두자. 그리고 다음에 만들어진 경로를 입력해두자. application.properties 주의 꼭 해당 경로에 실제 폴더를 미리 만들어두자. application.properties에서 설정할 때 마지막에 /(슬래시)가 포함된 것에 주의하자. ServletUploadControllerV2 application.properties에서 설정한 file.dir의 값을 주입한다. 멀티파트 형식은 전송 데이터를 하나하나 각각 부분(Part)으로 나누어 전송한다. parts에는 이렇게 나누어진 데이터가 각각 담긴다..
스프링 MVC 2 - 서블릿과 파일 업로드 1
스프링 MVC 2 - 서블릿과 파일 업로드 1
2022.10.14서블릿과 파일 업로드 1 먼저 서블릿을 통한 파일 업로드를 코드와 함께 알아보자. ServletUploadControllerV1 request.getParts() : multipart/form-data 전송 방식에서 각각 나누어진 부분을 받아서 확인할 수 있다. resources/templates/upload-form.html 테스트를 진행하기 전에 먼저 다음 옵션들을 추가하자. application.properties 이 옵션을 사용하면 HTTP 요청 메시지를 확인할 수 있다. 실행 http://localhost:8080/servlet/v1/upload 실행해보면 logging.level.org.apache.coyote.http11 옵션을 통한 로그에서 multipart/form-data 방식으로 전송..
스프링 MVC 2 - 프로젝트 생성(파일 업로드)
스프링 MVC 2 - 프로젝트 생성(파일 업로드)
2022.10.14프로젝트 생성 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io/ 프로젝트 선택 Project: Gradle Project Language: Java Spring Boot: 2.4.x Project Metadata Group: hello Artifact: upload Name: upload Package name: hello.upload Packaging: Jar Java: 11 Dependencies: Spring Web, Lombok, Thymeleaf build.gradle 동작확인 기본 메인 클래스 실행(UploadApplication.main()) http://localhost:8080 호출해서 Whitelabel Error Page가 나오면 ..
스프링 MVC 2 - 파일 업로드 소개
스프링 MVC 2 - 파일 업로드 소개
2022.10.14파일 업로드 소개 일반적으로 사용하는 HTML Form을 통한 파일 업로드를 이해하려면 먼저 폼을 전송하는 다음 두 가지 방식의 차이를 이해해야 한다. 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-www-form-urlencoded 그리고 폼에 입력한 전송할 항목을 HT..
스프링 MVC 2 - 정리(스프링 타입 컨버터)
스프링 MVC 2 - 정리(스프링 타입 컨버터)
2022.10.13정리(스프링 타입 컨버터) 컨버터를 사용하든, 포맷터를 사용하든 등록 방법은 다르지만, 사용할 때는 컨버전 서비스를 통해서 일관성 있게 사용할 수 있다. 주의! 메시지 컨버터(HttpMessageConverter)에는 컨버전 서비스가 적용되지 않는다. 특히 객체를 JSON으로 변환할 때 메시지 컨버터를 사용하면서 이 부분을 많이 오해하는데, HttpMessageConverter의 역할은 HTTP 메시지 바디의 내용을 객체로 변환하거나 객체를 HTTP 메시지 바디에 입력하는 것이다. 예를 들어서 JSON을 객체로 변환하는 메시지 컨버터는 내부에서 Jackson 같은 라이브러리를 사용한다. 객체를 JSON으로 변환한다면 그 결과는 이 라이브러리에 달린 것이다. 따라서 JSON 결과로 만들어지는 숫자나 날짜 ..
스프링 MVC 2 - 스프링이 제공하는 기본 포맷터
스프링 MVC 2 - 스프링이 제공하는 기본 포맷터
2022.10.13스프링이 제공하는 기본 포맷터 스프링은 자바에서 기본으로 제공하는 타입들에 대해 수 많은 포맷터를 기본으로 제공한다. IDE에서 Formatter 인터페이스의 구현 클래스를 찾아보면 수 많은 날짜나 시간 관련 포맷터가 제공되는 것을 확인할 수 있다. 그런데 포맷터는 기본 형식이 지정되어 있기 때문에, 객체의 각 필드마다 다른 형식으로 포맷을 지정하기는 어렵다. 스프링은 이런 문제를 해결하기 위해 애노테이션 기반으로 원하는 형식을 지정해서 사용할 수 있는 매우 유용한 포맷터 두가지를 기본으로 제공한다. @NumberFormat : 숫자 관련 형식 지정 포맷터 사용, NumberFormatAnnotationFormatterFactory @DateTimeFormat : 날짜 관련 형식 지정 포맷터 사용, Js..