코딩항해기
[JSP] 내장 객체 (pageContext) 본문
pageContext (PageContext)
pageContext 객체는 JSP 기본 내장 객체 중 하나로 따로 선언하지 않아도 사용 가능하다. pageContext는 JSP 페이지에 대해 1:1로 연결된 객체로 JSP 하나 당 하나의 pageContext 객체가 생성된다.
pageContext 객체를 이용하면 pageContext.reqeust.contextPath를 통해 http://localhost:[포트번호]/[프로젝트명]에 해당하는 컨텍스트 루트를 얻을 수 있다. 이는 JAVA에서 pageContext.getReqeust().getContextPath()와 동일하다.
request 객체를 반환하는 메서드 외에도 다양한 메서드를 가지고 있다.
메서드 | 반환타입 | 설명 |
getRequest() | ServletRequset | request 기본 객체를 반환 |
getResponse() | ServletResponse | response 기본 객체를 반환 |
getSession() | HttpSession | session 기본 객체를 반환 |
getServletContext() | ServletContext | application 기본 객체를 반환 |
getServletConfig() | ServletConfig | config 기본 객체를 반환 |
getOut() | JspWriter | out 기본 객체를 반환 |
getException() | Exception | exception 기본 객체를 반환 |
getPage() | Object | page 기본 객체를 반환 |
주의사항
그런데 해당 메서드들을 보면 이미 pageContext에서 받아오지 않아도 사용하고 있는 기본 내장 객체들이다.
JSP가 서블릿으로 변환되는 과정에서 pageContext 객체를 통해 기본 내장 객체들을 생성해주고 있었던 것이다.
이러한 내용을 생각하면 JAVA에서 request.getContextPath()로만 컨텍스트 루트를 구한 것처럼 pageContext.request.contextPath에서 pageContext를 생략할 수 있을 것 같아진다.
그러나 EL식에서 사용법과 스크립틀릿(<%%>)에서의 사용법은 다르기 때문에 EL식을 사용해 컨텍스트 루트를 구할 때에는 pageContext부터 기입을 해야한다.
EL식에서 reqeust나 response 등에 접근할 때 pageContext를 붙이는 경우는, 주로 servletContext, request, response 등의 객체에 대한 추가적인 정보나 메서드가 필요할 때 사용한다.
'JSP' 카테고리의 다른 글
[JSP] 이전 페이지 요청 재수행 (GET) (1) | 2024.11.07 |
---|---|
[JSP] JSTL, EL, HTML, CSS, JS 동작 순서 (클라이언트 서버 사이드) (0) | 2024.11.03 |
[JSP] JDBC - MyBatis 기초 (1) | 2024.09.27 |
[JSP] JDBC - 컨디션 하드코딩 방지, 컨디션 값 변동이 예상될 때 (1) | 2024.09.15 |
[JSP] 서버 시작할 때 크롤링한 샘플데이터 추가하기 (2) | 2024.09.12 |