application 내장 객체

박영준·2024년 6월 27일
0

JSP

목록 보기
16/17

웹 서버의 애플리케이션 처리와 관련된 정보를 참조하기 위해 사용

1. 메서드

  • 서버 관련 정보 (개발자를 위한)

    • 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에 해당하는 속성을 삭제

2. 예시

applicationTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>application 내장 객체 메서드 테스트</title>
</head>
<body>
	Server 정보 : <%= application.getServerInfo() %>
	<br>
	<br>
	Servlet API Version 정보 : <%= application.getMajorVersion() %>.<%= application.getMinorVersion() %>
	<br>
	<br>
	파일의 실제 경로 : <%= application.getRealPath("/") %>
	<br>
	<br>         
	<hr>
	
	<%
		// username, count 변수 설정(set)
      	application.setAttribute("username", "사용자1");	// username 변수 값을 "사용자1"로 지정
		application.setAttribute("count", 1);		// count 는 1부터 시작됨
	%>
	
	<a href="applicationCheck.jsp">확인하기</a>
	
</body>
</html>

  • 파일의 실제 경로 : <%= application.getRealPath("/") %> : " " 비워두거나 "/" 슬래시로 채워둔다.

applicationCheck.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>application 내장 객체 메서드 확인 테스트</title>
</head>
<body>
    // username 변수 조회(get)
	username 설정 값 : <%= application.getAttribute("username") %>
	<br>
	<br>
	
	<%
      	// count 변수 조회(get)
		Integer count = (Integer) application.getAttribute("count");
		
		// 조회해온 변수의 값에 +1
		count++;

		// counting 후, 늘어난 값으로 재설정(set)
		application.setAttribute("count", count);
	%>
	
	count : <%= count %>
	
</body>
</html>

getRealPath(path) 사용 권장!
프로젝트 파일의 경로와 Tomcat 경로가 다른 경우가 많아서 경로 에러가 발생하는 경우 多
--> 따라서, 해당 메서드를 통해 실제 경로를 확인하고 코드를 작성하길 바란다.

profile
개발자로 거듭나기!

0개의 댓글