2015-11-05 47 views
3

獲取Java中的當前網頁文件夾這似乎很簡單,但似乎我在Google找不到答案。 我需要在我的webroot文件夾中發送文件列表,類似於目錄瀏覽。用Jersey JAX RS.WS

我正在使用Glassfish,JAX-RS.WS和genson for POJO作家。

應用程序的結構是這樣的:

download 
|- build 
|- dist 
|- src 
|- web 
| |- files 

下面是我的代碼

@Path("home") 
public class HomeResource { 

    @Context 
    private UriInfo context; 

    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    public String get() { 
     return System.getProperty("user.dir"); // ??? Any idea what should be in here? 
    } 
} 

,它給了結果爲:

/usr/lib/glassfish/glassfish/domains/domain1/config 

我需要它指向

/sites/download/web/ 

或至少

/sites/download/ 

,因爲我需要我的服務給例如像列表:

/files/item.zip 
/files/document.pdf 

任何人都可以請幫助?

謝謝

回答

4

您可以從servlet context得到real path

package com.scotth.jaxrsrealpath; 

import javax.servlet.ServletContext; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.QueryParam; 
import javax.ws.rs.core.Context; 
import javax.ws.rs.core.MediaType; 

/** 
* @author scotth 
* jax-rs application deployed to /JaxRsRealPath/ 
*/ 
@Path("sample") 
public class SampleResource { 

    @Context ServletContext servletContext; 

    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getHello(@QueryParam("path") String requestedPath) { 
     String path = requestedPath == null ? "/" : requestedPath; 
     String actualPath = servletContext.getRealPath(path); 
     return String.format("Hello, world! \nRequested path: %s\nActual path: %s", path, actualPath); 
    } 
} 

請求/JaxRsRealPath/sample?path=/WEB-INF產量,在我的日食管理Tomcat實例,實際文件系統路徑所請求的文件或文件夾 - 可與java.io.File

Hello, world! 
Requested path: /WEB-INF 
Actual path: /Users/scotth/Workspaces/eclipse45-default/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/JaxRsRealPath/WEB-INF/ 

,只是要求/JaxRsRealPath/sample另一個例子(代碼然後檢查上下文根的路徑/):

Hello, world! 
Requested path:/
Actual path: /Users/scotth/Workspaces/eclipse45-default/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/JaxRsRealPath/ 

從那裏y如果需要,可以使用File APIs獲取文件的目錄列表。

+0

That works .. Thank you – Magician

相關問題