[JSP] JSP 내장 객체 application 메서드 및 예제

2022. 9. 19. 20:20·Front-End/JSP

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>

 


 


참고 문헌 : 몰입형 강의

https://codevang.tistory.com/199

'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
'Front-End/JSP' 카테고리의 다른 글
  • [JSP] 자바빈즈로 회원가입 페이지 구현하기 (useBean 액션 사용, 미사용 버전 2가지)
  • [JSP] 간단한 장바구니 구현하기 (세션 사용)
  • [JSP/Servlet] 서블릿 구현하기 (HttpServlet, web.xml, 매핑이란?)
  • [JSP] 서블릿(Servlet)과 JSP 정리, MVC 패턴
현기
현기
  • 현기
    현기의 개발블로그
    현기
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • Front-End (39)
        • Next (5)
        • React (8)
        • React Native (11)
        • Flutter (0)
        • Vue (1)
        • JSP (9)
        • HTML, CSS, JS (5)
      • Back-End (16)
        • Node.js (3)
        • Spring (8)
        • Flask (1)
        • AWS (4)
      • DB (5)
        • Oracle (4)
        • MySQL (1)
      • Python (7)
      • Java (27)
        • 자바 이론 (17)
        • 코딩테스트 연습 & 실습 (10)
      • 자료구조 & 알고리즘 (7)
        • 코딩테스트 (6)
        • 알고리즘 (1)
      • 블록체인 (0)
      • 프롬프트 엔지니어링 (0)
      • CS 지식 (5)
      • IT뉴스 (0)
      • 일상 (3)
      • etc (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DI
    Express
    티스토리챌린지
    react
    포스트맨
    React Native Chart
    오블완
    REST API
    Python
    그리디
    자바 스프링
    Java
    오라클
    JDBC
    next-intl
    서블릿
    스택
    React Native
    상속
    react-native-chart-kit
    쓰레드
    JSP
    자바
    자바스크립트
    큐
    리액트 네이티브
    IS-A
    node.js
    파이썬
    Spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
현기
[JSP] JSP 내장 객체 application 메서드 및 예제
상단으로

티스토리툴바