私はたくさんのExcelドキュメントを持ったフォルダを持っています。ブラウザでそのフォルダのURL(例えばhttp; // localhost:8080/myfolder)を手に入れたら、それらのファイルを利用できます。Tomcatのフォルダにあるすべてのファイルを一覧表示するにはどうすればいいですか?
私が404エラーを取得するフォルダにアクセスしようとする瞬間に。私はそのフォルダにあるファイルにアクセスしようとすると、それは動作します。
私はたくさんのExcelドキュメントを持ったフォルダを持っています。ブラウザでそのフォルダのURL(例えばhttp; // localhost:8080/myfolder)を手に入れたら、それらのファイルを利用できます。Tomcatのフォルダにあるすべてのファイルを一覧表示するにはどうすればいいですか?
私が404エラーを取得するフォルダにアクセスしようとする瞬間に。私はそのフォルダにあるファイルにアクセスしようとすると、それは動作します。
DefaultServlet
をディレクトリリストを表示しないように設定されたデフォルトです。あなたは覚えておいて、Tomcatの独自の/conf/web.xml
ファイル(Tomcatのインストールフォルダ内を見て)開くDefaultServlet
の<servlet>
エントリを検索し、
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
に
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
からそのlistings
初期化パラメータを変更する必要があることこれはすべて webappのフォルダに影響します。これを個々のフォルダに対してのみ有効にしたい場合は、サーブレット側のjava.io.File
APIの助けを借りてジョブを実行して、JSP側のHTML/CSSのいくつかの束を収集するコードを自分で作成する必要がありますそれをすっきりした形で提示する。
元の投稿にweb-infファイルを追加しました。それらのパラマターがどこに行くべきかについて私に教えてください。ありがとう – code511788465541441
@ソルバー:もう1つの答えは移植性がありません(webappは、別のメイク、場合によっては異なるバージョンのサーバーにデプロイするとクラッシュする)。標準的なサーブレットAPIの一部ではありません。 – BalusC
これは、Webアプリケーションごとに行うことができます。 Tomcatのサイト全体の 'conf/web.xml'ではなく、アプリケーションの' WEB-INF/web.xml'を変更するだけです。すべての 'DefaultServlet'宣言、設定、マッピングを自分自身の' WEB-INF/web.xml'にコピーする必要がありますが、そうしたら、すべてのWebアプリケーションではなく単一のWebアプリケーションに対してディレクトリリストを有効にすることができますそのTomcatインスタンスにデプロイされます。 –
これを行う方法を説明するドキュメントがあります。
http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html
基本的な考え方は、Tomcatのメインweb.xml
にtrue
にlistings
パラメータの値を変更することです。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
ただし、上記ですべてのディレクトリが公開されます。細かな制御を持つためには、手順に従ってくださいここで説明:Tomcatのの
http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html#dir
ここでは完全にカスタムのアプローチの出発点になる単純なservletがあります。
また、指定したURLパターンから開始することもできます。 はちょうどこの例では
<servlet>
<!-- List files in /ws-definitions -->
<servlet-name>ListWsDefinitions</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ListWsDefinitions</servlet-name>
<url-pattern>/ws-definitions/*</url-pattern>
</servlet-mapping>
あなたにアプリのweb.xmlをサーブレットとサーブレット・マッピングを追加するには、以下のディレクトリ「/ WS-定義/」聞きします。
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
編集が、それは次のように:
<welcome-file-list>
<welcome-file></welcome-file>
<welcome-file></welcome-file>
<welcome-file></welcome-file>
</welcome-file-list>
をリスティングのparam値を変更して動作しない場合
は、
デフォルト値は以下の通りであったウェルカムファイルリストを編集してみてくださいそれらを削除すると完全に動作するはずです
ありがとう、それなしで私のために働かなかった。 – masterxilo
Tomcat 6を使用している場合(サーブレット2.5の仕様を実装しています)または新しいバージョンの場合、ディレクトリ一覧を表示するためにCATALINA_HOME/conf /ディレクトリのweb.xmlを変更する必要はありません。代わりに、Webアプリケーションのweb.xmlファイルをWEB-INFの下で変更する必要があります。
Adarshrが述べたように、これはあなたがweb.xmlに
<servlet>
<servlet—name>default</servlet—name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
を追加するために必要なものまた、あなたは、単にウェブを実装しようとしている場合は、次の
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
を追加する必要がありますあなたのサーブレットの外のファイルのためのベースのファイルブラウザでは、this answerで述べたカスタムwebappを使うことができます。
あなたが使用しているコードを投稿してください。また、ここでユーザー入力を行わないようにしてください。あるいは、/ etc/shadow – Woot4Moo
がhtaccess権限の問題のように見えます。 – Snicolas
@ Woot4Mooコードはありません。それはいくつかのファイルが入った単なるフォルダです。私はそのフォルダのURLに移動して、それがApacheサーバのようにすべてのファイルを表示できるようにしたい。 – code511788465541441