2017-10-11 7 views
0

これは明らかな質問のように聞こえるが、そうではない。私は答えの束を通過してきたし、URLがファイルに何か言っているか言っていない。Tomcatで静的ファイルをホストする方法とそのファイルのURLは?

私は私のXMLは、このようにそれを参照できるように.DTDファイルをホストすることができるようにしたい:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE Somexml SYSTEM "http//:example.com/my.dtd"> 
<Somexml> 
</Somexml> 

私は/静的/ で私のファイルを入れて試してみたが、Tomcatがあるという証拠はありませんこのファイルをホストしています。

これは私がすでに見てきたいくつかの質問です。それらのどれもお願いしたり、ファイルのURLを述べるので、この質問は重複しない。 How to serve static content from tomcat https://serverfault.com/questions/143667/how-to-access-a-simple-file-or-folder-from-tomcat-webapps-folder How to serve static files in my web application on Tomcat Simplest way to serve static data from outside the application server in a Java web application https://www.moreofless.co.uk/static-content-web-pages-images-tomcat-outside-war/

答えて

0
あなたは、サーブレットを作成することができ

:へ

@WebServlet("/images/*") 
public class ImageServlet extends HttpServlet { 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String filename = request.getPathInfo().substring(1); 
     File file = new File(PATH_TO_LIBRARY_WHERE_FILES_ARE_STORED, filename); 
     response.setHeader("Content-Type", getServletContext().getMimeType(filename)); 
     response.setHeader("Content-Length", String.valueOf(file.length())); 
     response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\""); 
     Files.copy(file.toPath(), response.getOutputStream()); 
    }  
} 

次にURLをファイルはhttp://www.yourdomain.com/images/name_of_file.xxx

+0

となります。PATH_TO_LIBRARY_WHERE_FILES_ARE_STOREDは、WARにデプロイするフォルダですか?だから私はすべてのファイルを1つのバンドルにまとめることができます。または、各環境のサーバーに自分のファイルをアップロードし、PATH_TO_LIBRARY_WHERE_FILES_ARE_STOREDの絶対パスを使用しますか? –

+0

サーブレットを作成する必要はありません。デフォルトのサーブレットは完全にうまくいっています。あなたがしなければならないのは、パスとURLを正しいものにすることだけです。 – EJP

+0

@PhilipRegoはいできます。しかし、あなたのパスが正しいことを確認してください。 – Milkmaid

関連する問題