Spring
-
21 DispatcherServlet 파헤치기Spring/01 Spring MVC 2023. 6. 15. 22:03
DispatcherServlet 파헤치기 1) DispatcherServlet이란? 2) SpringMVC의 요청 처리 과정 - HandlerMapping ① HandlerMapping은 map으로 URL과 메서드를 mapping하여 저장 ②클라이언트가 요청시, 요청에 대해서 어떤 메서드가 처리하면 좋은지 DispatcherServlet은 HandlerMapping한테 물어본다 ③ HandlerMapping은 등록되어 있는 key 값을 찾아 URL에 해당하는 메서드를 반환해준다 ④ DispatcherServlet은 해당 메서드를 컨트롤러에서 호출하게 된다 - HandlerAdapter >> HandlerAdapter는 다른 종류의 객체들도 호출가능 >> DispatcherServlet은 HandlerAd..
-
20 예외처리(2) - 이론Spring/01 Spring MVC 2023. 6. 14. 20:17
예외처리(2) - 이론 1) @ResponseStatus - 예외처리 메서드 - 응답 메시지의 상태 코드를 변경할 때 사용 >> 상태코드를 200에서 → 405번으로 변경 >> @ResponseStatus는 예외처리 메서드 앞에 붙인다 (@ExceptionHandler 앞이나 뒤에 상관X) >> 예외가 발생했는데 200번 처리는 정상적인 결과를 출력한다 따라서 400대나 500대로 변경 상태 코드 2) @ResponseStatus - 예외 클래스 - 예외 클래스 - 사용자 정의 예외 클래스를 만들 때 사용 3) 에러 상태 페이지 변경 ExceptionCotroller2.java views → web.xml >> 작성 webapp → error400.jsp , error500.jsp 작성 4) Simple..
-
19 예외처리(1) - 실습Spring/01 Spring MVC 2023. 6. 13. 19:59
예외처리(1) - 실습 ExceptionController.java error.jsp 결과 확인 ExceptionController.java @ExceptionHandler >> 별도의 예외 처리 메서드 public String catcher(Exception ex) >> try/catch문을 삭제, Exception 에러 발생시 return "error"로 error.jsp를 출력해준다 발생한 예외를 뷰로 출력(model 활용) ExceptionController.java error.jsp 배열로 처리가능 >> @ExceptionHandler 메서드들은 컨트롤러 내에서만 사용가능 @ControllerAdvice GlobalCatcher.java model 객체는 메서드마다 다르다
-
18 세션(Session)-실습Spring/01 Spring MVC 2023. 6. 11. 22:45
세션(Seesion) - 실습(1) 1)게시판 이용시, 미로그인이면 로그인 화면으로 이동 >> BoardController.java 와 boardList.jsp 만들기 BoardController.java boardList.jsp >> Board 클릭하면 게시판 이동 >> 현재는 로그인 없이 게시판으로 이동하게 되어 로그인 후 게시판으로 이동할 수 있도록 변경해야한다 2)LoginController.java, sesstion에 id 저장하도록 하기 LoginController.java index.jsp 변경 (세션에 ID저장) >> 세션에 id가 저장 되어 한번만 로그인을 해도 Home과 Board에 화면이 출력됨 >> 세션에 id가 저장 하지 않으면 Board→ Home으로 이동시 로그인 필요, Hom..
-
17 세션(Session)Spring/01 Spring MVC 2023. 6. 5. 20:24
1) 세션이란? - 서로 관련된 요청들을 하나로 묶은 것 - 쿠키를 이용 browser마다 개별(session 객체)를 서버에서 제공 >> 세션 : 모음, 하나의 요청과 응답 / 하나의 브라우저와 하나의 서버(1:1관계) ① 브라우저가 요청을 보내면 서버가 응답(세션 아이디를 쿠키에 저장) ② 그 다음 요청부터는 요청에 쿠키가 자동으로 따라간다 >> 첫 번째 요청 빼고는 나머지는 세션 ③ 세션이 끝나고 나면 새로운 세션 아이디가 발급 - 정리 : 원래 요청과 응답은 독립적인데, 쿠키를 이용하여 세션ID를 브라우저에 전달하여 그 이후에 요청에는 같은 세션ID를 요청에 포함하게 된다 (요청들을 하나로 묶어주는 역할→세션) 세션은 로그인부터 로그아웃까지 ※ 세션의 종류 방법 ①수동 종류 invalidate( ..
-
16 쿠키(Cookie)Spring/01 Spring MVC 2023. 6. 3. 20:12
1) 쿠키(Cookie)란? - 이름과 값의 쌍으로 구성된 정보. 아스키 문자만 가능(한글은 URL인코딩) - 서버에서 생성 후 전송, 브라우저에 저장. (유효기간 이후 자동 삭제) - 서버에 요청시 domain, path가 일치하는 경우에만 자동 전송(하위 경로 포함) 2) 쿠키의 작동 과정 3) 쿠키의 생성 >> 상대시간과 절대시간 둘 중에 하나만 사용가능 >> 상대시간과 절대시간을 둘 다 사용한 이유 : 컴퓨터마다 현재 시간이 다를 수 있다 4) 쿠키의 삭제와 변경 5) 쿠키 읽어 오기 Cookie를 이용하여 아이디 기억하기 만들기 - Cookie 브라우저 실행(크롬) loginForm.jsp 작성 크롬 브라우저(검사→Application) - boolean rememberId 출력 값 - Cook..
-
15 redirect와 forwardSpring/01 Spring MVC 2023. 6. 2. 21:57
(1) redirect와 forward 1) redirect 처리 과정 >> redirect는 요청도 2번 응답도 2번하게 된다, 응답코드는 300대 2) forward의 처리 과정 >> 클라이언트는 write.JSP에게 요청했지만, write.JSP가 처리했는지 login.jsp가 처리했는지 알 수 없다 (요청이 1번), 응답 코드는 200대 >> 스프링의 처리 방식 3) RedirectView RedirectView : 응답헤더를 만든다 >> 브라우저가 자동으로 Location 주소로 응답한 4) JstlView 5) Internal Resource View Resolver ① 컨트롤러는 return "forward:/register/add";를 → DispatcherServlet으로 전달 ② Dis..
-
14 @GetMapping @PostMappingSpring/01 Spring MVC 2023. 5. 1. 20:01
RegisterController >> reqisterForm을 호출만 해주는 역할하고 있다, 등록 >> register( ) 메서드를 주석 처리 >> @GetMapping 없이도URL에서 /register/add 호출 가능 ※알아두면 좋은 것 URLDecoder.decode(“문장”,“UTF-8”) registerForm.jsp URLDecoder.decode(“문장”,“UTF-8”) : URL에 한글을 입력하면, 브라우저가 자동으로 한글로 인코딩 해주지만, 컨트롤러의 URL에 작성에 한글을 넣게되면, 깨지게 된다 (브라우저가 개입X) 따라서 직접 인코딩을 해야하기 때문에 URLDecoder.decode( )를 사용해야 한다 redirect : 웹 브라우저(사용자)가 어떤 URL로 웹 서버를 요청했을때..