절대 경로로 작성될 경우, 유지보수에 따른 어려움이 발생한다.
그리하여 , application 기본 객체는, 이런 문제를 해결할 수 있도록 웹 어플리케ㅣ션의 자원에 접근할 수 있는
메소드를 제공한다 .
getRealPath(String path) 리턴타입 , String
-> 웹 어플리케이션 내에서 지정한 경로에 해당하는 자원의 시스템 상에서의 자원 경로를 리턴한다.
-> 즉, 루트 경로를 포함한 실제 경로를 리턴한다.
getResource(String path) -> URL 타입으로 리턴, 웹 어플리케이션 내에서 지정한 경로에 해당하는 자원에 접근할 수 있는
URL 객체를 리턴한다.
getResourceAsStream(String path) -> InputStream 타입 리턴 , 지정한 경로에 해당하는 자원으로부터 데이터를 읽어올 수 있는
InputStream 을 리턴한다 .
이 메소드들은, 루트 패스 이후의 하위 디텍토리에 대한, 실제 경로를 갖기 때문에, 루트 디텍토리가 바뀌어도,
수정할 필요가 없어진다.
사용 예)
<%
String resourcePath = "/img/aaa.jpg"; //루트 이후의 경로.
%>
<%= application.getRealPath(resourcePath) %> : 실제 경로. 루트를 포함한 절대 경로를 리턴한다.
<%
// 스트림 리턴 받기. getResourceAsStream
try {
br = new BufferedReader( new InputStreamReader( application.getResourceAsStream(resourcePath) ));
while( (len = br.read(buf)) != -1) {
out.print(new String(buf,0,len);
}
}catch(IOException ee){}
finally {
if(br != null ) try { br.close(); } catch(IOException ee){}
}
%>
// URL 객체를 리턴하는 getResource() 메소드
<%
try{
URL url = application.getResource(resourcePath);
br = new BufferedReader( new InputStreamReader( url.openStream()));
while( (len = br.read(buf)) != -1 ) {
out.print(new String(buf,0,len);
}
}catch(IOException ee){}
finally{
if(br != null) try { br.close(); } catch(IOException ee){}
}
%>
'JAVA > JSP & Servlet' 카테고리의 다른 글
jsp : setProperty 태그 , getProperty 태그 (0) | 2013.03.05 |
---|---|
JSP 액션 태그 사용법 ! (0) | 2013.03.05 |
web.xml 에 초기화 파라미터 추가 방법 (0) | 2013.03.04 |
HTTP 의 응답 헤더를 통한 캐시 여부 (0) | 2013.03.04 |
request 기본 객체가 제공하는 헤더 읽기 메소드 (0) | 2013.03.04 |