java如何得到项目的webRoot 路径?

如题所述

使用JAVA后台代码取得WEBROOT物理路径,可以有如下两种方式:
1、使用JSP Servlet取得WEB根路径可以用request.getContextPath(),相对路径request.getSession().getServletContext().getRealPath("/"),它们可以使用我们很容易取得根路径。

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的物理路径。
具体示例代码如下:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>csc2.root</param-value>
</context-param>
<listener>
<listener-class>test.ApplicationListener</listener-class>
</listener>
</web-app>

ApplicationListener.java
package test;
import javax.servlet.ServletContextEvent;
import org.springframework.web.context.ContextLoaderListener;
public class ApplicationListener extends ContextLoaderListener {
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
}
public void contextInitialized(ServletContextEvent sce) {
// TODO Auto-generated method stub
String webAppRootKey = sce.getServletContext().getRealPath("/");
System.setProperty("csc2.root" , webAppRootKey);
String path =System.getProperty("csc2.root");
System.out.println("sssss:::"+path);
}
}

test.java
public class test {
public void remve(){
String path =System.getProperty("csc2.root");
System.out.println("result::::::::"+path);
}

}

index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="test.test" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
test t = new test();
t.remve();
%>
<html>
</html>
部署程序发布 启动TOMCAT 运行index.jsp 就可以调用JAVA中全局设置的物理路径了(说明这里的JSP 只是调用了TEST.JAVA 的remove方法,不做其他使用。原理解释,TOMCAT启动和读取WEB.XML 监听方式加载SPRING ApplicationListener继承SPRING ContextLoaderListener加载SPRING顺便吧全局路径赋值给csc2.root 描述,这样之后JAVA 代码中就可以使用System.getProperty("csc2.root")调用全路路径了。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-04-20
如果你要获得Root地址的类没有ServletContext的话, 也可以使用这个方法.这个能获得你的工程所在路径, 后面再自己加一下/webRoot就行了, 反正这路径是死的.本回答被提问者采纳

java获取项目resource路径(javaweb获取项目路径)
(1)类的绝对路径:Class.class.getClass().getResource("\/").getPath()结果:\/D:\/TEST\/WebRoot\/WEB-INF\/classes\/pack\/(2)得到工程的路径:System.getProperty("user.dir")结果:D:TEST 3.在Servlet中取得路径:(1)得到工程目录:request.getSession().getServletContext().getRealPath("")?参数可...

java 怎么获取web根目录?
在java中获得文件的路径在我们做上传文件操作时是不可避免的。 web 上运行 1:this.getClass().getClassLoader().getResource("\/").getPath(); this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的绝对URI路径。以工程名为TEST为例:(1)得到包含工程名的当前页...

java 什么叫WebAPP根目录?
在javaEE项目中 webroot文件夹或者webcontent文件夹就是WebApp根目录 这些目录下一班存放视图文件比如html,jsp 脚本js文件 其它资源文件

java 怎么获取web根目录
以工程名为TEST为例: \\x0d\\x0a\\x0d\\x0a(1)得到包含工程名的当前页面全路径:request.getRequestURI() \\x0d\\x0a结果:\/TEST\/test.jsp \\x0d\\x0a(2)得到工程名:request.getContextPath() \\x0d\\x0a结果:\/TEST \\x0d\\x0a(3)得到当前页面所在目录下全名称:request.getServletPath...

如何获得项目的路径
因为我部署后的路径是所有WEB项目都是类似你那种路径的,WEB项目在应用服务器例如TOMCAT下的默认部署路径像这样而假设你在这个项目中,用MyEclise直接Run单个测试类的话,出现的Class.getResource()路径就类似MyEclipse工作目录\\项目名\\webRoot\\WEB-INF\\classes如果是web项目可以使用而假设你建立的是Java Project...

java 项目如何获取项目所在的物理根路径
在java中获得文件的路径在我们做上传文件操作时是不可避免的。web上运行1:this.getClass().getClassLoader().getResource("\/").getPath();this.getClass().getClassLoader().getResource("").getPath();得到的是ClassPath的绝对URI路径。如:\/D:\/jboss-4.2.2.GA\/server\/default\/deploy\/hp....

java webroot目录是干什么的?
在Web应用程序中,Webroot目录的位置可以进行配置,但默认情况下,它通常位于应用程序的根目录下,这样用户可以直接访问静态资源的URL路径。想学习java可以选择慕课网。慕课网是IT教育行业的造梦者,也是前沿技术内容的创造者和传播者!课程范围覆盖:前端、JAVA、Python、Go、人工智能、大数据、移动端等60类主流...

java io 访问位于WebRoot下的文件
先获取到相对路径:String s=Thread.currentThread().getContextClassLoader().getResource("\/").getPath();判断是不是为null如果是的就为 String s=Thread.currentThread().getContextClassLoader().getResource("").getPath();然后再s拼接上你的文件名就可以了 ...

www.xxxx.com\/WebRoot java网站怎么去掉\/WebRoot啊?
如果你用的开发工具方便的话,可以直接改;如果是IDEA,可以在设置Edit Configuration,选中你的服务器,右边deployment 的Application context 设置为 \/就行 如果是MyEclipse,可以右键项目名,选择Properties 搜索web,在右边的 Web Context-root 写个 \/ 就行 ...

Java 获取配置文件路径
读取配置文件 , xxx.properties放在webroot\/WEB-INF\/classes\/目录下 首先将配置文件转换成InputStream,有两种方式,原理一样,都是通过类加载器得到资源:(1)InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("xx.properties");(2) InputStream ...

相似回答