2012-08-29 2 views
0

서블릿과 JSP로 독립 실행 형의 간단한 Java 웹 응용 프로그램이 있는데 이름이 FileDisplay 인 경우 url - http://localhost:8080/FileDisplay/index.jsp을 통해 홈 페이지에 액세스하고 있습니다.Java Web App을 사용하여 브라우저에서 파일 열기

응용 프로그램이 기본적으로하는 일은 완전한 경로로 파일 이름 (.xml 및 .pdf) 목록을 검색합니다. 이 파일들은 D : \ ABCD, D : \ XYZ, D : \ PP \ 2012 \ 08 등의 다양한 외부 디렉토리에 저장되지만 다른 드라이브의 웹 응용 프로그램과 동일한 컴퓨터에 저장됩니다. 그래서 반환 목록은 다음 작업을 나던

D:\ABCD\filename1.xml 
D:\ABCD\filename2.xml 
D:\ABCD\pdf1.pdf 

내가 JSP에서 간단한 <a href="">을 사용하는 경우 같은 - 무언가이다. 나는이 파일은 웹 애플리케이션의 일부가 아닌 beacause를 생각하는

<a href="D:\ABCD\pdf1.pdf">file1</a> 

때문에 컨테이너는 로컬 및 그들을 열 수 따라서 수없는 생각 나던 - viewsource에 것 같습니다. 링크 위로 마우스 포인터를 가져 가면 상태 표시 줄에 file:///D:\ABCD\pdf1.pdf이 표시됩니다. 나는 또한 file:/// 접두어를 시도했다 href, 그럼에도 불구하고 작동하지 않습니다. 그래서 나는 다른 것들을 시도했다.
내가 시도한 한 가지는 톰캣의 server.xmlContext을 설정하는 것이지만 작동하지 않는 것으로 보입니다. Eclipse를 빌드하고 전개하고 실행하기 위해 Eclipse를 사용하고 있으므로이 컨텍스트에 맞게 수정 한 server.xml은 Eclipse 작업 공간에서 하나입니다. 내가 사용
설정은 - 내가 다른 컨텍스트가 기본 응용 프로그램에 대해 설정 한

<Context docBase="D:/ABCD" path="/File-Display/NB" reloadable="true"/> 

-

<Context docBase="FileDisplay" path="/FileDisplay" reloadable="true" source="org.eclipse.jst.j2ee.server:FileDisplay"/> 

내가 잘못 여기서 뭐하는 거지?

지금 조금 더 설명합니까?

답변

2

내가 잘못 생각한 것 같습니다.

파일 시스템에서 분산 된 다른 파일에 대한 액세스를 제공하려면 URL을 허용하는 컨트롤러 (서블릿)를 만들고 해당 파일을 읽고 응답 출력 스트림에 씁니다.

이렇게하면 리소스에 대한 액세스를 제어하고 안전하게 보호 할 수 있습니다. 파일 위치를 변경하는 등 응용 프로그램을 쉽게 수정할 수 있습니다. 기타

+0

감사합니다. 스트림을 사용하는 것이 내 마음 속에 있었지만 실제로는 스트림으로 너무 많이 가고 싶지 않습니다. 하지만 다른 옵션이 없다면 스트림을 사용할 수 있습니다. –

관련 문제