Spring/Spring MVC
-
Spring MVC - 파일 업로드와 다운로드 구현해보기Spring/Spring MVC 2022. 2. 18. 15:56
파일 업로드와 다운로드 구현해보기 파일 업로드와 다운로드 구현 시 주의할 사항들이 있다. 직접 구현을 해보면서 주의 사항들을 살펴보자. 파일 업로드 업로드된 파일 뷰에서 보여주기 업로드된 파일 뷰에서 다운로드하기 파일 업로드 도메인 객체 생성 우선 데이터 베이스에 저장할 도메인 객체를 생성해준다. @Data public class Item { private Long id; private String itemName; private UploadFile attachFile; private List imageFiles; } 파일 관리 클래스 실제 파일명으로 서버 내부에 파일을 저장하면 안 된다. 그 이유는 기존에 서버에 저장되어있던 파일명으로 업로드 요청을 받게 되면 파일명이 같기 때문에 기존 파일명에 새로 ..
-
Spring MVC - Spring에서 제공하는 MultipartFile을 이용한 파일 업로드Spring/Spring MVC 2022. 2. 17. 22:19
Spring에서 제공하는 MultipartFile을 이용한 파일 업로드 파일 업로드는 Spring에서 제공하는 MultipartFile 인터페이스를 이용하면 Servlet으로 했던 것과는 비교할 수 없을 정도로 편리하게 이용할 수 있다. MultipartFile 인터페이스 getName() : 넘어온 파라미터 명 getOriginalFilename() : 업로드 파일명 getContentType : 파일의 ContentType isEmpty() : 업로드된 파일이 비어있는지 확인 getSize() : 파일의 바이트 사이즈 getBytes() : 바이트 배열로 저장된 파일의 내용 getInputStream() : 파일의 내용을 읽기 위한 InputStream 반환 transferTo() : 파일 저장 pu..
-
Spring MVC - Servlet의 파일 업로드Spring/Spring MVC 2022. 2. 17. 21:34
Servlet의 파일 업로드 HttpServletRequest를 이용하여 HTTP Form 멀티파트 전송 방식으로 넘어온 데이터를 어떻게 이용하는지 살펴보자. multipart/form-data 전송 방식의 HTTP 요청 메시지 로그 확인 Servlet을 이용한 파일 업로드 HTML Form 전송 방식 Form의 Content-Type은 다음과 같이 2가지 방식이 있다. application/x-www-form-urlencoded - 일반적인 form 전송 방식 - form 태그 내의 입력된 일반 데이터들을 쿼리 파라미터 형식으로 메시지 바디에 담아 전송 multipart/form-data - 첨부파일을 포함한 전송 방식 - form 태그 내의 입력된 일반 데이터 문자들과 바이너리(첨부파일)를 함께 전송..
-
Spring MVC - Formatter 구현 및 사용 ( Formatter와 FormattingConversionService )Spring/Spring MVC 2022. 2. 17. 11:48
스프링에 Formatter 적용하기 Formatter FormattingConversionService 스프링에 Formatter 등록하고 사용하기 스프링이 제공하는 기본 Formatter Formatter Formatter는 문자에 특화된 타입 변환 Converter의 특별한 버전이다. 객체와 문자, 문자와 객체의 타입 변환시 특정 포멧으로 Locale 정보에 따라 문자를 출력하거나 또는 그 반대의 역할을 하는 특화된 기능이 포함된 인터페이스이다. Converter는 타입 변환이 범용적으로 쓰이는 타입 변환기라고 볼 수 있으며 Formatter는 문자에 특화된 타입 변환기라고 볼 수 있다. ex) 날짜 객체 -> 2022-03-02 16:14:00 참고 @RequestParam, @ModelAttrib..
-
Spring MVC - Converter 구현 및 사용 (Converter와 ConversionService)Spring/Spring MVC 2022. 2. 17. 01:26
Converter 구현 및 사용 Converter ConversionService 스프링에 Converter 추가하고 사용하기 뷰 템플릿에 Converter 적용하기 Converter와 ConversionService HTTP 요청 파라미터는 모두 문자로 넘어오지만 스프링에서 파라미터로 넘어온 문자들을 @RequestParam, @ModelAttribute, @PathVariable을 통해 문자, 숫자, Boolean, Enum등과 같은 타입을 자동으로 타입을 변환하여 바인딩을 해준다. 어떻게 타입변환이 일어나서 바인딩이 되는지 Converter와 ConversionService를 통해 알아보자. 참고 @RequestParam, @ModelAttribute, @PathVariable 등에서 사용 가능 메..
-
String MVC - API 예외처리(ExceptionHandlerExceptionResolver, ResponseStatusExceptionResolver, DeFaultHandlerExceptionResolver)Spring/Spring MVC 2022. 2. 14. 18:17
ResponseStatusExceptionResolver DefaultHandlerExceptionResolver ExceptionHandlerExceptionResolver @ControllerAdvice, @RestControllerAdvice API 예외처리 스프링 부트가 기본으로 제공하는 ExceptionResolver는 다음과 같다. ExceptionResolver 설명 우선 순위 ExceptionHandlerExceptionResolver @ExceptionHandler 처리 1 ResponseStatusExceptionResolver 상태 코드가 적용된 예외 처리 2 DefaultHandlerExceptionResolver 스프링 내부 기본 예외 처리 3 ResponseStatusExcept..
-
String MVC - 직접 구현해보는 API 예외처리Spring/Spring MVC 2022. 2. 14. 01:25
APi 예외 처리 직접 구현하기 API 예외 처리 - BasicErrorController 이용 API 예외 처리 - HandlerExceptionResolver 이용한 예외 처리 구현 API 예외 처리 - BasicErrorController 이용 API 예외처리 text/html 형식의 예외처리를 직접 구현하여 사용하면 예외 발생 시 응답 메시지로 4xx.html, 5xx.html와 같은 오류 페이지를 쉽게 클라이언트에게 보내줄 수 있다. 하지만 API의 경우에는 다르다. API 예외처리에서 응답 메시지에 오류 페이지를 전달해주면 JSON형식이 아니기 때문에 제대로 된 랜더링을 하지 못하게 된다. 때문에 각 오류 상황에 맞게 오류에 대한 정보들을 JSON으로 전달해줘야 한다. 스프링에서는 @Excep..
-
Spring MVC - BasicErrorController를 이용한 HTML 오류 페이지 처리와 오류 정보 이용하기(text/html)Spring/Spring MVC 2022. 2. 10. 18:04
스프링 부트의 오류 페이지 처리와 오류 정보 이용하기 스프링 부트의 오류 페이지 처리 오류 페이지에서 오류 정보 이용하기 스프링 부트의 오류 페이지 처리 스프링 부트는 서브릿에서 오류 페이지 처리했던 과정을 모두 기본으로 제공한다. 따라서 사용방법이 매우 간단하다. new ErrorPage("/error") 자동 등록 - /error 경로로 기본 오류 페이지를 설정한다. - 상태 코드와 예외를 설정하지 않으면 기본 오류 페이지가 호출된다. BasicErrorController 스프링 컨트롤러를 자동 등록 - ErrorPage에서 등록한 /error 를 매핑해서 처리하는 컨트롤러 위와 같은 오류 페이지 처리를 위한 작업을 스프링 부트에서 다 해주므로 개발자는 설정에 따라 HTML 오류 페이지만 만들어서 지..