java后台怎么获得File标签的绝对路径 我只是做导入功能 拿File标签只是为了给用户想要的视觉效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java后台怎么获得File标签的绝对路径 我只是做导入功能 拿File标签只是为了给用户想要的视觉效果相关的知识,希望对你有一定的参考价值。

在本机上面就可以获得到绝对路径 但是到用户那去就不行了 只能获得文件名字 请教下 有什么办法解决吗?

JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径  :application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath("/");
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()

Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath
(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
(ServletContext对象获得几种方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
)

服务器中的Java类获得当前路径(来自网络)
(1).Weblogic

WebApplication的系统文件根目录是你的weblogic安装所在根目录。
例如:如果你的weblogic安装在c:\bea\weblogic700.....
那么,你的文件根路径就是c:\.
所以,有两种方式能够让你访问你的服务器端的文件:
a.使用绝对路径:
比如将你的参数文件放在c:\yourconfig\yourconf.properties,
直接使用 new FileInputStream("yourconfig/yourconf.properties");
b.使用相对路径:
相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放

在yourwebapp\yourconfig\yourconf.properties,
这样使用:
new FileInputStream("./yourconfig/yourconf.properties");
这两种方式均可,自己选择。

(2).Tomcat

在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin

(3).Resin

不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET
的路径为根.比如用新建文件法测试File f = new File("a.htm");
这个a.htm在resin的安装目录下

(4).如何读相对路径哪?

在Java文件中getResource或getResourceAsStream均可

例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web

发布根路径下WEB-INF/classes

默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。追问

你好 我是SSH 做的 请问改用那种方法 获取用户所选择的路径呢?

参考技术A 你还在么?我也遇到了和你一样的问题请教下

java web项目 相对路径怎么写

网上长篇大论一大堆,不知所云,我就问一个简单的问题:
我想访问WebRoot目录下的一个文件中的东西,提示我目录找不到.不在web工程下可以访问,web下我知道WebRoot是根目录,所以我试过WebRoot/**/**不行 /**/**不行 ../**/** 不行 网上找了一些方法都没啥用 web下访问资源到底要怎么写?

servlet里面通过String basePath=session.getServletContext().getRealPath("/");获取webRoot目录真实路径。
比如d:\tomcat 6\webapps\项目名
webRoot下面的resources目录通过File path = new File(basePath, "resources");获取
其它同理

如果是jsp的话,获取resources目录直接通过“<%=request.getContextPath()%>/resources”获取追问

我明白一点了,如果做成web工程后会放入容器,请问怎么不用session什么的就能知道当前的相对路径呢? 我这个是独立程序跟随tomcat启动,没有request什么的controller处理的.获取不到

追答

spring mvc的话也简单,传入一个HttpSession参数即可。

public ModelAndView test(HttpSession session)
    String basePath=session.getServletContext().getRealPath("/");
    。。。

参考技术A 如果是WebRoot根目录下,直接写那个文件追问

地址是这样的WeBRoot/文件夹/文件 我要访问文件 我写/文件夹/文件不行 试了很多都不行

追答

我想看一下,行吗3.5.7.2.2.8.5.6.0

追问

我解释清楚一点,原先是一个独立的程序,需要放到一个web工程下,跟随web工程一起启动,如果是tomcat的init启动的那么路径就错误了,如果是main方法启动这个小程序,我知道工程名就是根目录, 现在放到web下提示路径找不到,编程web后路径到底应该怎么写?我这个情况只有一个init方法启动,没有request,sessin什么的,我没办法用到.

追答

你可以实现一个监听器,在启动的时候调用你的小程序,然后把路径传进去

本回答被提问者采纳
参考技术B 如果在WebRoot下面则直接写,如访问WebRoot下的index.jsp则可以直接写href="indiex.jsp"如何页面在pages文件夹下面则可以这样写href="pages/index.jps"以此类推吧; 参考技术C 能看到服务器配置么, 看看是不是把直接访问文件的路径给禁用了,一般网站出去安全考虑都会禁用。 参考技术D 项目名/文件夹/文件

WeBRoot下直接 项目名/文件名

以上是关于java后台怎么获得File标签的绝对路径 我只是做导入功能 拿File标签只是为了给用户想要的视觉效果的主要内容,如果未能解决你的问题,请参考以下文章

用java代码怎么获得tomcat的上一层路径

JS 获得链接的绝对地址

在网站后台用户上传的图片如何获得图片路径存入数据库(mysql) (php解决) 急!!!

WebUploader怎么获取上传前文件的本地绝对路径?

java获得上传文件的路径

VC怎么通过绝对路径确定一个文件或者文件夹是不是存在,如果是文件存在,怎么获得该文件的大小