- 浏览: 435097 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (214)
- android (12)
- mina (5)
- JVM (3)
- Maven (4)
- memcached (3)
- 程序人生 (9)
- hibernate (6)
- mysql (7)
- socket (4)
- php (7)
- 游戏 (8)
- spring (6)
- java基础 (25)
- linux (6)
- sqlserver (3)
- cocos2d-x (24)
- c++ (4)
- webservice (3)
- protobuf (4)
- visio工具 (1)
- ibatis (2)
- 多线程 (2)
- 分布式 (0)
- C# (1)
- struts2 (5)
- seo (1)
- photoshop (1)
- tiles (1)
- jsp (5)
- 前端 (1)
- intellij (6)
- ibatis springmvc (1)
- oracle (3)
- android studio (4)
- spring-boot (2)
- 微信小程序 (2)
- jquery mobile (1)
- vue (3)
- git (1)
最新评论
-
springdata-jpa:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
An internal error occurred during: "Updating Maven Project". Unsupported I问题解决备忘 -
emilchan:
谢谢,刚好用上
bugfree 站点有端口号 上传图片不显示 -
seeYourEye:
3q 解决了
An internal error occurred during: "Updating Maven Project". Unsupported I问题解决备忘 -
gqlu:
0.9.1版本 太低了点吧。。。
cocos2d-x中保存用户游戏数据CCUserDefault -
宋建勇:
缺少代码啊
key.isAcceptable()时怎么处理的 ...
Java异步socket
Java中使用的路径,分为两种:绝对路径和相对路径。归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源的!
在开发Web方面的应用时, 经常需要获取 服务器中当前WebRoot的物理路径。
如果是Servlet , Action , Controller, 或则Filter , Listener , 拦截器等相关类时, 我们只需要获得ServletContext, 然后通过ServletContext.getRealPath("/")来获取当前应用在服务器上的物理地址。
如果在类中取不到ServletContext时, 有两种方式可以做到:
1. 利用Java的类加载机制 调用 XXX.class.getClassLoader().getResource(""); 方法来获取到ClassPath , 然后处理获得WebRoot目录,这种方式只能是该class在WebRoot/WEB-INF/classes下才能生效, 如果该class被打包到一个jar文件中, 则该方法失效。这时就应该用下面一种方式。
2. spring框架的思路, 在WEB-INF/web.xml中 , 创建一个webAppRootKey的param, 指定一个值(默认为webapp.root)作为键值, 然后通过Listener , 或者Filter , 或者Servlet 执行String webAppRootKey = getServletContext().getRealPath("/"); 并将webAppRootKey对应的webapp.root 分别作为Key , Value写到System Properties系统属性中。之后在程序中通过System.getProperty("webapp.root")来获得WebRoot的物理路 径。
根据第二种的思路,我们还可以再扩展一下。不过对于在部署在一台服务器中的应用来说,若还不是你所需请再往下看。
下面是一些得到classpath和当前类的绝对路径的一些方法。你可使用其中的一些方法来得到你需要的资源的绝对路径:
1. DebitNoteAction.class.getResource("")
得到的是当前类FileTest.class文件的URI目录。不包括自己!
如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/
atacarnet/src/com/evi/modules/atacarnet/action/
2. DebitNoteAction.class.getResource("/")
得到的是当前的classpath的绝对URI路径。
如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/
3. Thread.currentThread().getContextClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径
如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/
4. DebitNoteAction.class.getClassLoader().getResource("") 或ClassLoader.getSystemResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/
5. 取得服务器相对路径
System.getProperty("user.dir")
例如:E:\apache-tomcat-5.5.16\apache-tomcat-5.5.16\bin
我推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法
6. 取得项目中的绝对路径
一般用request.getRealPath("/")或request.getRealPath("/config/")
但现在不提倡使用request.getRealPath("/")了,大家可试用ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径
要取得src的文件非常容易,因为src是默认的相对目录,比如你说要取得src下com目录的test.java文件,你只需要这样就够了
File f = new File(com/test.java);
但如果我要取得不在src目录或者WebRoot目录下的文件呢,而是要从src或者WebRoot同级的目录中取呢,比如说doc吧
我的硬方法是这样实现的:
String path = this.getServletContext().getRealPath("/");
Properties p = new Properties();
p.load(new FileInputStream(new File(path.substring(0,(path.lastIndexOf("\\WebRoot ") + 1)) + "doc/db.properties")));
System.out.println(p.getProperty("driverName"));
发表评论
-
Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题
2019-01-04 21:27 1840这次新安装了一个MySQL数据库,然后navicat连接数据 ... -
MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
2018-01-13 19:44 2137MySQL第二天早上第一次连接超时报错,解 ... -
用户登录安全:使用 Salt + Hash 来为密码加密
2017-09-21 13:43 2263我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个 ... -
java对cookie的读写操作
2014-12-16 13:59 685Java中如何读写cookie Java代码 ... -
CGLib动态代理原理及实现
2014-12-12 16:53 758JDK实现动态代理需要实 ... -
java动态代理(JDK和cglib)
2014-12-12 16:08 660JAVA的动态代理 代理模式 代理模式是常用的java设计模 ... -
使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP
2014-09-11 15:05 1442虽然现在JS做报表和图 ... -
http请求后直接下载数据
2014-07-31 17:10 969@RequestMapping("/public ... -
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:com
2014-07-28 20:28 2264not a JRE问题在使用pom.xml配置默认Goa ... -
ConcurrentModificationException异常解决办法
2014-07-27 18:59 793java.util.ConcurrentModificati ... -
java 加载properties 文件的多种方法
2014-07-02 11:41 641这里介绍两种技术:利 ... -
java 内存查看命令 jmap
2014-07-01 14:11 2266内存监控的方法: 1. jmap -heap pid ... -
java高级程序员常见面试知识
2014-06-26 10:20 8551、java 内存模型,GC 工作原理 2、java c ... -
10分钟教会你Apache Shiro
2014-06-05 14:22 885前言 欢迎来到Apache Shi ... -
java Swing 播放背景音乐
2014-02-22 19:38 5396import java.io.FileNotFoundEx ... -
Cannot return from outside a function or method
2014-02-10 21:03 889最近发现myeclipse10中有几处bug ... -
代码生成工具
2013-12-13 13:46 7701、http://code.google.com/p/mrd ... -
Java Date 和 Calendar
2013-10-12 14:02 763Java 语言的Date(日期),Calendar(日历), ... -
Eclipse启动时发生An internal error occurred during: "Initializing Java Tooling".错误的解决
2013-10-09 19:14 1235Eclipse启动时发生An internal erro ... -
Javolution 类库特性简述 -- 转载
2013-08-05 14:23 1864Javolution 实时目标是简单的:使你的应用程序更快 ...
相关推荐
以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与标准 #### 1. URL与URI URL(Uniform Resource Locator)统一资源定位符,是一种用于标识网络上资源位置的标准格式,如`...
在Java Web开发中,路径问题是一个常见的挑战,尤其是在处理JSP页面、Servlet以及web.xml配置文件时。理解和正确使用路径对于构建稳定、高效的应用程序至关重要。以下是对标题和描述中提及的知识点的深入探讨。 ###...
在Java Web开发中,获取WEB-INF目录或者更广泛的WEBROOT(Web应用的根目录)的物理路径是一项常见的需求。这通常涉及到服务器环境变量、Servlet API的使用以及对Web应用部署结构的理解。以下将详细讲解如何在Java中...
特别是在 Java Web 项目中,获取路径变得更加复杂。下面我们将详细讨论 Java 项目中获取路径的方法和注意事项。 获取相对路径 在 Java 项目中,获取相对路径可以使用 `getResource` 方法。这个方法可以返回当前类...
在Java Web开发中,路径问题往往困扰着许多开发者,尤其是在处理资源定位、文件读取以及配置文件加载等场景时。本文将深入解析Java Web中所有路径问题的解决方法,涵盖Servlet、Action、Controller、Filter、...
"Java 中相对路径与绝对路径的问题" Java 中的路径问题一直是困扰许多编程人员的问题之一。在 Java 中,我们需要了解相对路径和绝对路径的概念,以及如何获取它们。下面我们将详细地讨论 Java 中的相对路径和绝对...
### Java(Web)中相对路径与绝对路径问题总结 #### 基本概念理解 在Java Web开发中,路径的概念非常重要,因为它们直接影响到资源的加载和处理。路径分为两种类型:绝对路径和相对路径。 **绝对路径**是指文件或...
在Java开发中,路径问题是一个常见且重要的主题,特别是在Servlet和JSP的上下文中。路径主要分为两种类型:相对路径和绝对路径。 **1. 相对路径与绝对路径** - **相对路径**:它是相对于某个基准目录的路径。例如...
在Java开发中,特别是在Web应用开发中,经常需要获取不同类型的路径,例如:当前Web应用的路径、特定文件的真实路径等。本文将详细讲解如何通过不同的方式来获取这些路径。 #### JSP中获取路径 1. **获取当前应用...
在Java开发中,路径处理是常见且重要的环节,尤其是在Web应用中,正确处理各种路径能够确保资源的准确访问和系统的稳定运行。以下是对标题“JAVA中获取各种路径”及其描述和部分内答所提及的几种路径获取方法的详细...
如何在java中获取文件的绝对路径,以及在java web开发中得到文件的绝对路径。
当类路径中包含多个条目时,它们会被顺序搜索。 4. 类路径配置 - 通过`-cp`/`-classpath`命令行参数设置类路径,或者在`JAVA_HOME/bin/classpath`文件中配置。 - 在IDE如Eclipse、IntelliJ IDEA中,类路径配置...
### Web中的路径问题详解 在Web开发中,正确处理路径是非常重要的。无论是为了访问静态资源、配置文件还是进行页面跳转等操作,都需要对路径有深入的理解和掌握。本文将根据给定的信息来探讨Web应用中的路径问题。 ...
Java 开发中,路径问题是非常重要的一方面,不同的路径表示方式会带来不同的结果,了解绝对路径和相对路径的概念和使用方法对Java 开发非常重要。本文总结了Java 开发中的路径问题,帮助开发朋友方便解决路径问题,...
Java Web 开发中路径问题详解 在Java Web开发中,路径问题经常困扰着开发者,特别是初学者。理解路径的不同类型和使用场景至关重要,因为它们决定了资源的定位和访问方式。以下将详细介绍Java Web中涉及的路径类型...
本文将详细介绍如何在Java中获取不同类型的路径,包括Web服务器下的文件路径、本地路径以及相对路径。 #### 一、获取Web服务器下的文件路径 在Java Web开发中,获取Web服务器下的文件路径是非常常见的需求。主要有...
Java Web 开发中路径问题的定义是开发人员在构建动态Web应用程序时必须理解的关键概念。路径问题主要涉及JSP页面、Servlet以及web.xml配置文件,它们之间的路径引用方式有所不同,容易造成初学者的困扰。 首先,JSP...