Scope
프로그램 상에서 선언된 변수들은 저마다 사용 가능한 범위를 가진다.
그 범위를 변수의 Scope라 부른다.
sendRedirect()
- 요청(1)이 들어오면 이동해야할 페이지 주소를 응답해서 재요청(2)
- 요청이 2번 발생, 서로 다른 request객체이기 때문에 데이터 유지 불가능
- 쿼리스트링 방식으로 전송할 수 있지만, Text형태의 데이터만 전송 가능
- 요청이 2번이기 때문에 네트워크 트래픽이 발생 -> 실행속도가 상대적으로 느림
- 이동할 페이지를 새롭게 요청하는 것이기 때문에 다른 서버의 페이지로 이동 가능
Forward
- 요청(1)이 들어오면 해당 요청(1)을 그대로 가지고 이동할 페이지로 이동
- 요청이 1번이고, 같은 request객체이기 때문에 데이터 유지 가능
- request객체에 저장하기때문에 Object형태의 데이터 전송 가능
- 요청이 1번이기 때문에 네트워크 트래픽 발생x -> 실행속도가 상대적으로 빠름
- request객채가 그대로 이동하기 때문에 같은 서버의 페이지로만 이동 가능하다
request
하나의 요청을 처리하는 영역
- requset 객체 값 지정 .setAttribute("key값", "value값")
request.setAttribute("request", "하나의 요청");
- requestDispatcher 객체 : request객체를 이동 시켜주는 역할
RequestDispatcher rd = request.getRequestDispatcher("./Ex02_scope.jsp");
- .forward(request, response)
rd.forward(request, response);
// requestDispatcher 객체의 기능으로, 현재 페이지의 requset, response를 이동시킨다.
- request 값 조회 .getAttribute("조회할 데이터 Key값")
String getReq = (String)request.getAttribute("request");
// Object 자료형으로 반환하기 때문에 형 변환이 필요하다.