* 본 글은 [뉴렉처]의 Servlet&JSP 프로그래밍 강의를 듣고 정리한 글입니다.
2020 Servlet&JSP 프로그래밍
www.youtube.com
JSP의 내장객체 알아보기
코드 블록의 내장 객체
- 내장 객체: Jasper가 만든 서블릿 내부의 존재하는, 미리 선언된 변수
- Jasper가 service( )메소드를 만들면서 필요한 변수들을 만듦
- 아래와 같이 page 변수를 선언하면 에러 발생
- Jasper가 미리 service( )메소드에 page를 만들어뒀는데 사용자가 page를 선언하니까 같은 메소드 내에 중복돼서 충돌
<%
int page = 1;
%>
- 에러를 방지하고 적절하게 활용하기 위해 jsp를 만들 때 Jasper가 만드는 서블릿의 코드를 살펴봐야 함
내장 객체의 종류
- HttpServletRequest.request, HttpServletResponse.response: 입력 및 출력 도구
- PageContext.pageContext: 페이지 내에서 임시로 데이터를 저장할 수 있게 하는 setAttribute( ), getAttribute( )를 갖고 있음 - 내부에서만 사용
- Http.Session.session: session 객체
- ServletContext.application: application 객체 - 전역에서 사용
- ServletConfig.config
- JspWriter.out: 출력도구
- Object.page: 해당 페이지의 객체를 참조
내장 객체 request: HttpServletRequest
- request: 입력 도구
- 사용자가 전달한 파라미터를 꺼내는 기능
- getParameterNames( )
- getParameter(name)
- getParameterValues(name)
- 쿠키 얻어내기: getCookies( )
- 사용자가 요청하는 메소드 알아보기: getMethod( )
- 세션 얻어내기: getSession( )
- 서버의 프로토콜 알아내기: getProtocol( )
- 요청자(클라이언트)의 IP 주소 알아내기: getRemoteAddr( )
- 값을 꺼낼 때 인코딩 방식 지정: setCharacterEncoding( )
- 헤더 정보 꺼내기
- getHeaderNames( )
- getHeaders(name)
- 파라미터를 통하지 않고 바로 쿼리스트링 얻기: getQueryString( )
내장 객체 response: HttpServletResponse
- response: 출력 도구
- 헤더긴 하지만 컨텐츠 타입을 별도로 설정: setContentType
- 커스터마이징된 헤더 심기
- setHeader(name, value)
- setDateHeader(name, date)
- 에러코드, 메시지 전달: sendError(status, msg)
- 다른 페이지에 응답 보내기: sendRedirect(url)
- 쿠키 출력하기: addCookie( )
- URL 인코딩하기: encodeURL(url)
- 상태 코드 설정: setStatus(sc)
내장 객체 out: javax.servlet.jsp.JspWriter
- out을 통해 출력할 수 있음
- Jasper가 자동으로 out.write 처리를 해주기 때문에 실질적으로 직접 out을 쓸 일은 많이 없음
내장 객체 session: javax.servlet.http.HttpSession
- 값이 저장되는 시간 활용하기
- getCreationTime( )
- getLastAccessedTime( )
- getMaxInactiveInterval( )
- setMaxInactiveInterval(t)
- 세션 값 얻기: getAttribute(attr)
- 세션 값 설정하기: setAttribute(name, attr)
- 세션의 특정 값만 삭제: removeAttribute(name)
- 세션을 종료하고 값 다 지우기: invalidate( )
내장 객체 application: javax.servlet.ServletContext
- 서블릿들이 사용할 수 있는 공통의 도구를 제공
- 실제 물리적인 경로 알아내기: getRealPath(path)
'☕ Java 웹 프로그래밍 > Servlet & JSP' 카테고리의 다른 글
[Servlet&JSP] JSP의 코드 블록 (0) | 2023.06.09 |
---|---|
[Servlet&JSP] JSP 시작하기 (Jasper를 이용한 서블릿 프로그래밍) (0) | 2023.06.07 |
[Servlet&JSP] 11일차 | (0) | 2023.06.05 |
[Servlet&JSP] 계산기 프로그램을 서블릿 하나로 합치기 (0) | 2023.06.05 |
[Servlet&JSP] GET과 POST에 특화된 service( )메소드 (0) | 2023.06.04 |