저는 웹 응용 프로그램 작성 및 배포 (전쟁) 에서 이 Tomcat. Webapp) 에 있는 페이지가 양식이 일부 구성 데이터를 관리자가 입력할 수 있습니다. 내가 don& # 39 이 데이터를 저장하는 싶지 않다, 데이터베이스관리시스템 (dbms) 한 것이 아니라, xml 파일에 있는 파일 시스템에서. 여기서 것을?
어디선가 동일팔레트에 싶다 파일 디렉터리 트리와 여기서 응용 프로그램 자체의 구축됨. 내 설정파일에서 할 수 있는 WEB-INF 디렉터리입니다? 또는 다른 곳에 넣어?
무엇이고, Java 코드를 사용할 수 있는 길을 찾기 위해 상대경로를 서브렛 디렉토리에는? 또는 상대 경로로 액세스되어야 수 있는가?
별도의 디렉토에 서버만을 우리가하는 넣을 수 있다 (rec.601 사용할 수 있는 같은 일이 / 구성 / opt / 구성, / root / 구성 / home / username/config, 또는 기타 다른 운영까지도). 시작할 때, 그들은 우리의 servlets XML 파일을 읽을 수 있는 몇 가지 out of it (가장 중요한 것은 DB 연결을 정보), that& # 39 의 거잖나.
우리는 한 번 이런게야 이유에 대해 물었다.
하지만 분명히 DB 에 있는 모든 것이 좋은 저장하였습니다 너회가 can& 정보 DB, DB 연결을 # 39, t 스토어
파일을 변경할 것을 두고 전쟁을 신앙이니라 수도 있다는 것을 훨씬 좋은 것, 나쁜 발상이다. 문제는 이 경우 정보 선택하고다음을 변경해야 할 때 반드시 재배치합니다 덮어씁니다 뭐든 변화를 가져오는 버전 파일 그러하매 didn& # 39, 잊혀진 전쟁 내장되었을 이보다 더 좋을 순 없다.
우리를 위해 아주 특별한 것이 아니라 파일 시스템에서 파일의 배치하십시오 작동됨. # 39 이 doesn& 없다, 모든 대량량 적지 않다. 어디에 있는지 알아, it& # 39 에 저장된 모든 값을 쉽게 할 수 있다면 다른 여러 머신뿐만 세페라리 수립됩니다 구성용 (이후 it& # 39 에 속하지 않는다는 전쟁).
이 밖에 생각할 수 있는 모든 것은 내가 아니라 솔루션이므로 약간만이라도 DB 로그인 정보 데이터베이스 (db) 를 제외한 협력할 것이라고 말했다. Java 의 특성이 있는 jvm 이 시스템을 통해 읽어들여집니다 나올 것으로 보인다. 위에서 언급한 것은 이 기본설정에는 apiu 한스 도겐. 내가 생각하는 그 때 처음 개발된 응용 프로그램, 그는 주위의 don& t # 39 의 경우 wasn& 알렸어 # 39, t) 를 가리킨다.
좋은 장소로 web-inf 는 모세야 네 구성용 절실해졌습니다. # 39 의 일부 코드를 here& 내려받습니다 디렉터리 경로 상대경로를 충스러웠으니 서브렛.
public void init(ServletConfig servletConfig) throws ServletException{
super.init(servletConfig);
String path = servletConfig.getServletContext().getRealPath("/WEB-INF")
이 질문에 대한 대답은 이 않으려면 구성 파일을 읽고 쓸 수 있는 방법에 따라 달라집니다.
예를 들어, 스프링 프레임워크 기능을 사용하면 [use XML 구성 파일] (http://static.springframework.org/spring/docs/2.5.x/reference/beans.html # 콩 팩터리의 인스턴스) (또는 java 속성 파일); classpath 에 저장할 수 있습니다 (예를 들면, 의 WEB-INF 디렉토리임), 파일 시스템의 다른 곳에, 심지어 메모리에. 이 후 봄 조교하실 경우 사용할 수 있는 가장 쉬운 저장하였습니다 배치하십시오 구성 파일 사용 중인 Spring& # 39 의 WEB-INF 디렉터리인 사용 후 [클라스파시스마라프리카션콘테스트] (http://static.springframework.org/spring/docs/2.0.x/api/org/springframework/context/support/ClassPathXmlApplicationContext.html) 클래스를 액세스하세요 구성파일입니다.
하지만, 이 방법은 해당 파일을 액세스하려면 계획하십시오 달려 있다.