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下访问资源到底要怎么写?
比如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标签只是为了给用户想要的视觉效果的主要内容,如果未能解决你的问题,请参考以下文章