웹 개발

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 파일 업로드

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 파일 업로드

    파일 업로드HTML에서 폼을 전송하는 방식은 application/x-www-form-urlencoded 와 multipart/form-data 이 있다. application/x-www-form-urlencoded 방식가장 기본적인 폼 전송 방식으로 HTTP body에 &로 구분하여 데이터를 전송한다. 가장 간단하고 편하지만 파일은 문자가 아니라 매우 긴 바이너리 데이터이기 때문에 해당 전송 방식으로 파일을 전송하기 에는 어려움이 있다.   multipart/form-data 복잡하긴 하지만 해당 방식을 사용하면 다른 종류의 여러 파일과 폼의 내용을 함께 전송할 수 있다. 서블릿에서의 멀티 파일 업로드멀티 파트 형식은 전송 데이터를 각각 부분(part)로 나눠 전송한다. application.prope..

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 스프링 타입 컨버터

    스프링 타입 컨버터문자를 숫자로 변환하거나, 숫자를 문자로 변환하는 과정을 스프링 MVC 에서는 편리하게 지원해준다. ex) 데이터 타입 변환: 문자열을 정수로 변환 일반적인 컨버터 방법HTTP 요청 파라미터는 무조건 문자로 처리된다. 그러므로 숫자를 사용하고 싶으면 숫자 타입 변환을 해줘야한다.@RestControllerpublic class HelloController { @GetMapping("/hello-v1") public String helloV1(HttpServletRequest request) { String data = request.getParameter("data"); //문자 타입 조회 Integer intValue = Integer.valueOf(data); ..

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 예외 처리

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 예외 처리

    서블릿의 예외 처리와 오류 페이지스프링이 아닌 순수 서블릿 컨테이너에서의 예외처리 방법은 2가지 방식이 있다. 1. Exception (예외)2. response.sendError(HTTP 상태 코드, 오류 메세지) Exception 예외는 특정 조건이나 오류가 발생했을 때 이를 처리하기 위해 사용된다. 만약에 에플리케이션에서 예외를 잡지 못하고 서블릿 밖으로 예외가 전달되면 컨트롤러 (예외 발생) -> 인터셉터 -> 서블릿 -> 필터 -> WAS  순서로 WAS까지 예외가 전달된다.@GetMapping("/error-ex") public void errorEx() { throw new RuntimeException("예외 발생!"); } response.sendError(HTTP 상태 코드, 오류 메..

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 로그인 처리

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 로그인 처리

    로그인 처리 V1 - 쿠키 직접 생성쿠키를 직접 생성하고 값을 HttpServletResponse를 통해 저장하는 방식을 사용하였다. LoginControllerV1 - login에 적용로그인 성공 시 쿠키를 생성하고 HttpServletResponse에 담는다. @PostMapping("/login")public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response) { if (bindingResult.hasErrors()) { return "login/loginForm"; } Member loginMember = loginServ..

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 검증

    스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 검증

    검증 여태까지 만든 웹 애플리케이션은 폼 입력 시 숫자칸에 문자를 입력했을 때 검증 오류가 발생하면서 400 오류화면이 보여진다. 이렇게 되면 사용자는 코드에러에 당황할 뿐만 아니라 처음부터 폼에 값을 다시 입력해야한다.웹 서비스는 폼 입력 시 오류가 발생하면 어떤 부분이 오류가 났는지, 고객이 입력한 데이터를 유지한 상태에서 알려줘야한다. 검증 V1 ~ V6 까지 단계적으로 검증을 하는 방법을 정리하였다. 검증 V1 - @Model 상품 저장 검증 실패그림 처럼 검증 오류 결과가 포함된 결과를 모델에 담아 전달한다. ValidationItemControllerV1 - addItem()@Model을 통해 에러내용을 모델에 담아 반환한다.errors에 값이 들어있으면 검증에 실패하였으므로 입력 폼으로 돌아..