Burninghering's Blog
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,..

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

회원 가입 화면 작성하기 매번 경로를 치기 번거로우므로 resources mapping="/**/resources" 에서 resources mapping="/**" 으로 바꾸어준다 Form 태그에 아무것도 입력해주지 않았기 때문에, Get요청이 기본으로 간다. (Head만 있고 Body는 없으므로 QueryString으로 정보가 간다) 다른 곳으로 전송이 되지 않아서 자기 자신한테 전송됐고 refresh되는 상태이다. 아이디 비밀번호 이름 이메일 생일 input type의 name에 따라 데이터의 name이 결정된다. id=${param.id} pwd=${param.pwd} name=${param.name} email=${param.email} birth=${param.birth} sns=${param...