Spring/MVC 2편11 파일 업로드 HTML 폼 전송 방식 (2가지 방법) application/x-www-form-urlencoded multipart/form-data Form 태그에 별도의 enctype 옵션이 없을경우 웹 브라우저의 요청 HTTP 메시지 Header (Content-Type): application/x-www-form-urlencoded HTTP Body : username=kim&age=20 ◎ 문제: 문자와 바이너리를 동시에 전송해야 하는 상황 ◎ 해결법 : multipart/form-data 사용 시 Form 태그에 별도의 enctype="multipart/form-data" 를 지정 multipart/form-data 는 각각의 항목을 구분해서, 한번에 여러 파일과 폼의 내용 전송 가능 서블릿과 파일 업로드1.. 2023. 8. 8. 스프링 타입 컨버터 문자를 숫자로 변환 or 숫자를 문자로 변환 같은 타입 변환 @RestController public class HelloController { @GetMapping("/hello-v1") public String helloV1(HttpServletRequest request) { String data = request.getParameter("data"); //문자 타입 조회 Integer intValue = Integer.valueOf(data); //숫자 타입으로 변경 System.out.println("intValue = " + intValue); return "ok"; } } 타입 변경을 직접해줘야 한다. @GetMapping("/hello-v2") public String helloV2(@Re.. 2023. 8. 8. API 예외 처리 스프링 부트 기본 오류 처리 스프링 부트의 기본 설정은 오류 발생시 /error 를 오류 페이지로 요청한다. BasicErrorController 는 이 경로를 기본으로 받는다. ex) GET http://localhost:8080/api/members/ex Html 페이지 vs API 오류 BasicErrorController 를 확장하면 JSON 메시지도 변경할 수 있다. 그런데 API 오류는 @ExceptionHandler 가 제공하는 기능을 사용하는 것이 더 나은 방법 BasicErrorController는 HTML 화면을 처리할 때 사용, API 오류 처리는 뒤에서 설명할 @ExceptionHandler 사용 HandlerExceptionResolver 스프링 MVC는 컨트롤러(핸들러) 밖으로 .. 2023. 8. 8. 예외 처리 & 오류 페이지 Exception(예외) 애플리케이션에서 예외를 잡지 못하고, 서블릿 밖으로 까지 예외가 전달되면 어떻게 동작할까? WAS(여기까지 전파) dispatcherType=REQUEST public enum DispatcherType { FORWARD, INCLUDE, REQUEST, ASYNC, ERROR } DispatcherType REQUEST : 클라이언트 요청 ERROR : 오류 요청 FORWARD : MVC에서 배웠던 서블릿에서 다른 서블릿이나 JSP를 호출할 때 RequestDispatcher.forward(request, response); INCLUDE : 서블릿에서 다른 서블릿이나 JSP의 결과를 포함할 때 RequestDispatcher.include(request, response); .. 2023. 8. 7. 이전 1 2 3 다음