(1)、 request.getRealPath( "/"); //プロジェクトのルートパスを使用してプロジェクトを取得することはお勧めしません
(2)、 request.getRealPath(request.getRequesturi()); // JSPへのパスを取得します。この方法は使いやすく、サーブレットとJSPで直接使用できます
(3)、 request.getSession()。getServletContext()。getRealPath( "/"); //プロジェクトのルートパスを取得します。この方法は使いやすく、サーブレットとJSPで直接使用できます
(4)、 this.getClass()。getClassLoader()。getResource( "")。getPath(); //プロジェクトクラスの下でパスを取得します。この方法は、JSP、サーブレット、およびJavaファイルで使用できます。これは、JSP、サーブレットであっても、実際にはJavaプログラムであり、すべてのクラスであるためです。したがって、それは一般的なアプローチでなければなりません。
0。絶対的および相対パスについて
1.基本概念の理解絶対パス:絶対パスは、ハードディスク上のホームページ上のファイルまたはディレクトリの実際のパス(URLおよび物理パス)です。たとえば、c:xyz est.txtは、test.txtファイルの絶対パスを表します。 http://www.sun.com/index.htmは、絶対的なURLパスも表します。相対パス:特定のベンチマークディレクトリに対するパス。たとえば、サーブレットでは、Webの相対パス(HTMLの相対ディレクトリ)が含まれています。物理的経路の相対的な表現。たとえば、「./」は現在のディレクトリを表します。 "../は以前のディレクトリを表します。この同様の表現は、相対パスにも属します。さらに、URI、URL、URNなどについては、RFC関連のドキュメント標準を参照してください。 RFC 2396:ユニフォームリソース識別子(URI):汎用構文、(http://www.ietf.org/rfc/rfc2396.txt)2。 JSP/サーブレットの相対的および絶対パスについて。 2.1サーバー側のアドレスサーバー側の相対アドレスは、Webアプリケーションのアドレスを指します。このアドレスはサーバー側に解析されます(HTMLやJavaScriptの相対アドレスとは異なり、クライアントブラウザによって解析されます)
1。request.getRealPath
方法:request.getRealPath( "/")
取得したパス:C:/プログラムファイル/Apacheソフトウェアファンデーション/Tomcat 5.5/webapps/strutstest/
方法:request.getRealPath( "。")
取得したパス:C:/プログラムファイル/Apache Software Foundation/Tomcat 5.5/WebApps/StrutStest/。
方法:request.getRealPath( "")
取得したパス:C:/プログラムファイル/Apache Software Foundation/Tomcat 5.5/WebApps/Strutstest
request.getRealPath( "web.xml")
C:/プログラムファイル/Apache Software Foundation/Tomcat 5.5/webapps/strutstest/web.xml
2。request.getParameter( "");
actionform.getMyFile();
方法:string filepath = request.getParameter( "myfile");
取得したパス:d:/vssインストールディレクトリ/users.txt
方法:string filepath = actionform.getmyfile();
取得したパス:d:/vssインストールディレクトリ/users.txt
--------------------------------------------------------------
Strutstestはプロジェクト名です
ActionFormのmyfile、private string myfile;
jspページ:<html:file property = "myfile"> </html:file>
--------------------------------------------------------------
3.システムパスを取得します
アプリケーションで:
System.getProperty( "user.dir")
サーブレットで:
servletcontext servletcontext = config.getServletContext();
string rootpath = servletcontext.getRealPath( "/");
JSPで:
application.getRealPath( "")
4。その他1
1.サーブレットのinitメソッドにあることができます
string path = getservletcontext()。getRealPath( "/");
これにより、Webプロジェクトへの完全なパスが得られます
例:e:/eclipsem9/workspace/tree/
ツリーは私のWebプロジェクトのルートディレクトリです
2。いつでもどのクラスでも呼び出すこともできます
this.getClass()。getClassLoader()。getResource( "")。getPath(); //テスト後、この方法は安全で最も効果的です
this.getClass()。getResource( "/conf")。getPath(); //テスト後、この方法も安全です
これにより、クラスディレクトリへの完全なパスが得られます
例:/d:/workspace/strutstest/webroot/web-inf/classes/
this.getClass()。getResource( "")。getPath()。toString();
これにより/d:/workspace/strutstest/webroot/web-inf/classes/bl/
この方法は、Web環境のパスを決定せずに使用することもできます。
3.Request.getContextPath();
Webルートのコンテキスト環境を取得します
/ツリーのように
ツリーは私のWebプロジェクトのルートコンテキストです
5。その他2
Javaでパスを取得するいくつかの方法---
1. JDKはプログラムのパスをどのように決定しますか?一般に、プログラミングでは、ファイルパスは相対パスと絶対パスに分割されます。絶対パスは処理が容易ですが、柔軟ではありません。したがって、プログラミングでファイルを操作するとき、通常、ファイルの相対パスを読み取ります。
相対パスはもう少し複雑かもしれませんが、比較的簡単です。主に誰に相対的な相対パスは、クラスローダーのパス、または現在のJavaファイルの下のパスになります。 JSPプログラミングでは、サイトのパスである可能性があります。サイトのパスと比較して、getServletContext()。getRealPath( "/")およびrequest.getRealPath( "/")を使用できます。これは、サイトを取得するための絶対的なパスです。およびgetContextPath():サイトの仮想パスを取得します。
2。class.getClassLoader.getPath():クラスローダーへのパスを取得:クラスローダーとは何ですか?一般に、クラスローダーはシステムとユーザー自体によって定義されます。システムのクラスローダーはJDKによって提供され、そのパスはJDKの下のパスであるか、TomcatなどのJSPプログラミング内で、取得したクラスローダーの場所はTomacaによって設計されたローダーのパスです。
これらを理解した後、ファイルパスの操作は非常に明確になります。プログラミングをしているときは、操作しているファイルがどのパスであるかを把握し、相対パスを取得する必要があります。
6。概要
1. Webサーバーの下にファイルパスを取得します
request.getRealPath( "/")
application.getRealPath( "")【jsp】
servletcontext()。getRealPath( "")
System.getProperty( "user.dir")[さまざまな場所で呼び出されると、取得したパスが動的に変更されます]
2。ローカルパスを取得します
jsp、<html:file property = "myfile"/>
request.getParameter( "myfile");
actionform.getMyFile();
取得した値は同じです:d:/vssインストールディレクトリ/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/classes/bl/
3。相対パスを取得します
request.getContextPath();
加えて:
getResourceまたはgetResourceasStreamは、Javaファイルで入手できます
例:getClass()。getResourceasStream(filepath); // filepathは「/filename」である可能性があります。ここで/Web公開ルートパス:Web-INF/クラスの下のWeb-INF/クラスのデフォルトパスを表します。 Tomcatでテストされています。
Javaの取得パスの上記のさまざまな方法(要約)は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。