Burninghering's Blog
article thumbnail
패스트캠퍼스 챌린지 - 26일차 : STS3의 프로젝트 import/export
패캠 챌린지 2023. 3. 17. 00:04

export import 위와 같이 프로젝트를 인텔리제이로 import하면 Configurations 설정을 해줘야한다. Servlet이 없다고 뜰텐데, apach tomcat 폴더의 lib를 하나씩 다 불러와준다. 다 설정하고 나면 아래의 코드에 아무런 에러가 안뜨고 빌드도 정상적으로 작동되며 서버도 실행되는 것을 볼 수 있다 package com.fastcampus.ch2; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServl..

article thumbnail
패스트캠퍼스 챌린지 - 25일차 [스프링의 정석:남궁성과 끝까지 간다]
패캠 챌린지 2023. 3. 16. 00:05

데이터의 검증 Validator에는, 맨 위처럼 메서드 2가지가 있다. 1. 매개변수로 들어온 클래스가 검증기로 검증 가능한지 알려주는 메서드 2. 실제로 검증하는 메서드 (첫번째 타겟이 검증할 객체, 에러가 검증하다 발생한 결과를 저장하는 것) 인터페이스를 구현해서, UserValidator라는 클래스를 구현해보았다. (주석 확인) 컨트롤러에서 검증을 하기엔 코드가 지저분해져서, 왼쪽과 같이 검증하는 부분을 별도로 분리해놓았다. 분리하고 나면 노란색 칸과 같이 간단해진다. 자동 검증 하는 방법 아래 파란색 칸 코드와 같이 @InitBinder를 이용해서 검증기를 등록해준다. 검증하려는 객체에다가 @Valid 어노테이션만 붙여주면 된다. binder.setValidator()라는 코드로 validator..

article thumbnail
패스트캠퍼스 챌린지 - 24일차 [스프링의 정석:남궁성과 끝까지 간다]
패캠 챌린지 2023. 3. 15. 00:04

데이터의 변환과 검증 요청을 하면 데이터가 파라미터로 값이 바뀌는데, 컨트롤러에서 MyDate를 매개변수로 하면 요청할 때 넘어온 값을 바인딩하는데 중간에 WebDataBinder가 있다. (맵에 있는 값은 String인데, MyDate의 값은 int이다) 1. 타입을 변환하고 결과를 BindingResult에 저장한다 그 다음에, 2. 데이터를 검증한다.(넘어온 값이 날짜 형식에 맞는지) 문제가 없으면 BindingResult에 저장한다 Controller가 BindingResult에 담긴 결과를 적절히 판단해서 처리할 수 있도록 한다. 실습 변환 기능 추가하는 방법 2 1.toDate() 메소드같은 변환 메서드 사용하기 2.바인딩할 객체의 타입에다가 직접 적어주기 위와 같던 회원가입 화면... 실습 ..

article thumbnail
패스트캠퍼스 챌린지 - 23일차 [스프링의 정석:남궁성과 끝까지 간다]
패캠 챌린지 2023. 3. 14. 00:05

DispatcherServlet이란? - 스프링 MVC의 요청 처리 과정 역할 1) 입력/처리/출력을 하는 서블릿들(왼쪽 3개) 에서도 입력 부분같은 공통된 처리 부분을 앞으로 따로 빼내서 컨트롤러들의 공통 부분을 제거하는 것이 역할이다. 각 서블릿이나 컨트롤러가 해야될 공통된 부분을 디스패처서블릿이 앞에서 전처리를 해주는 것이다. 역할 2) 요청이 오면 디스패처서블릿이 요청을 해당 컨트롤러의 메소드를 호출하고 그 결과로 뷰 이름을 받는다. 그 뷰 이름으로 해당 뷰를 찾아서 뷰가 응답한다. 디스패처서블릿이 핸들러매핑과 연결되어 있는데, 핸들러매핑은 key-value로 URL-메소드를 매핑시켜놓는다. 그 정보를 저장하고 있다가 요청이 왔을 때 요청을 어떤 메소드와 연결시키면 좋을 지 핸들러매핑에게 물어본다..

article thumbnail
패스트캠퍼스 챌린지 - 22일차 [스프링의 정석:남궁성과 끝까지 간다]
패캠 챌린지 2023. 3. 13. 00:05

예외 처리 이론 컨트롤러 안에 메소드에서 예외가 발생했을 때 예외처리를 처리할 메소드를 만들 수 있다. 메소드 파라미터 안에는 처리할 예외를 넣어주고 @ExceptionHandler 어노테이션을 붙인다. 두 번째와 세 번째 메소드의 Model m은 서로 다른 객체이다. 두번째 메소드는 모델에다 예외를 넣어 전달했다. @ControllerAdvice로 전역 = "모든 컨트롤러" 에서 처리하는 클래스를 작성 가능하다. 같은 NullPointerExeption 예외를 처리하는 메소드가 있다면, 전역처리 클래스보다는 같은 컨트롤러 내의 예외 처리 메소드가 우선된다. 400번대는 클라이언트 에러 500번대는 서버 에러 첫 번째 catcher2 메소드는 200 ok 상태 코드가 나오는데, 405번으로 바꾸려고 하는..

article thumbnail
패스트캠퍼스 챌린지 - 21일차 [스프링의 정석:남궁성과 끝까지 간다]
패캠 챌린지 2023. 3. 12. 00:05

예외 처리 ExceptionController.java package com.fastcampus.ch2; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ExceptionController { @RequestMapping("/ex") public String main() throws Exception { try { throw new Exception("예외가 발생했습니다."); } catch (Exception e) { return "error"; } } } error.jsp 예외가 발생했습니다. 발생한 예외..

article thumbnail
패스트캠퍼스 챌린지 - 20일차 [스프링의 정석:남궁성과 끝까지 간다]
패캠 챌린지 2023. 3. 11. 00:05

세션 실습 (1) 위 그림과 같이 프로그램을 짜 볼 것이다. boardList.jsp fastcampus Home Board login Sign in This is BOARD This is BOARD This is BOARD This is BOARD This is BOARD BoardControllaer.java package com.fastcampus.ch2; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; ..

article thumbnail
패스트캠퍼스 챌린지 - 19일차 [스프링의 정석:남궁성과 끝까지 간다]
패캠 챌린지 2023. 3. 10. 00:05

세션이란? 서로 관련된 요청(응답)을 하나로 묶은 것 - 묶기 위해 쿠키를 이용 브라우저마다 개별 저장소(session객체->서버에 저장)를 서버에서 제공 (쿠키가 브라우저에 저장되기 때문에) 브라우저가 요청을 보내면 서버가 세션아이디를 준다. 다음 요청부터는 쿠키가 자동으로 간다. 요청이 원래는 독립적이지만, 쿠키를 이용해 세션아이디를 주므로 세션아이디라는 꼬리표가 요청에 따라붙기 때문에 같은 세션 아이디를 가진 요청들은 같은 세션에 포함되는 것으로 한다. 같은 세션에 포함되어있는 동안 세션 저장소(세션 객체)도 같이 쓴다. 끝내는 방법 1. 수동 종료 2. 자동 종료 : 특정 시간 지나면 새로운 세션 아이디 발급 세션의 생성 과정 처음에 브라우저가 요청을 하면 서버가 무조건 세션 객체(저장소)를 만든..