Tomcat环境下,在一个Service层中读取文件使用"/projectName/userfiles/image/*.jpg“的相对路径,读取的不是当前应用程序的当前路径,而是直接调到/home/tomcat-6.0.18/bin下,不解,虽然写绝对路径不影响程序现在的运行,但是程序却没有办法移植了!!
查了一下原因
war包只是部署到服务器的一个子过程,整个Tomcat的WEB应用只有一个入口那就是main的入口,那么启动Tomcat的main类的路径就是所谓的当前可执行路径也就是/home/tomcat-6.0.18/bin下,如果想把配置放到war下,那么就要考虑WAR/WEB-INF/classes/和WAR/WEB-INF/lib,Tomcat针对你的war应用启动了对应的ClassLoad,可以合理的把上述路径作为classpath路径,当然也包括Tomcat_home/common/lib和Tomcat_home/common/classes,所以你把配置文件放到WAR/WEB-INF/classes/下,或者打到一个jar包的根下放到WAR/WEB-INF/lib中,使用"/projectName/userfiles/image/*.jpg"的方式,就会直接以流的形式读出!这个比较适合读取配置文件的情况!
如果读取的文件是不固定的可以在action处通过
ServletContext sc = getServletContext();
String path=sc.getRealPath("相对路径");
File file=new File(path);//获取的是正确的绝对路径了
分享到:
相关推荐
`docBase`属性指明了这个目录的绝对路径。而`reloadable="true"`则表示当`docBase`路径下的文件发生变化时,Tomcat会自动重新加载Web应用,无需重启服务器。 在配置虚拟路径时,还可以设置其他属性,比如`workDir`...
2. 虚拟路径对应的实际目录可以是绝对路径,也可以是相对路径,相对路径是相对于 Tomcat 安装目录的 webapps 目录的。 3. workDir 属性指定的目录最好也是分开的,以免和 Tomcat 安装目录混淆。 4. 在配置虚拟路径时...
2. 使用绝对路径或相对路径设置`docBase`,根据实际情况选择。 3. 保持`server.xml`文件的整洁,避免过度配置。 通过以上步骤,你可以成功配置Tomcat的虚拟路径,实现Web应用的友好访问。记住,配置过程中的每个...
二是绝对路径可能导致跨域问题,特别是当图片资源位于另一个域名下时。 在实际开发中,考虑到可维护性和灵活性,通常会结合使用绝对路径和相对路径。例如,可以将静态资源如图片、CSS、JavaScript文件等放在一个...
开发web工程时经常要获取工程的根目录,自己用Java实现的获取Tomcat下war包部署的Web工程根目录路径的方法,主要利用web工程默认的目录结构,此外也可以指定工程名称获取工程目录的绝对路径
其中,path 表示在浏览器中输入的虚拟目录名,docBase 表示程序包的物理绝对路径,默认的绝对路径是 %tomcat_home%/webapps,reloadable 表示是否自动加载应用程序。 3. 重新启动 Tomcat,可以在 Myeclipse 工具栏上...
相对路径可以是相对于当前类所在的包的路径,也可以是绝对路径。如果路径以 "/" 开头,则表示绝对路径,否则表示相对路径。 例如,com.explorers.Test.class.getResourceAsStream("abc.jpg") 和 ...
在Java编程中,路径问题是一个常见且重要的环节,特别是在处理资源文件、Servlet访问以及客户端交互时。本文将详细解析Java中的路径问题,并提供相应的解决策略。 首先,Servlet的访问路径是通过`web.xml`文件配置...
5. **获取页面所在服务器的绝对路径**: ```java absPath = new java.io.File(application.getRealPath(request.getRequestURI())).getParent(); ``` 输出如 `D:\resin\webapps\TEST`。 ### 类文件中的路径...
- `docBase` 属性:指定Web应用的文件路径,可以是绝对路径或相对路径。 - `reloadable` 属性:如果设置为`true`,则Tomcat会自动检测类文件的更改并重新加载Web应用。 4. **重启Tomcat服务**:确保配置生效。 5...
- `docBase`:项目路径,支持绝对路径或相对路径,其中相对路径是相对于webapps目录。 - `path`:访问项目的路径,例如`http://127.0.0.1:8080/demo1`。 - `reloadable`:控制是否自动加载新增或修改的class文件...
- `docBase`: 应用的文档基础,可以是相对于`appBase`的相对路径或绝对路径。 示例配置: ```xml ``` 在这个例子中,"example"应用将与"www.example.com"关联,并且应用的根路径将是空路径(即"/")。 ...
- `docBase`属性指定了要访问的文件夹的绝对路径。 - `path`属性定义了在服务器上访问这些文件的路径前缀。 3. **在前端页面引用文件**: - 在前端JSP页面中,可以通过如下方式引用这些图片文件: ```jsp ${...
的绝对路径 ( 或相对于webapps的路径 )" reloadable="true" crossContext="true"> ``` 这里的`docBase`属性应指向Vue项目`dist`目录的路径。`crossContext="true"`允许SpringBoot与Vue.js之间的跨上下文请求,...
- 添加一个新的`<Context>`标签,设置`path`属性为你希望在浏览器中访问的虚拟目录路径,`docBase`属性为你的Eclipse工作区中的Web项目绝对路径。 - 例如: ```xml ``` - 保存并关闭`server.xml`,确保...
### JDK与Tomcat环境变量配置详解 #### 一、引言 在进行Java Web开发时,JDK(Java Development Kit)与Tomcat作为基础环境搭建是必不可少的步骤。正确配置这两者的环境变量对于项目的顺利运行至关重要。本文将...
- 如果你需要获取某个文件所在目录的上级目录,可以先通过`application.getRealPath(request.getRequestURI())`得到该文件的绝对路径,再使用`new File(...).getParent()`获取其上级目录。 2. **Servlet中获取路径...
2.在里面添加下面一句话 其中docBase为项目绝对路径,path为相对路径(相对于默认的webapps的路径) 此时使path为空,访问localhost即访问webapps也即访问docBase 打开安装目录下的bin文件找到startup.bat点开启动...
但是绝对路径不能有空格。建议放在硬盘或者U盘的根目录; 2 web是项目目录。 把你的项目内容全部拷贝到ROOT里面 bin conf lib web ROOT *.jsp ReadMe.txt start.bat 3 点击start.bat 就可以直接启动了。...