【问题标题】:How to bundle files such as images in a war files so that they will be accessble to Servlet?如何将诸如图像之类的文件捆绑在war文件中,以便Servlet可以访问它们?
【发布时间】:2016-07-11 16:02:21
【问题描述】:

我有一个这样的文件夹:

File file=new File("/Users/mac/Desktop/h/"+device_id+"/"+postID+".jpg");

上面的代码运行良好。 但是当我将文件夹 /h 放在项目中并通过

访问文件时
File file=new File("/h/"+device_id+"/"+postID+".jpg");

它给了我文件未找到异常 任何人都知道如何使用 war 文件正确实现文件访问?

【问题讨论】:

    标签: java android file tomcat servlets


    【解决方案1】:

    试试吧。

    BufferedReader br= new BufferedReader(new InputStreamReader(request.getSession().getServletContext().getResourceAsStream("<<Relative path from webroot of your project>>")));   E.g. Path value can be /WEB-INF/images/img1.jpg 
    

    缓冲的阅读器将拥有文件内容

    InputStream is = request.getSession().getServletContext().getResourceAsStream( "<<Relative path from webroot of your project>>" );
    

    可以从 inputStream 中获取内容

    【讨论】:

    • 我不使用会话有关系吗?
    • 好问题。 ServletContext 可以通过不同的方式获得。由于您已经在 Servlet 中,因此可以使用 getServletContext(); 获取它。这是一个基类方法,例如@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext context = getServletContext(); // ... } 仅当您不想通过 Session 获取它时才这样做
    猜你喜欢
    • 1970-01-01
    • 2014-02-13
    • 2014-06-10
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多