Java 如何捆绑war文件中的图像等文件,以便Servlet可以访问它们?

Java 如何捆绑war文件中的图像等文件,以便Servlet可以访问它们?,java,android,file,tomcat,servlets,Java,Android,File,Tomcat,Servlets,我有这样一个文件夹: File file=new File("/Users/mac/Desktop/h/"+device_id+"/"+postID+".jpg"); 它在上面的代码中运行良好。 但当我将文件夹/h放置在项目中并通过 File file=new File("/h/"+device_id+"/"+postID+".jpg"); 它给了我文件未找到的异常 有人知道如何用war文件正确地实现文件访问吗?试试看 BufferedReader br= new BufferedReade

我有这样一个文件夹:

File file=new File("/Users/mac/Desktop/h/"+device_id+"/"+postID+".jpg");
它在上面的代码中运行良好。 但当我将文件夹/h放置在项目中并通过

File file=new File("/h/"+device_id+"/"+postID+".jpg");
它给了我文件未找到的异常 有人知道如何用war文件正确地实现文件访问吗?

试试看

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 
BufferedReader br=new BufferedReader(new InputStreamReader(request.getSession().getServletContext().getResourceAsStream(“”));例如,路径值可以是/WEB-INF/images/img1.jpg
缓冲读取器将具有文件内容

InputStream is=request.getSession().getServletContext().getResourceAsStream(“”);

您可以从inputStream获取内容

我不使用会话这有关系吗?好问题。ServletContext可以通过不同的方式获得。因为您已经在Servlet中,所以可以使用getServletContext()获取它;这是一个基类方法,例如@Override protected void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{ServletContext=getServletContext();/…}。这仅当您不想通过会话获取它时
InputStream is = request.getSession().getServletContext().getResourceAsStream( "<<Relative path from webroot of your project>>" );