Burninghering's Blog
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. 자동 종료 : 특정 시간 지나면 새로운 세션 아이디 발급 세션의 생성 과정 처음에 브라우저가 요청을 하면 서버가 무조건 세션 객체(저장소)를 만든..

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

loginForm.jsp Login ${URLDecoder.decode(param.msg)} 로그인 아이디 기억 | 비밀번호 찾기 | 회원가입 LoginController.class package com.fastcampus.ch2; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/login") public class LoginController { @RequestMapping("/login") public String loginForm() { return "loginForm"; } } 아이디 기억 버..

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

Redirect와 Forward 과정 비교 JSP를 가지고 비교를 한다 브라우저가 수동으로 요청을 한 뒤 300 Redirect 에러를 받고 브라우저가 자동으로 헤더를 읽어서 새로운 곳으로 요청을 다시 한다. (요청도 2번 응답도 2번) forward 클라이언트가 요청을 한 뒤 write.jsp가 사용자가 요청한 내용을 그대로 login.jsp로 전달한다. login.jsp가 요청을 받아 처리한 뒤 응답을 한다.(클라이언트로) (요청도 1번 응답도 1번) request가 모델 객체 역할을 한다. login.jsp가 출력을 하는 뷰 역할을 한다. write.jsp가 요청을 처리하는 컨트롤러 역할을 한다. 스프링이 이 forward를 통해 MVC를 구현하는 것이다. RedirectView 클라이언트가 요청을..

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

GetMapping / PostMapping 클래스에 붙이는 @RequestMapping URL 패턴 맵핑되는 순서 1번째 : 정확히 일치하는 패턴 2번째 : 경로 맵핑 3번째 : 확장자 맵핑 실습 package com.fastcampus.ch2; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class RequestMappingTest { // @RequestMapping({"/login/hello.do", "/login/hi.do"}) @RequestMapping("/login/hello.do") // http:/..

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

회원 가입 화면 발전시키기 GET방식으로 하다보면 URL에 정보들이 노출되니 GET방식을 막고 POST 방식으로만 회원가입을 하도록 한다. (POST mapping이 4.3버전 이후라서 pom.xml에 가서 스프링 버전을 5.0.7버전으로 업그레이드 시켰다.) @RequestMapping("/register/save", method=RequestMethod.POST) 와 같이, RequestMethod로 길게 써야만 하는 방식을 @PostMapping("/register/save") 위와 같이 줄여쓸 수 있다. @Controller public class RegisterController { //@RequestMapping("/register/save", method={RequestMethod.POST,..