Java's absolute and relative path
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java's absolute and relative path,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2745字,纯文字阅读大概需要4分钟。
内容图文
![Java](/upload/InfoBanner/zyjiaocheng/642/a7599bc769e94394b185992364a5d753.jpg)
在java中文件目录中带“/”的是绝对路径,不带“/”的是相对路径。
请求页面的写法,在web中,页面路径主要写的有以下几种
1、重定向
2、转发
3、超链接
4、form表单提交的action
5、servlet web.xml中的配置参数的路径
6、properties类型的文件
本文以项目部署在tomcat服务器为例,其他相信也是一样的。
先说明,一定要考虑的问题:
1、路径是谁发起的(浏览器,服务器)
2、路径开头直接 “/” 表示绝对路径
例如
项目的根目录是指FirstWEB下,即http://localhost:8080/FirstWEB,此时由浏览器发起的请求,代码中的“/”表示的当前路径就应该表示的是这个根目录
服务器的根目录是指wptwebapps下,即 localhost:8080,
(1)重定向是是由浏览器发起的,所以“/”代表的是服务器根目录
(2)转发是由服务器发起的,所以“/”代表的是项目根目录
(3、4) 前台页面不论时<a><form><img>等标签,所有的绝对路径,“/”都代表服务器根目录
(5)我们在编写项目的web.xml中编写servlet映射时,所有的servlet前都要加“/”,这个“/”指的是服务器根目录
(6)properties文件不能直接放置在项目根目录下,因为项目编译时,只会编译src下的文件和webcontent下的文件,properties文件就会被忽略
因此,放置properties文件时 ,要么放在src文件目录下,要么放置在webcontent目录下,由于编译后java文件放置在web-inf的下的classes下,所以建议把properties文件就放置在src下,跟着程序的编译一起编译,这样保证查找文件时,不会路径出错。
此时,通过classes来找资源 就是通过类加载器来加载文件:
//获取jdbc.properties 需要在类路径下找
//类加载器获取资源会在类路径下找(WEB-INF/classes)
ClassLoader loader = JDBCUtils.class.getClassLoader();
InputStream stream = loader.getResourceAsStream("jdbc.properties");
为了进行静态文件与源码分离,可以创建一个名为conf的资源文件夹,这个文件夹下的内容会进行分类,但不编译:
总结:
1、由浏览器发起的路径,“/”表示%tomcat根目录%/webapps根目录
2、由服务器发起的路径,“/”表示项目中的WebRoot根目录
3、以上所有情况,除了“转发”是服务器发起的,其他都是由浏览器发起的
转发后的页面变化,但地址不变,所以当前页面的相对路径的地址都会根据浏览器的地址来查找资源,就可能会报错,所以如果要使前台页面保证无误,可以都是用绝对路径。
推荐使用<base>标签,<base>标签指定页面中所有以相对路径的基础路径,所有路径都是以该标签指定的为开始路径,最后通过拼接来进行访问。
例如: <base href="http://localhost:8080/FirstWEB"/> 之后如果访问相对路径下的 index.html,在访问时,浏览器自动装载为http://localhost:8080/FirstWEB/index.html来访问。
由于转发时,要在路径中写项目名,而项目可能时动态的,所以需要动态获得项目的根目录,如下:
第一种
ServletContext context = getServletContext();
String path = context.getContextPath();
response.sendRedirect(path1 + "index.html");
第二种
String path2 = request.getContextPath();
response.sendRedirect(path2 + "index.html");
项目在编译发布时,只会有项目名称,且带着webcontent下的所有文件,编写的java代码 会编译在 WEB-INF下的classes中,
所以不论写相对路径还是绝对路径,都注意不要写WEB-INF。
内容总结
以上是互联网集市为您收集整理的Java's absolute and relative path全部内容,希望文章能够帮你解决Java's absolute and relative path所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。