(1), request.getRealPath ( "/"); // 프로젝트의 루트 경로를 사용하여 프로젝트를 얻는 것이 권장되지 않습니다.
(2), request.getRealPath (request.getRequesturi ()); // JSP 로의 경로를 가져옵니다. 이 방법은 사용하기 쉽고 서블릿 및 JSP에서 직접 사용할 수 있습니다.
(3), request.getSession (). getServletContext (). getRealPath ( "/"); // 프로젝트의 루트 경로를 가져옵니다. 이 방법은 사용하기 쉽고 서블릿 및 JSP에서 직접 사용할 수 있습니다.
(4), this.getClass (). getClassLoader (). getResource ( ""). getPath (); // 프로젝트 클래스에서 경로를 가져옵니다. 이 방법은 JSP, Servle 및 Java 파일에서 모든 JSP, Servlet에 관계없이 실제로 Java 프로그램이므로 모든 클래스이기 때문에 모든 JSP, Servlet 및 Java 파일에서 사용할 수 있습니다. 따라서 일반적인 접근 방식이어야합니다.
0. 절대 및 상대 경로에 대해
1. 기본 개념 이해 절대 경로 : 절대 경로는 하드 디스크 (URL 및 물리적 경로)의 홈페이지의 파일 또는 디렉토리의 실제 경로입니다. 예를 들면 다음과 같습니다. C : xyz est.txt는 test.txt 파일의 절대 경로를 나타냅니다. http://www.sun.com/index.htm도 절대 URL 경로를 나타냅니다. 상대 경로 : 특정 벤치 마크 디렉토리와 관련된 경로. 웹의 상대 경로 (HTML의 상대 디렉토리)를 포함합니다. 예 : 서블릿에서 "/"는 웹 응용 프로그램의 디렉토리를 나타냅니다. 물리적 경로의 상대적 표현. 예를 들어 : "./"는 현재 디렉토리를 나타냅니다. ".."는 이전 디렉토리를 나타냅니다. 이 유사한 표현은 또한 상대 경로에 속합니다. 또한 URI, URL, URN 등의 경우 RFC 관련 문서 표준을 참조하십시오. RFC 2396 : 균일 자원 식별자 (URI) : 제네릭 구문, (http://www.ietf.org/rfc/rfc2396.txt) 2. JSP/서블릿의 상대 및 절대 경로와 관련하여. 2.1 서버 측 주소 서버 측의 상대 주소는 웹 응용 프로그램의 주소를 나타냅니다. 이 주소는 서버 측에서 구문 분석됩니다 (HTML 및 JavaScript의 상대 주소와 달리 클라이언트 브라우저가 구문 분석합니다).
1. request.getRealPath
방법 : request.getRealPath ( "/")
얻은 경로 : C :/Program Files/Apache Software Foundation/Tomcat 5.5/WebApps/StrutStest/
방법 : request.getRealPath ( ".")
얻은 경로 : C :/Program Files/Apache Software Foundation/Tomcat 5.5/WebApps/StrutStest/.
방법 : request.getRealPath ( "")
얻은 경로 : C :/Program Files/Apache Software Foundation/Tomcat 5.5/WebApps/StrutStest
request.getRealPath ( "web.xml")
C :/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/strutstest/web.xml
2. request.getParameter ( "");
ActionForm.getMyFile ();
방법 : String FilePath = request.getParameter ( "MyFile");
얻은 경로 : d :/vss installation directory/users.txt
방법 : String FilePath = ActionForm.getMyFile ();
얻은 경로 : d :/vss installation directory/users.txt
---------------------------------------------------------
Strutstest는 프로젝트 이름입니다
MyFile in ActionForm, 개인 문자열 myFile;
JSP 페이지 : <html : file property = "myfile"> </html : file>
---------------------------------------------------------
3. 시스템 경로를 얻으십시오
응용 프로그램 :
System.GetProperty ( "user.dir")
서블릿에서 :
ServletContext ServletContext = config.getServletContext ();
문자열 rootpath = servletcontext.getRealPath ( "/");
JSP에서 :
application.getRealPath ( "")
4. 기타 1
1. 시작 방법에있을 수 있습니다.
문자열 path = getServletContext (). getRealPath ( "/");
이것은 웹 프로젝트의 전체 경로를 얻을 것입니다.
예를 들어 : e :/eclipesem9/workspace/tree/
트리는 내 웹 프로젝트의 루트 디렉토리입니다
2. 언제든지 모든 수업에서 호출 할 수도 있습니다.
this.getClass (). getClassLoader (). getResource ( ""). getPath (); // 테스트 후이 방법은 안전하고 가장 효과적입니다.
this.getClass (). getResource ( "/conf"). getPath (); // 테스트 후이 방법도 안전합니다
이것은 클래스 디렉토리의 전체 경로를 얻을 것입니다.
예를 들어 :/d :/strutstest/webroot/web-inf/classes/
이것도 있습니다 .getClass (). getResource ( ""). getPath (). toString ();
이것은/d :/workspace/strutstest/webroot/web-inf/classs/bl/를 얻습니다.
이 방법은 웹 환경의 경로를 결정하지 않고도 사용할 수 있습니다.
3.request.getContextPath ();
웹 루트의 컨텍스트 환경을 얻으십시오
같은 /트리
트리는 내 웹 프로젝트의 루트 컨텍스트입니다
5. 기타 2
Java에서 경로를 얻는 몇 가지 방법 - -
1. JDK는 프로그램의 경로를 어떻게 결정합니까? 일반적으로 프로그래밍에서 파일 경로는 상대 경로와 절대 경로로 나뉩니다. 절대 경로는 처리하기 쉽지만 유연하지 않습니다. 따라서 프로그래밍에서 파일을 작동 할 때 일반적으로 파일의 상대 경로를 읽습니다.
상대 경로는 조금 더 복잡 할 수 있지만 비교적 간단합니다. 주로 상대적으로 상대적인 경로는 클래스 로더의 경로 또는 현재 Java 파일의 경로가 될 수 있습니다. JSP 프로그래밍에서는 사이트의 경로 일 수 있습니다. 사이트의 경로와 비교하여 GetServletContext (). getRealPath ( "/") 및 request.getRealPath ( "/")를 사용할 수 있습니다. 이것이 사이트를 얻는 절대 경로입니다. getContextPath () : 사이트의 가상 경로를 가져옵니다.
2. class.getClassLoader.getPath () : 클래스 로더로가는 경로를 얻으십시오 : 클래스 로더는 무엇입니까? 일반적으로 클래스 로더는 시스템과 사용자 자체에 의해 정의됩니다. 시스템의 클래스 로더는 JDK가 제공하며 그 경로는 JDK의 경로 또는 Tomcat과 같은 JSP 프로그래밍에서 경로이며, 얻은 클래스 로더의 위치는 Tomaca가 설계 한 로더의 경로입니다.
이것들을 이해 한 후에는 파일 경로의 작동이 매우 명확해질 것입니다. 우리가 프로그래밍 할 때, 우리는 우리가 작동하는 파일이 어떤 경로가 상대적인지를 파악하고 상대 경로를 얻는 것만으로도 있습니다.
6. 요약
1. 웹 서버 아래에서 파일 경로를 가져옵니다
request.getRealPath ( "/")
application.getRealPath ( "") 【jsp】
servletcontext (). getRealPath ( "")
System.GetProperty ( "user.dir") [다른 위치에서 호출 된 경로는 동적으로 변경되었습니다]
2. 로컬 경로를 얻으십시오
jsp에서 <html : file property = "myfile"/>
request.getParameter ( "myfile");
ActionForm.getMyFile ();
획득 한 값은 동일합니다 : 예 : d :/vss installation directory/users.txt
***********************************
this.getClass (). getClassLoader (). getResource ( ""). getPath ();
==/d :/workspace/strutstest/webroot/web-inf/classes/
this.getClass (). getResource ( ""). getPath (). toString ();
==/d :/workspace/strutstest/webroot/web-inf/classs/bl/
3. 상대 경로를 얻으십시오
request.getContextPath ();
게다가:
GetResource 또는 GetResourCeasStream은 Java 파일로 제공됩니다
예 : getClass (). getResourceasstream (Filepath); // FilePath는 "/filename"일 수 있으며 여기/웹 게시 루트 경로에서 웹 -inf/클래스의 기본 경로를 나타냅니다 : Web-inf/classes. Tomcat에서 테스트되었습니다.
위의 다양한 방법 (요약)은 경로를 얻는 경로를 얻습니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.