得到文件的真实路径

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

1.基本概念的理解

绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:/xyz/test.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm 也代表了一个
URL绝对路径。

相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在
Servlet中,”/”代表Web应用的跟目录。和物理路径的相对表示。例如:”./” 代表当前目录,
“../”代表上级目录。这种类似的表示,也是属于相对路径。

另外关于URI,URL,URN等内容,请参考RFC相关文档标准。

RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,
(http://www.ietf.org/rfc/rfc2396.txt )
2.关于JSP/Servlet中的相对路径和绝对路径。

2.1服务器端的地址

服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的
(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候
在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于http://192.168.0.1/webapp/ 的。

其用到的地方有:
forward:servlet中的request.getRequestDispatcher(address);这个address是
在服务器端解析的,所以,你要forward到a.jsp应该这么写:
request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的web应用webapp,
其绝对地址就是:http://192.168.0.1/webapp/user/a.jsp
sendRedirect:在jsp中< %response.sendRedirect("/rtccp/user/a.jsp");%>

2.22、客户端的地址

所有的html页面中的相对地址都是相对于服务器根目录(http://192.168.0.1/ )的,
而不是(跟目录下的该Web应用的目录)http://192.168.0.1/webapp/的。
Html中的form表单的action属性的地址应该是相对于服务器根目录(http://192.168.0.1/ )的,
所以,如果提交到a.jsp为:action=”/webapp/user/a.jsp”或action=”< %=request.getContextPath()%>“/user/a.jsp;
提交到servlet为actiom=”/webapp/handleservlet”
Javascript也是在客户端解析的,所以其相对路径和form表单一样。
因此,一般情况下,在JSP/HTML页面等引用的CSS,Javascript.Action等属性前面最好都加上
< %=request.getContextPath()%>,以确保所引用的文件都属于Web应用中的目录。
另外,应该尽量避免使用类似”.”,”./”,”../../”等类似的相对该文件位置的相对路径,这样
当文件移动时,很容易出问题。
3. JSP/Servlet中获得当前应用的相对路径和绝对路径
3.1 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径  :application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath(”/”);
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()

3.2 Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath
(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath(”/”);
(ServletContext对象获得几种方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
)

4.java 的Class中获得相对路径,绝对路径的方法
4.1单独的Java类中获得绝对路径
根据java.io.File的Doc文挡,可知:
默认情况下new File(”/”)代表的目录为:System.getProperty(”user.dir”)。
一下程序获得执行类的当前路径
package org.cheng.file;
import java.io.File;

public class FileTest {
public static void main(String[] args) throws Exception {

System.out.println(Thread.currentThread().getContextClassLoader().getResource(”"));

System.out.println(FileTest.class.getClassLoader().getResource(”"));

System.out.println(ClassLoader.getSystemResource(”"));
System.out.println(FileTest.class.getResource(”"));
System.out.println(FileTest.class.getResource(”/”)); //Class文件所在路径
System.out.println(new File(”/”).getAbsolutePath());
System.out.println(System.getProperty(”user.dir”));
}
}

4.2服务器中的Java类获得当前路径(来自网络)
(1).Weblogic

WebApplication的系统文件根目录是你的weblogic安装所在根目录。
例如:如果你的weblogic安装在c:/bea/weblogic700…..
那么,你的文件根路径就是c:/.
所以,有两种方式能够让你访问你的服务器端的文件:
a.使用绝对路径:
比如将你的参数文件放在c:/yourconfig/yourconf.properties,
直接使用 new FileInputStream(”yourconfig/yourconf.properties”);
b.使用相对路径:
相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放

在yourwebapp/yourconfig/yourconf.properties,
这样使用:
new FileInputStream(”./yourconfig/yourconf.properties”);
这两种方式均可,自己选择。

(2).Tomcat

在类中输出System.getProperty(”user.dir”);显示的是%Tomcat_Home%/bin

(3).Resin

不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET
的路径为根.比如用新建文件法测试File f = new File(”a.htm”);
这个a.htm在resin的安装目录下

(4).如何读相对路径哪?

在Java文件中getResource或getResourceAsStream均可

例:getClass().getResourceAsStream(filePath);//filePath可以是”/filename”,这里的/代表web

发布根路径下WEB-INF/classes

默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。

5.读取文件时的相对路径,避免硬编码和绝对路径的使用。(来自网络)
5.1 采用Spring的DI机制获得文件,避免硬编码。

识别产品外观的合格软件_工业视觉工业质检视觉识别机器视觉视觉检测智能制造工业检测缺陷... 随着工业物联网技术的迅猛发展,掀起了以云计算、大数据、以及人工智能 AI 等信息技术正与传统工业深入融合,由此衍生的 “智能制造4.0” 理念,正在为全球工业带来深远变革。中国的制造业巨头也纷纷借此发力,向智能化、数字化制造演进,实施战略转型。如何高效科学的管理和分析制造业务链上的生产价值,推进制造企业生产工艺优化与产品质量提升是每一个制造企业在数字化、智能化转型过程中的必经之路。业务发展带来的挑... 阅读详情

相关推荐

RT-DERT安卓部署教程

这个文档中的代码案例,实现了拍照和选图识别,两个功能,可以看效果图。UI做了美化:显示类别机和数量。代码下载地址:通过网盘分享的文件:android_rtdert.zip链接: https://pan.baidu.com/s/1k6e-d_lov1OPgUmit5i_cA?pwd=hpfi 提取码: hpfi–来自百度网盘超级会员v8的分享。

AIOT魔法师 170

获取应用程序当前所在实际路径

当前路径与应用程序所在的路径有可能是不同的,特别是在使用CFileDialog(或之类东西的时候)有可能将当前路径改为与应用程序所在路径不同的其他地方。以下就是获取应用程序所在路径的方法(我放在CMainFrame中实现):CString CMainFrame::GetAppPath()...{    char    errbuf[256],exepath[256],*pStr;     

Fany的专栏 1697

基于 Qt C++ 的 船舶导航系统 UI

你想实现一个基于 **Qt C++** 的 **船舶导航系统 UI**,核心功能包括 **Qt Quick** 电子海图显示和 **NMEA 0183** 协议解析。"断开" : "连接"创建一个 Qt Quick 项目,选择 **Qt 6** 版本,确保勾选 **Qt Quick**、**Qt Network** 和 **Qt SQL** 模块。Label { text: "纬度:" }3. **连接设备**:点击 "连接" 按钮连接到 GPS 设备或模拟数据源。title: "连接设置"

寒寒豆豆软件公司的博客 106

java获取文件服务器真实路径

一. 什么是真实路径 真实路径也叫服务器路径。为什么叫服务器路径就是真实路径呢?举个例子,你在本地工作空间里存储着一份你的项目,同时你在你的服务器上也存储着同样的项目。那么你访问的时候是访问本地空间里的项目呢,还是访问服务器上的项目。显然是服务器上的路径。所以 真实路径也叫服务器路径。 二. 如何获取真实路径 在java中,我们使用servlet时,访问一个servlet代码,只...

little_spice的博客 4955

java 获取文件真实路径_获取Java文件路径

1.如何获得当前文件路径常用:字符串类型:System.getProperty("user.dir");综合:package com.zcjl.test.base;import java.io.File;public class Test {public static void main(String[] args) throws Exception {System.out.println(Thr...

weixin_35130354的博客 1470

查看文件真实路径

pwd -P //查看文件真实路径 转载于:https://blog.51cto.com/11077520/1963609

weixin_33860147的博客 535

Android 获取文件真实路径

public class GetRealPath { public static String getFPUriToPath(Context context, Uri uri) { try { List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS); if (packs !

再也不做的事 2216

获取文件真实路径

获取文件真实路径: 点击查看 获取servletcontext对象

stay hungry,stay foolish! 1277

使用js获取上传文件真实路径

我们在使用html中的<input type="file">控件上传文件时,有时需要在本页面获取上传文件路径名称,但是由于现在浏览器出于安全考虑,大多数都无法获得文件真实路径。如果要在js中解决这个问题,可以区别不同品牌的浏览器,进行不同的操作来获得文件真实路径,比如谷歌浏览器可以用:window.webkitURL.createObjectURL(File file)来获得,详...

u013455166的专栏 1万+

怎么在mac系统下查看文件真实路径

大家好,我是寒溪净轩,今天教大家怎么在mac系统下查看文件真实路径。 第一步:打开终端 第二步:将需要查看路径文件拖到终端,就可以在终端看到该文件真实路径啦。 ...

寒溪净轩的博客 2528

linux获取lnk文件的源目标路径,通过快捷方式lnk获得文件真实路径

通过快捷方式.lnk获得文件真实路径前提最近开发资源管理,需要预先上传大量资源,负责整理资源的同学因为空间不足,直接用快捷键方式整理视频资源OTZ,所以只能想办法通过.lnk文件获得文件真实地址。以下所有内容都来自网络,博主仅做了参考与总结。.lnk文件格式解析此处对lnk文件组成做一个大概介绍主旨是帮助了解如何从link文件中提取需要的信息一个lnk文件包括一下几个模块:模块 备注 注意:不是...

weixin_39920629的博客 1715

android开发时在选择模拟器的系统文件夹下的文件时如何得到真实路径,而不是映射的路径

android开发时在选择模拟器的系统文件夹下的文件时如何得到真实路径,而不是映射的路径 问题描述: 调用模拟器的系统文件夹选择文件后在onActivityResult()回调函数如何得到真实路径。 我在选择MP4的视频文件后使用mediaPlayer播放视频时 mPlayer.setDataSource(path);就会在这报错,说是找不到路径 原因分析: 得到的 像直接这样使用得到的都是映射的路径而不是真实路径。 Uri uri = data.getData(); path = uri.getPa

Real_lion的博客 393

ServletContext获取文件真实路径

当通过浏览器访问web项目时,访问的是tomcat服务器里的,并不是本地写代码时自定义的路径 可以使用 ServletContext 对象的 String getRealPath(String path) 方法来获取文件真实路径 资源文件、配置文件放置的路径不一样,参数 path 的写法就不一样 例: 在 src 目录下创建文件 a.txt 在 web 目录下创建 b.txt 在 web/W...

Augenstern_的博客 1300

Servlet中获取Web路径文件真实路径

Servlet中获取Web路径文件真实路径servlet中,使用HttpServletRequest对象中的一系列方法可以获取相关路径的信息,然后可以根据 这些信息组合成一个Web站点的虚拟路径。HttpServletRequest接口中提供的用于获取路径有关的信息的方法如下: getScheme():返回请求协议(http). getServerName():返回服务器的名称。如果访问本机

Gamedev 4527

php 隐藏路径,PHP 隐藏文件真实路径实现方法

这篇文章主要为大家详细介绍了PHP 隐藏文件真实路径实现方法,具有一定的参考价值,可以用来参考一下。对PHP 隐藏文件真实路径感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!/*** PHP 隐藏文件真实路径** @param* @arrange 512-笔记网: www.512PiC.com**/function FileHeaderJump($file){header('Conte...

weixin_39620629的博客 840

ServletContext介绍与文件真实路径的获取

概念: 功能 获取MIME类型 域对象:共享数据 获取文件真实服务器路径 概念: 代表整个web应用,可以和程序的容器(服务器)来通信 功能 获取MIME类型 域对象:共享数据 获取文件真实服务器路径 获取MIME类型 MIME类型: 在互联网通信过程中定义的一种文件数据类型 格式:大类型/小类型,如text/html image/jpeg 基本的类型可以从tomcat的配置文件web.xml找 下面我们就写...

林高禄 7541

html中的图片路径ie8,IE8下文件上传时获取文件真实路径

IE升级到IE8后,文件上传时获取文件真实路径也出现了问题备注:本来是html代码的,但一发表就变成这样了,只好把代码截图,“fileUpload”为name名html代码用js获取路径时:var file=document.getElementByIdx_x_x_x('fileUpload').value;然后用alert(file);可以看到所上传文件真实路径但是,在IE8下,却发现,得到...

weixin_39704971的博客 345

storage/emulated/0/(Android中如何将文件选择器中返回的)....路径转换为真实路径

Android中如何将文件选择器中返回的storage/emulated/0/....路径转换为真实路径 在百忙之中写下该博文,希望对跟我遇到一样问题的朋友有所帮助。 问题描述: 在写Android一个文件上传下载功能的时候,需要利用文件选择器来选择文件。最近的利用Intent打开文件选择器,通过startActivityForResult()启动意图选择文件,在onActivity

喜爱兰兰 11万+

Android 打开文件管理器 获取文件真实路径

1. onCreate 部分 public class MainActivity extends AppCompatActivity { Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat

北极的松树的博客 3万+

Servlet中获取Web路径文件真实路径

本实例介绍如何在servlet中获取Web路径真实路径,在servlet中,使用HttpServletRequest对象中的一系列方法可以获取相关路径信息,然后可以根据这些信息组合成一个Web站点的虚拟机路径。HttpServletRequest接口中提供的用于获取路径相关的信息的方法如下: getScheme():获取请求协议(http)。 getServerName():返回服务器名称,如果...

小坏蛋博客 1439

struts2获取文件真实路径

  CreateTime--2017年8月25日15:59:33 Author:Marydon struts2获取文件真实路径 需要导入: import java.io.FileNotFoundException; import org.apache.struts2.ServletActionContext;  方法封装 /** * 获取指定路径的实际路径文件...

weixin_33699914的博客 252
上一篇: 常用的JavaScript验证正则表达式
下一篇: web service访问控制和过滤器(axis)
bingki
博客等级 码龄20年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值