[ JSP3 ]
== 개념 복습 ==
page : JSP
request : Servlet, 요청위임
session : 브라우저 켜짐~꺼짐
application : 서버 켜짐~꺼짐
webapp폴더 : 앞마당(아무나 가져가기 쉬움)
WEB-INF폴더 : 집 안방(아무나 가져가기 힘듦)
MVC 패턴
Model - vo/dto, service, dao
View - html, jsp
Controller - Servlet
클라이언트 -> Controller -> Service -> DAO ->
DB/외부파일
클라이언트 <- view <- Controller <- Service <- DAO <-
ex) 로그인(요청) - 아이디 / 비밀번호
Controller : 알맞은 요청처리 매핑
Service : 비밀번호 암호화에 관련된 로직처리(데이터 가공처리)
DAO : 가공처리된 데이터를 DB에 전달
DB : 조회 -> 결과
DAO : 결과 반환
Service : 결과 반환
Controller : 결과 반환 --> 가입이 된 사람이다 : view(메인페이지로) -> 클라이언트
결과 반환 --> 가입이 안 된 사람이다 : view(회원가입 페이지로) -> 클라이언트
== forward와 redirect ==
forward : 요청 위임
- 클라이언트 요청을 받은 Servlet/JSP가 직접 응답하는 것이 아닌
다른 Servlet/JSP에 HttpServletRequest, HttpServletResponse
객체를 넘겨서(위임) 대신 응답하게 하는 것
- 요청 위임 시RequestDispatcher(요청 발송자)를 이용
- 요청 위임할 JSP 파일 경로 작성
- 응답 화면(결과 페이지) 주소는 처음 Servlet이 요청 받은 주소 그대로!
== redirect(재요청, 다른 Servlet 요청) ==
- 클라이언트의 요청을 받은 Servlet에서 직접 응답하지 않고,
다른 Servlet을 다시 요청하는 것
- 보통 Servlet 요청 처리 수 특정 JSP로 요청을 위임해
결과 화면을 응답해 주는 것이 아닌(요청 받은 Servlet이 응답해줄 JSP가 없음),
다른 Servlet으로 다시 요청하여 다른 Servlet의 결과 화면을 응답해줌
- redirect는 다시 요청하는 것!!!
-> 기존 req, resp 객체가 사라지고
새로운 req, resp 객체가 생성된다.
-> request scope에 세팅된 값들이 모두 사라짐
- redirect는 응답 화면의 주소가 처음 요청한 Servlet 주소가 아닌 재요청한 Servlet 주소로 변경된다
- 다른 Servlet을 요청하기 위해서는 "요청 주소"를 작성해야 한다.