在javaweb项目中添加配置文件,满足连接数据库配置参数以及其他自定义参数存放,可自 己写一个配置文件**.properties,把项目所需的自定义配置信息以名值对的形式写入文件。在项目工程目录下的WebRoot\WEB-INF \classes目录下新建一个conf文件夹专门存放配置文件,然后把**.properties配置文件放到conf中,部署时IDE会自动将其复制 到相应路径。
java web项目未开启服务(有没有部署到tomcat中一样)使用this.getClass().getResource("/")得到Url对象,打印如下:
file:/D:/myEclipseWorkspace/你的项目工程名/WebRoot/WEB-INF/classes/
此路径为java web项目源路径。
部署到tomcat中的java web项目开启服务后使用this.getClass().getResource("/")得到Url对象,打印如下:
file:/D:/program/apache-tomcat-6.0.14/webapps/你的项目工程名/WEB-INF/classes/
然后调用toString().substring(6)获得绝对路径的前半部分,加上相对路径,如
conf/jdbc.properties
拼接成配置文件的绝对路径:(这个路径最前面的“/“本人也不清楚是什么意思,但是测试发现有没有那个”/“都能成功)
/F:/D:/program/apache-tomcat-6.0.14/webapps/你的项目工程名/WEB-INF/classes/conf/send.properties
java application项目使用this.getClass().getResource("/")得到Url对象,打印如下:
file:/D:/myEclipseWorkspace/你的项目工程名/bin/
此路径为java
application项目的class文件的根路径。
注意:未开启tomcat
web服务时打印的不是上面的路径,是你的项目源文件的classes路径。
上面的是本人最近在学习javaWeb时候遇到路径问题的解决方法,以下的是网上搜集到的资料共享一下,未测试
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
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"));
-------------------------------
另:Request中getContextPath、getServletPath、getRequestURI、getRequestURL、getRealPath的区别
假定你的web
application 名称为news,你在浏览器中输入请求路径:http://localhost:8080/news/main/list.jsp
则执行下面向行代码后打印出如下结果:
1、
System.out.println(request.getContextPath());
打印结果:/news
2、System.out.println(request.getServletPath());
打印结果:/main/list.jsp
3、
System.out.println(request.getRequestURI());
打印结果:/news/main/list.jsp
4、System.out.println(request.getRequestURL());
打印结果:http://localhost:8080/news/main/list.jsp
5、
System.out.println(request.getRealPath("/"));
打印结果:F:\Tomcat
6.0\webapps\news\tes
分享到:
相关推荐
获取Java Web项目中的WEBROOT或WEB-INF物理路径,是开发过程中的常见操作,通常通过Servlet API的`ServletContext`接口实现。理解Web应用的部署结构和正确使用`getRealPath()`方法,对于解决与文件操作相关的问题至...
本文将深入解析Java Web中所有路径问题的解决方法,涵盖Servlet、Action、Controller、Filter、Listener等关键组件的路径获取技巧,以及Spring框架下Web应用根目录的获取策略。 ### 一、理解Java Web中的路径类型 ...
本文主要介绍了 Tomcat 部署 Java Web 项目遇到的问题及解决方法,并提供了详细的示例代码和解决方案,对大家的学习和工作具有一定的参考价值。 一、Tomcat 部署 Java Web 项目遇到的问题 在部署 Java Web 项目到 ...
在Java项目开发中,尤其是基于Struts框架的应用,可能会遇到服务器启动时的异常问题,比如在本案例中遇到的“ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource”。这个问题通常出现在尝试加载...
在Java和Web开发中,路径问题常常困扰开发者,因为它们涉及到资源的定位和访问。本文主要探讨如何在Java和Web环境中有效地解决路径问题。 首先,Java中的路径分为绝对路径和相对路径。绝对路径是从根目录开始的完整...
《Java Web开发实践教程》案例项目-实现2.rar是一个压缩包,其中包含了使用Java Web技术进行实际开发的案例项目。这个项目可能涵盖了多个关键知识点,包括但...实践中遇到的问题和解决方案将是学习过程中最宝贵的财富。
总之,《亮剑 Java Web 项目开发案例导航》为你提供了一个全面的学习路径,从基础的Java编程到复杂的Web应用程序设计,你都将有实践经验。通过这个项目,你不仅可以掌握Java Web开发的关键技术,还能培养解决问题和...
本文总结了Java 开发中的路径问题,帮助开发朋友方便解决路径问题,让你节省大量的时间。 1. 基本概念的理解 绝对路径是指文件或目录在硬盘上的真正路径,例如C:\xyz\test.txt 代表了 test.txt 文件的绝对路径,...
3. **Spring框架的解决方案**:Spring提供了一种在`web.xml`中设置`webAppRootKey`参数的方法,然后在Servlet、Filter或Listener中获取并将其作为系统属性写入。这样,通过`System.getProperty("webapp.root")`可以...
Java web项目启动Tomcat报错解决...Java web项目启动Tomcat报错解决方案是一个常见的问题,但通过添加 bootstrap.jar 文件到 Java 库路径中,可以快速解决该问题。hope 对大家的学习有所帮助,也希望大家多多支持我们。
在实际开发中,结合Spring MVC或其他框架,Velocity能更好地服务于Web应用程序,提供灵活且高性能的模板渲染解决方案。如果你想要进一步学习和实践,可以从提供的"example"压缩包中查看具体的代码示例,这将有助于...
总的来说,Java版的ArcGIS路径分析是一个综合了GIS技术、网络优化算法和Java编程的综合性解决方案,它为解决现实世界中的路径优化问题提供了强大的工具。开发者需要熟悉ArcGIS的API,理解地理数据结构,掌握路径分析...
**Web应用路径** 在Java Web应用中,路径问题更为复杂。`JavaWebPath`可能指的是在Web应用上下文中的路径。Web应用的根目录通常由`ServletContext`的`getRealPath()`方法提供,这个方法可以将相对于Web应用的虚拟...
本文将详细解析Java中的路径问题,并提供相应的解决策略。 首先,Servlet的访问路径是通过`web.xml`文件配置的。配置示例为`<url-pattern>Servlet访问路径</url-pattern>`。Servlet的路径有两种基本形式:以"/"开头...
以下是对Java中获取路径几种常见途径的详细解析,包括了从Web应用环境到普通Java应用程序中路径获取的方法,旨在为开发者提供全面的指导。 ### 1. Web应用中的路径获取 #### a. Servlet上下文路径 在Servlet环境中...
《深入体验Java_Web开发内幕—核心基础》是一本针对Java Web开发的深度解析书籍,旨在帮助读者全面理解和掌握Java Web开发的核心技术...实际书籍的内容会更具体、更详细,覆盖更多实际开发中可能遇到的问题和解决方案。
4. **解决Web开发中的相对路径问题**: 在Web应用中,处理URL路径是常见的挑战。正确使用相对路径和绝对路径,以及理解不同上下文路径对资源引用的影响,是避免路径问题的关键。有时需要利用Spring MVC或其他框架的...
### DWR中JS的引用路径问题详解 #### 一、背景介绍 在Web开发中,JavaScript(简称JS)是前端开发的重要组成部分之一...通过上述方法,可以有效地解决DWR中JS文件的引用路径问题,保证Web应用程序的稳定性和可靠性。
虽然文档的【部分内容】并不是直接关于“Java_Web轻量级开发全体验”的详细讨论,但它提供了一个行业背景,并间接引出了学习Java Web开发时可能遇到的问题和解决方案。读者可以从中获得如何在Java Web领域内获得更好...