web项目中的路径问题
“/”表示根路径
1。“/”代表的意思不是固定的,是要根据具体的方法,才能知道在该方法中"/"所代表的含义,同样相对路径也不是固定的,需要根据具体的方法来判断具体是相对哪个路径的相对路径
2.虽然 Java.io包下比如File类既可以用绝对路径表示,也可以用相对路径表示,但是这里相对路径指的是相对System.getProperty("user.dir")的路径,但是路径对应web应用来说不同的服务器可能不同,所以使用这些类时,建议不要使用相对路径
3。ClassLoader类 的getResource(String name),getResourceAsStream(String name)以及ResourceBundle类的getBundle(String path)就是相对当前项目的classpath来查找资源的,这些方法帮助我们直接使用直观的相对路径来实现对文件的操作,而不用我们自己调用方法拼接成绝对路径操作
4。得到绝对路径的方法有:
1)得到classpath的绝对路径
this.getClass().getResource("/").getPath();
Thread.currentThread().getContextClassLoader().getResource("");
ths.getClassLoader().getResource("");
ClassLoader.getSystemResource("");(测试了下,web项目中获取不到)
2)得到当前类所在的绝对路径
this.getClass().getResource("").getPath();
5。web应用中:
getServletContext().getRealPath(“/”):Web应用程序的根目录的绝对路径
request.getContextPath():获得web根目录。比如:/demo
此时的classpath的绝对路径其实已经包含了Web应用程序的根目录的绝对路径,所有查找类路径之外的资源最好使用getServletContext().getRealPath(“/”),而查找类路径之内的资源就使用相对classpath的路径的操作方法来操作(推荐),或者得到classpath的绝对路径拼接得到绝对路径再操作(不推荐)
很多框架的配置文件的配置都是用classpath来找这是为了通用,因为框架不知道用户的目录结构,直接从类路径下开始找就好了
6。URI和URL的理解:
1.定义:
URI : Universal Resource Identifier 统一资源标志符
URL : Universal Resource Locator 统一资源定位符
URN :Universal Resource Name 统一资源名称
URI是抽象的定义,不管用什么方法表示,只要能定位一个资源,就叫URI,也就是说不管是URL还是URN都是URI的一个子集
具体的定位方式有:
1)URL,用地址定位(也就是说不包含位置信息的URI加上了位置信息和访问协议也就可以叫做URL,也因为URL包含了具体的地址信息,所有可以通过URL打开操作该资源的流);
2)URN 用名称定位。
2.一个URL通常包括三部分:
1)方案部分(scheme):比如http://,ftp://,mailto:等
2)地址部分:包含资源所在的位置信息
3)资源部分:xxx.html
所以我们浏览器地址栏常见的都是URL,当然也是URI。
web项目中的路径问题的更多相关文章
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- web项目中各种路径的获取(复制,为以后好找资源)
web项目中各种路径的获取 1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/"); 这将获 ...
- 理解java Web项目中的路径问题
本文以项目部署在tomcat服务器为例,其他相信也是一样的. 先说明请求页面的写法,在web中,页面路径主要写的有以下几种 1.请求重定向 2.浏览器的请求被服务器请求到新页面(我称为“转发”) 3. ...
- (转)Java web 项目中文件路径
文件路径分为绝对路径和相对路径,在项目中页面跳转.配置文件读写.文件上传下载等等许多地方都涉及到文件路径问题. 一篇好文转载于此:http://blog.csdn.net/shendl/archive ...
- web项目中各种路径的获取
以工程名为/DemoWeb为例: 访问的jsp为:http://localhost:8080/DemoWeb/test/index.jsp 1 JSP中获得当前应用的相对路径和绝对路径 (1)得到工程 ...
- web项目中各种路径的获取HttpServletRequest
以工程名为/DemoWeb为例: 访问的jsp为:http://localhost:8080/DemoWeb/test/index.jsp 1 JSP中获得当前应用的相对路径和绝对路径 (1)得到工程 ...
- web项目中获取各种路径的方法
~Apple web项目中各种路径的获取 1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/&qu ...
- 理解JavaWeb项目中的路径问题——相对路径与绝对路径
背景: 在刚开始学习javaweb,使用servlet和jsp开发web项目的过程中,一直有一个问题困扰着我:servlet 和 jsp 之间相互跳转,跳转的路径应该如何书写,才能正确的访问到相应的s ...
- java web项目中 获取resource路径下的文件路径
public GetResource{ String path = GetResource.class.getClassLoader().getResource("xx/xx.txt&quo ...
随机推荐
- 处理文字基线 文字对不齐 font-size
这是我无意中发现的,先记录下 比如你在一个h1标签里面添加文字,或者在其他块级标签添加文字,想让他们间隙少一点,(基线影响)可把行高设置为line-height: 1;就达到消除基线的作用. 建议使用 ...
- 用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控
写在前面 相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 用python + hado ...
- C# String.Join 与 StringBuilder 对比,谁更快
String.Join 文档 StringBuilder 文档 这两天刷 Leedcode 做到一道 String 的题时突然想到这俩对比的问题,于是查了一下资料并简单对比了一下. 首先对于 ...
- 01_Flume基本架构及原理
Flume消息收集系统,在整个系统架构中的位置 Flume概况1) Apache软件基金会的顶级项目2)存在两个大的版本:Flume 0.9.x(Flume-OG,original generatio ...
- UVa 1660 电视网络(点连通度+最小割最大流+Dinic)
https://vjudge.net/problem/UVA-1660 题意:给出一个无向图,求出点连通度.即最少删除多少个点,使得图不连通. 思路: 如果求线连通度的话,直接求个最大流就可以了.但这 ...
- java命令行执行程序解决依赖外部jar包的问题
用java命令行直接执行程序,如果这个程序需要引用外部jar包.就不能单纯用java xx来执行 如果你的jar包和程序就在一个目录: 编译 javac -cp D:\yy\yy.jar,D\xx\x ...
- Codeforces Round #223 (Div. 2) E. Sereja and Brackets 线段树区间合并
题目链接:http://codeforces.com/contest/381/problem/E E. Sereja and Brackets time limit per test 1 secon ...
- python json 文件读写
import json test_dict = {,,,} print(test_dict) print(type(test_dict))#字典 #dumps 将数据转换成字符串 json_str = ...
- MongoDB(课时4 数据增加)
3.4 数据操作(重点) 只要是数据库就绝对离不开最核心的功能:CRUD(增加Create.读取查询Retrieve.更新Update.删除Delete),除了增加之外,其他都很麻烦,最麻烦的是修改. ...
- Android AlarmManager 的使用
AlarmManager简介及使用场景: AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟.通过对它的使用,它的作用和Timer有点相似. 都有两种相似的用法: (1).在指定时 ...