如何在eclipse中获取动态项目的绝对路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在eclipse中获取动态项目的绝对路径相关的知识,希望对你有一定的参考价值。
参考技术A 1.鼠标选中项目,右击菜单,选择 properties2.出来弹出框,选择resource,location 的值就是你想要的项目绝对路径 参考技术B 点击项目,右键,属性,就可以看到“位置”,就是绝对路径了。追问
用代码实现啊
追答你问题没说清楚哦,在项目代码里面获取绝对路径就是:
String Path = getResource("").toURI().getPath();
这个你使用application就行啊。request.getSession().getServletContext().getRealPath();
a <code>String</code> specifying the real path,
* or null if the translation cannot be performed
这个就是 getRealPath() 的注释。 参考技术D 你可以在类里面定义一个变量,用来保存路径,这个路径可以自己拼成的,然后再在页面读取 第5个回答 2012-07-16 项目右键,属性就能看见了
web应用路径问题(相对路径,绝对路径,动态获取路径)
1、相对路径和绝对路径
绝对路径:以 “ / ” 开头的路径,是完整的路径。
相对路径:不以 “ / ” 开头的路径,是相对于当前web资源目录的路径。
在绝对路径中, “ / ” 的含义有两种解释:
(1)如果是服务器端解析, “ / ” 代表相对于当前web应用的绝对路径,即:协议名://服务器名(主机地址):端口号/项目名/,例如:http://localhost:8080/MyTest/。
(2)如果是浏览器端解析(出现在地址栏里的路径), “ / ” 代表相对于当前服务器的绝对路径,即:协议名://服务器名(主机地址):端口号/,例如:http://localhost:8080/。
常见的两种绝对路径的例子就是转发和重定向。
假设在当前动态web项目MyTest中,项目根目录webContent下有两个页面src.html和des.html。
src.html中,通过超链接访问项目中的Servlet,此时a标签的地址有浏览器端解析,路径的第一个 “ / ” 代表http://localhost:8080/,如果直接写 " /MyServlet " 就会报404错误。
<a href="/MyTest/MyServlet">主页</a><!-- /MyTest/MyServlet等价于http://llocalhost:8080/MyTest/MyServlet -->
在MyServlet中做如下处理,将请求转发到des.html做处理,此时转发器中的地址由服务器解析,路径的第一个 “ / ” 代表http://localhost:8080/MyTest/。
如果是重定向,重定向中的地址由浏览器解析,路径的第一个 “ / ” 代表http://localhost:8080/,如果直接写 " /des.html " 就会报404错误。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("/des.html").forward(request, response); // /des.html 等价于 http://localhost:8080/MyTest/des.html
// response.sendRedirect("/MyTest/des.html"); // /MyTest/des.html 等价于 http://localhost:8080/MyTest/des.html
}
如果是相对路径的话较简单些,但相比绝对路径,相对路径更容易出错,当页面更换位置时,链接容易失效。
<a href="MyServlet">主页</a>
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("des.html").forward(request, response); // response.sendRedirect("des.html"); }
但是无论是相对路径还是绝对路径,都容易出问题。
2、动态获取路径(最不容易出错的方法)
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <body> <!-- 获取当前链接使用的协议;一般应用返回http;SSL返回https; --> request.getScheme()===<%=request.getScheme() %><!-- http --> <br> <!-- 获取当前页面所在的服务器的名字,如果是在本地的话就是localhost --> request.getServerName()===<%=request.getServerName() %><!-- localhost --> <br> <!-- 获得服务器的端口号 --> request.getServerPort()===<%=request.getServerPort() %><!-- 8080 --> <br> <!-- 获取当前web应用的根目录 --> request.getContextPath()===<%=request.getContextPath() %><!-- /MyTest --> <br> basePath===<%=basePath %><!-- http://localhost:8080/MyTest/ --> <br> </body>
在java后台同样可以这样获取到路径,但是更多的用于前台的访问路径和js、css、img等静态资源的访问路径问题。
以上是关于如何在eclipse中获取动态项目的绝对路径的主要内容,如果未能解决你的问题,请参考以下文章
在java web项目中,如何获取项目的绝对路径(考虑到后期移植不能写死),大神帮忙!