본문 바로가기
국비과정/Backend

국비 73일차 - [JSP] 내장 객체, 영역 객체

by Jeong.dev 2022. 7. 11.

■ 수업 파일

02_JSP/src/main/webapp/views/

- objects : JSP 내장 객체

- directive : 지시자 태그

- common : include 지시자 header, footer

- error : 에러 페이지

 

- webapp/views/objects/redirect.jsp : 다른 페이지로 전송하는 메소드

- webapp/views/objects/redirect_target.jsp : redirect로 전송받은 메소드

 

■ JSP 내장 객체(= 묵시적 객체)

 

- 내장 객체 : JSP가 자바 코드로 생성될 때 자바 파일에 자동으로 추가되는 객체

- 개발자가 객체 선언하지 않고 바로 사용

- 내장 객체와 동일한 이름으로 변수 선언 시 에러 발생함

 

1. request : 웹 브라우저의 요청 정보를 가지고 있는 객체이다.
2. response : 웹 브라우저의 요청에 대한 응답 객체이다.
3. out : 클라이언트와 연결되어 있는 출력 스트림 객체이다.
4. session : 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장하고 있는 객체이다.
5. application : 웹 애플리케이션(컨텍스트)의 실행 환경을 제공하는 서버의 정보와 서버 측 자원에 대한 정보를 저장하고 있는 객체이다.
6. page : JSP 페이지를 구현한 서블릿 인스턴스 자체를 참조하는 객체이다. (자기 자신에 대한 참조)
7. pageContext : JSP와 관련된 다른 내장 객체를 얻어내거나 현재 페이지의 요청과 응답의 제어권을 다른 페이지로 넘겨주는데 사용하는 객체이다.
8. config : JSP 페이지에 대한 설정 정보를 저장하고 있는 객체이다. (자주 사용하지 않음)
9. exception : JSP 페이지에서 예외가 발생하였을 때 에러 페이지에 전달되는 예외 객체이다.

 

1. request  객체

- main/webapp/views/objects/index.jsp

 

1) 헤더 관련 메소드

- request.getHeaderNames() : 헤더 이름 가져오는 메소드

- names.hasMoreElements() : Enumertation 인터페이스 메서드, 요소 있으면 true, 없으면 false

   -> 헤더 이름 다 가져와라

- while문 중괄호 중간에 끊어서 표 자동으로 반복하여 만들어지게 함

- host : 서버 이름

- user-agent : 브라우저에 대한 정보

- accept : 브라우저에서 처리할 수 있는 유형

- accept-encoding : 브라우저에서 처리할 수 있는 압축 처리

- accept-language : 브라우저에서 지원하는 언어

 

 

2) URL/URI, 요청 방식 관련 메소드

- URL : http (프로토콜) ://localhost (도메인, IP):8090 (서버의 포트번호)/02_JSP(contextRoot)/views/objects/ (URI)

- URI : URL 포트번호 이후  (contextPath 부터 현재 문서를 찾기위한 경로 )

- contextPath(웹 애플리케이션 경로) : /02_JSP (프로젝트명)

- 클라이언트의 IP 주소 : 로그 남기기 위해 사용함

 

 

2. response 객체

- webapp/views/objects/redirect.jsp

- webapp/views/objects/redirect_target.jsp

 

1) Redirect 메소드

<% response.sendRedirect("redirect_target.jsp"); %>

- sendRedirect(String url);

- 로그인 후 홈으로 갈 때 자주 사용한다.

- 매개값으로 지정한 URL로 요청을 재전송한다.

- 요청과 응답객체를 새로 생성하여 이전 요청과 응답 정보는 유지되지 않는다.

     → 브라우저에 표시되는 주소가 변경된다. 

     → <a href="redirect.jsp">Redirect 테스트</a> 로 호출하였으나

          실제 URL은 http://localhost:8090/02_JSP/views/objects/redirect_target.jsp

 

 

3. pageContext 객체

- webapp/views/objects/forward.jsp

- webapp/views/objects/forward_target.jsp

 

1) Forward 메소드

<% pageContext.forward("forward_target.jsp"); %>

- forward(String url);

- 매개값으로 지정한 URL로 요청과 응답에 관한 제어권을 영구적으로 넘긴다.

- 현재 페이지의 요청과 응답 정보를 다른 페이지로 넘기기 때문에 요청 정보와 응답 정보가 유지된다.

     → 브라우저에 표시되는 주소가 유지된다. 

 

 

※ redirect 와 forword 비교

 

 

  redirect  forward
요청 횟수 2번 1번
브라우저 주소(요청 URL) 변경됨  변경 안됨

 

 

4. session 객체

- Redirect 메소드

 

 

5. application 객체

- Redirect 메소드

 

 

 

 

 

■ JSP 내장 객

5. 영역 객체

1) HttpServletRequest 

- 클라이언트 → 서버

- 요청 정보를 제공하는 객체 (파라미터, 헤더 정보)

 

댓글