JSP 내장 객체란 컨테이너에 의해 미리 선언된 자바 클래스의 참조 변수다.
즉, JSP에서 선언하지 않고 사용할 수 있는 객체다.
request, session, application 등 총 9개가 존재한다.
application은 웹 서버의 애플리케이션 처리와 관련된 정보를 참조하기 위해 사용한다.
처음 컨테이너가 구동될 때 단 하나의 객체만 생성됩니다. 기본적으로 서버에 대한 정보나 서블릿에 대한 정보들을 가지고 있는데 어플리케이션(프로젝트 단위) 내 모든 JSP/서블릿들이 공유하는 객체다 보니 데이터를 편리하게 운송하는 수단으로 주로 쓰입니다.
📝 application 메서드
⦁ 개발자를 위한 서버 관련 정보 메서드
getServerInfo() | JSP/서블릿 컨테이너 이름과 버전 반환 |
getMajorVersion() | 컨테이너가 지원하는 서블릿 API의 Major 버전 정보 반환 |
getMinorVersion( ) | 컨테이너가 지원하는 서블릿 API의 Minor 버전 정보 반환 |
⦁ 서버 자원 정보 메서드
getMimeType(filename) | 문자열 filename에 지정된 파일에 대한 MIME type을 반환 |
getResource(path) | 문자열 path에 지정된 자원을 URL 객체로 반환 |
getResourceAsStream(path) | 문자열 path에 지정된 자원을 InputStream 객체로 반환 |
getRealPath(path) | 문자열 path에 지정된 자원을 파일 시스템의 실제 경로로 반환 |
getContext(path) | 문자열 path에 지정된 자원의 컨텍스트 정보를 반환 |
getResourceDispatcher(path) | 문자열 path에 지정된 자원을 위한 request dispatcher를 생성 |
⦁ 로그 관련 메서드
log(message) | 문자열 message 내용을 로그 파일에 기록 로그 파일 위치는 컨테이너에 따라 다름 |
log(message,exception) | 예외 상황과 관련한 정보를 포함하여 로그 파일에 기록 |
⦁ 속성 관련 메서드
getAttribute(String name) | 문자열 name에 해당하는 속성값이 있다면 Object 형태로 가져옴. 반환 값에 대한 적절한 형 변환이 필요 |
getAttributeNames( ) | 현재 application 객체에 저장된 속성 이름을 Enumeration 형태로 가져옴. |
setAttribyte (String name, Object value) |
문자열 name 이름으로 Object 형 데이터를 저장 Object 형이므로 자바 클래스 형태로도 저장 가능 |
removeAttribute(String name) | 문자열 name에 해당하는 속성을 삭제 |
프로젝트 파일의 경로와 톰캣 경로가 다른 경우가 많아서, 경로 에러가 빈번하게 발생한다고 한다.
따라서 getRealPath(path) 를 통해 실제 경로를 확인하고 코드를 작성해야 한다.
application 예제
⦁ 1 페이지
🧾 소스코드
더보기
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h3>application 예제</h3>
<hr/>
1. 서버정보 : <%= application.getServerInfo() %> <br/><br/>
2. 서블릿 API 버전 정보 : <%=application.getMajorVersion()%>.<%=application.getMinorVersion()%> <br/><br/>
3. 파일의 실제 경로 : <%= application.getRealPath("/") %> <br/><br/>
<hr/>
<%
application.setAttribute("username", "현기");
application.setAttribute("count", 1);
%>
setAttribute로 username 변수에 "현기" 설정 <br/><br/>
<a href="2.jsp"> 확인하기 </a>
</body>
</html>
⦁ 2 페이지
🧾 소스코드
더보기
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<p>username에 설정된 값은 <%=application.getAttribute("username")%></p>
<%
//카운트
Integer count = (Integer) application.getAttribute("count");
count++;
application.setAttribute("count", count);
%>
count:<%=count%>
</body>
</html>
참고 문헌 : 몰입형 강의
'Front-End > JSP' 카테고리의 다른 글
[JSP] JSP에서 DB연동하기 (JDBC, 오라클, 커넥션 풀) (3) | 2022.10.08 |
---|---|
[JSP] 자바빈즈로 회원가입 페이지 구현하기 (useBean 액션 사용, 미사용 버전 2가지) (1) | 2022.09.21 |
[JSP] 간단한 장바구니 구현하기 (세션 사용) (2) | 2022.09.20 |
[JSP/Servlet] 서블릿 구현하기 (HttpServlet, web.xml, 매핑이란?) (2) | 2022.09.16 |
[JSP] 서블릿(Servlet)과 JSP 정리, MVC 패턴 (8) | 2022.09.15 |