簡體   English   中英

如何在運行時在Tomcat服務器上發布生成的非Java資源?

[英]How to publish non-Java resources generated at runtime on a Tomcat server?

我有一個在Tomcat上運行的Java Webapp。 在運行時,我創建要在Tomcat服務器上公開發布的圖像文件。

1 /如何獲取要在其中復制圖像文件的本地URL? (即/ mylocalpath / to / where / i / should / store / the / file /)

2 /如何知道其他計算機可以訪問此公共文件的URL? (即http://mydomainname/myapp/myresource.png

將路徑保存在servlet init-param,JNDI字符串或屬性文件中。 (或者您的框架提供的任何允許簡單配置的東西。)

創建一個servlet / action / controller / etc。 映射到一個已知的URL。 傳入帶有文件名的參數,或者使文件名成為URL的一部分。 將文件內容流回給用戶。 (搜索“圖像servlet”作為示例。)

請記住文件的mime類型並設置適當的標頭。 如有必要,請檢查發出請求的用戶是否有權訪問該文件。 (有幾種實現方法。)

我想出了一種簡單得多的方法(對於Tomcat專家來說這聽起來似乎很明顯,但對其他人卻很有用)。

在Tomcat 6“ server.xml”文件中,我在<Host>元素中添加了以下行:

<Context docBase="/mylocalpath/to/where/i/should/store/the/file" path="/uploads" />

然后,當我創建資源時,我將其復制到此本地目錄中,然后很容易地找出公共URL: http:// myserver / uploads / myfilename

希望它可以幫助其他人。

(我什至認為可以在WAR中包含的context.xml中定義上下文,而不是在Tomcat的全局配置中定義上下文,但是全局定義足以滿足我的需求)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM