서블릿에서 파일 시스템을 사용하여 데이터를 관리할 때 중요한 것이 경로를 관리하는 것이다.

웹에서는 ServletContext 객체를 사용하면 된다. 현재 서블릿이 실행되는 서버의 환경 정보를 관리하기 때문에 원하는 디렉터리까지의 주소를 추출할 수 있다.

ServletContext context = this.getServletContext();
String realPath = context.getRealPath("/");


getRealPath() 메서드의 매개 변수에 "/" 를 사용하면 해당 프로젝트까지의 주소가 반환된다.

해당 프로젝트의 특정 디렉터리에 접근하려면 매개변수에 상대경로를 써주면 된다.

예를 들어 프로젝트 내의 test 디렉터리에 접근하려면 다음과 같이 쓰면 된다.

String realPath = context.getRealPath("/test");



예제) 서버 시작 시 파일로 저장된 카운트를 읽어 표시하고 서버 종료시에 파일에 저장한다.

web.xml


countServlet.java


countView.jsp


서버 시작 시 자동으로 init()이 호출되어(web.xml에 설정됨) count에 저장된다. 

처음 실행 시킨다면 파일이 없으므로 콘솔에 아래와 같이 출력될 것이다.


countServlet 서블릿이 불러지도록 해보면 (http://*********/count.do) 뷰 페이지에 카운팅 될 것이다.

페이지를 계속 갱신해보면 카운트가 올라갈 것이다.


그 다음, 서버를 종료하면 콘솔에 최종 카운트가 보이면서 파일로 저장될 것이다.


다시 서버를 구동시키면 앞서 기록한 내용과 동일함을 확인할 수 있을 것이다.


  


Posted by 후니아부지
: