javaweb项目中不同路径下的资源获取
2018-02-15 14:45
465 查看
项目结构如下图所示
文件a.txt位于src目录下,b.txt位于com/wang/path目录下,c.txt位于WebContent目录下,也即项目根目录下,d.txt位于WEB-INF目录下。
项目发布到tomcat之后,文件结构如下:
获取资源文件内容可以通过ClassLoader,Class,ServletContext三者获取。
ClassLoader所针对的目录为classes目录;Class所针对的目录为类所在目录,也即图中的com/wang/path目录;而ServletContext针对的则是项目的根目录,也即图中的Path目录。
截取的图片–知识扩充
文件a.txt位于src目录下,b.txt位于com/wang/path目录下,c.txt位于WebContent目录下,也即项目根目录下,d.txt位于WEB-INF目录下。
项目发布到tomcat之后,文件结构如下:
获取资源文件内容可以通过ClassLoader,Class,ServletContext三者获取。
ClassLoader所针对的目录为classes目录;Class所针对的目录为类所在目录,也即图中的com/wang/path目录;而ServletContext针对的则是项目的根目录,也即图中的Path目录。
package com.wang.path; import java.io.IOException; import java.io.InputStream; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; @WebServlet("/PathTest") public class PathTest extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //使用ClassLoader获取文件内容 ClassLoader classLoader = this.getClass().getClassLoader(); InputStream inputStream_a = classLoader.getResourceAsStream("a.txt"); String a = IOUtils.toString(inputStream_a); //使用Class获取文件内容 Class<? extends PathTest> clazz = this.getClass(); InputStream inputStream_b = clazz.getResourceAsStream("b.txt"); //common-io工具包 String b = IOUtils.toString(inputStream_b); //开头加 “/”指的是classes目录,如果直接是“../../c.txt”则报错 InputStream inputStream_c = clazz.getResourceAsStream("/../../c.txt"); String c = IOUtils.toString(inputStream_c); //使用ServletContext获取文件内容 InputStream inputStream_c1=this.getServletContext().getResourceAsStream("c.txt"); String c1 = IOUtils.toString(inputStream_c1); InputStream inputStream_d=this.getServletContext().getResourceAsStream("WEB-INF/d.txt"); String d = IOUtils.toString(inputStream_d); response.getWriter().append(a+":"+b+":"+c+":"+c1+":"+d); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
截取的图片–知识扩充
相关文章推荐
- JavaWeb项目在不同容器中正确获取项目路径
- 转:Maven项目中获取classpath和资源文件的路径
- javaweb获取访问路径、域名、项目名、
- javaweb阶段常用获取资源路径
- javaWeb项目下获取当前类的绝对路径
- Maven项目中获取classpath和资源文件的路径
- javaweb获取项目路径的方法
- JavaWeb项目中各种路径的获取
- Maven项目中获取classpath和资源文件的路径
- javaweb获取项目路径的方法
- 获取WEB项目的不同路径的方法
- Intellij Idea Javaweb 目录结构及获取项目内资源
- JavaWeb项目各种路径的获取
- javascript 获取浏览器地址栏目中的资源路径+项目名
- 在java项目中通过相对路径获取资源的方式
- Maven项目中获取classpath和资源文件的路径
- 开发中获取项目下资源绝对路径方式有
- JavaWeb项目获取路径各种方法。
- Maven项目中获取classpath和资源文件的路径
- web项目中获取资源及资源路径