스프링의 정석/Ch. 02 Spring MVC

스프링의 정석/Ch. 02 Spring MVC

34. IntelliJ 사용법 익히기

1. 프로젝트 열기 File - Open에서 ch2_final 연다. 2. 단축키 Help - Keyboard Shortcuts PDF를 클릭하면 PDF파일로 단축키가 나온다. File - Settings에서 keympa을 입력하면 단축키를 수정할 수 있다. shift 두 번 클릭하면 검색 가능하다. 3. Edit 어느 상태에서 ESC키 입력하면 Ediotr 창으로 Focus 이동한다. 소스 파일에 space로 미리보기 사용할 수 있다. 4. switcher 다른 창이나 열려있는 파일로 이동하는 단축키는 ctrl+tab이다. ctrl을 누른 채로 tab또는 shift+tab(반대 방향)으로 이동할 수 있다. 5. Recent Files ctrl+E는 최근 수정한 Recent File과 Location을 ..

스프링의 정석/Ch. 02 Spring MVC

33. 프로젝트 export와 import

1. STS에서 프로젝트 추출 Export Archive File - Next> Browse를 클릭한다음 압축 파일이 저장될 폴더를 선택한다. 2. STS에서 프로젝트 import https://github.com/castello/spring_basic/blob/main/download/ch2_final.zip Import - Existing Projects into Workspace Select Archive file에서 Archive는 zip 파일이다. ch2_final 프로젝트 import 되었다. 3. IntelliJ에서 프로젝트 import ch2_final 압축을 푼다음 "C:\Users\name\IdeaProjects"경로에 복사해서 붙여넣는다. IntelliJ에서 ch2_final open..

스프링의 정석/Ch. 02 Spring MVC

32. IntelliJ 설치 - Windows

프로젝트를 생성한다. JDK 버전은 11이다. 프로젝트 파일은 사용자 아래 IdeaProject 폴더 아래에 생긴다. 프로젝트를 생성하면 위와 같은 화면이 뜬다. sout을 입력하면 System.out을 자동으로 완성한다. 실행하면 "Hello" 출력된다.

스프링의 정석/Ch. 02 Spring MVC

30. 데이터의 변환과 검증(1)

1. WebDataBinder URL 요청을 위와 같이 했을 때 Query String에 있는 year, month, day는 parameter Map 형태로 데이터가 담긴다. Controller에서 Mydate 매개 변수 타입으로 받으면 오른쪽 객체가 만들어진다. 요청할 때 넘어온 year, month, day를 binding할 때 중간에 WebDataBinde가 타입 변환, 데이터 검증 두 가지 역할을 한다. parameter Map 자료형은 String이고 Mydate 자료형은 int이므로 타입이 불일치 해서 형변환을 해야한다. 타입을 변환하고 결과는 BindingResult에 담고 에러가 발생하면 같이 저장한다. month는 1~12값을 가져야해서 타입을 변환한 다음에 데이터 검증을 한다. 문제가..

스프링의 정석/Ch. 02 Spring MVC

29. DispatcherServlet 파헤치기

1. DispatcherServlet이란? Controller의 공통 부분인 입력을 따로 빼낸 것이 DispatcherServlet이다. DispatcherServlet은 전처리이다. 각 서블릿이 공통적으로 처리해야 할 일을 해주는 것이 전처리라 생각하자. 2. Spring MVC의 요청 처리 과정 DispatcherServlet이 요청을 받고 Controller에게 요청의 결과로 view 이름을 받고, 이에 해당하는 jsp를 찾아 응답을 해주는 것이 MVC 요청 처리 과정이다. 하지만 중간에 생략된 것이 있다. HandlerMapping에 Key는 URL, Value는 메서드 형태로 mapping되어 있다. 요청으로 "ch2/register/add"가 들어오면 HandlerMapping이 URL에 해당..

스프링의 정석/Ch. 02 Spring MVC

27. 예외처리(1) - 실습

실습 코드 : https://github.com/castello/spring_basic/blob/main/ch2/error.jsp error.jsp, ExceptionController를 만든다. ExceptionController는 예외를 일부러 발생시킨다. com.fastcampus.ch2.ExceptionController.main(ExceptionController.java:10) 이렇게 예외가 발생했는데 처리를 안하면 톰캣이 500 error를 발생한다. Try/catch Block을 이용해서 예외처리를 해준다. 예외처리를 하니 404 error로 바뀐다. 반환 타입이 void이기 때문에 view를 mapping된 ex.jsp로 찾는다. 반환 타입을 수정하고 error.jsp가 출력되도록 바꾼다..

스프링의 정석/Ch. 02 Spring MVC

26. 세션(Session) - 실습(2)

2. 로그인 후, 게시판으로 이동 사용자가 게시판을 로그인 하지 않고 클릭 했을 때 로그인 후 홈화면 보다는 게시판을 보여주는 것이 좋다. 각 단계마다 어디서부터 오고 가야 하는지 저장되어 있다. LoginController에서 boardList로 넘어가기 위해서는 '/board/list' 주소가 LoginController에게 전달되어야 한다. 하지만 '/board/list'는 BoardController, loginForm에만 있기 때문에 이 정보를 LoginController에게 전달해야한다. to 정보는 request.getRequestURL() 메서드를 사용하면 알 수 있고 from 정보는 request.getHeader("referer") 메서드를 이용하면 알 수 있다. PerformanceF..

스프링의 정석/Ch. 02 Spring MVC

25. 세션(Session) - 실습(1)

1. 게시판 이용시, 미로그인이면 로그인 화면으로 이동 1. index.jsp(홈 화면)에서 Board(게시판)을 클릭하면 URL "/board/list"로 요청을 한다. 2. boarderController에서 로그인 여부를 확인한다. 2-1. 로그인 O : boardList.jsp 2-2. 로그인 X : loginForm.jsp -> 정확히는 LoginController로 간다. 3. id, pwd가 일치하면 홈 화면으로 나간다. 1.1 게시판, 로그인 연동하기 boardList.jsp를 만든다. BoardController를 만든다. Board는 출력이 잘 된다. 이제 로그인 여부를 확인해서 Board 접근 허용을 만든다. 로그인을 하고 Board를 클릭해도 session의 여부만 확인했지 id를 ..

스프링의 정석/Ch. 02 Spring MVC

24. 세션(Session) - 이론

1. 세션이란? 요청 하나 하나는 서로 독립적이다. 즉 서로 관련이 없다. 이 요청들을 묶은 것이 세션이고 쿠키를 이용한다. 서버에서 브라우저마다 개별 저장소(session 객체)를 제공한다. 브라우저마다 세션이 생기는 이유는 쿠키를 이용하기 때문이다. 차이점은 쿠키는 브라우저에 저장되지만 세션은 서버에 저장된다. session의 정의는 "a collection of related HTTP tranactions made by one brower to one server."이다. 여기서 HTTP tranactions는 요청과 응답을 말한다. 또한 one brower to one server로 브라우저와 서버에 1:1로 있음을 알 수 있다. 브라우저가 요청을 하면 서버가 JESSIONID을 보낸다. 첫 번째..

스프링의 정석/Ch. 02 Spring MVC

23. 쿠키(Cookie)란

loginForm.jsp를 만들고 이를 LoginController에서 호출한다. 아이디 기억을 쿠키를 통해 구현할 것이다. 1. id, pwd를 확인하기 위해 변수로 id, pwd, rememberId를 만든다. 2. id, pwd가 일치하지 않을 때 msg를 출력하기 위해 URLEncoder를 이용한다. 3. redirect는 Get요청으로 돌아가기 때문에 GetMapping된 loginForm으로 돌아간다. 4. loginCheck는 간단히 만든다. redirect를 위해 index.jsp를 만든다. home을 HomeController가 받아서 출력이 되지 않는다. HomeController를 index로 가게 만든다. 새로고침을 하면 CSS가 적용되지 않는다. 정적 파일이기 때문에 CSS를 re..

돌맹이떼굴떼굴
'스프링의 정석/Ch. 02 Spring MVC' 카테고리의 글 목록