java中action如何获得客户端文件的路径

java中action如何获得客户端文件的路径,第1张

1基本概念的理解
绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:/xyz/testtxt 代表了testtxt文件的绝对路径。http://wwwsuncom/indexhtm也代表了一个
URL绝对路径。
相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在
Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"/" 代表当前目录,
"/"代表上级目录。这种类似的表示,也是属于相对路径。
另外关于URI,URL,URN等内容,请参考RFC相关文档标准。
RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,
(http://wwwietforg/rfc/rfc2396txt)
2关于JSP/Servlet中的相对路径和绝对路径。
21服务器端的地址
服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的
(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候
在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于http://19216801/webapp/的。
其用到的地方有:
forward:servlet中的requestgetRequestDispatcher(address);这个address是
在服务器端解析的,所以,你要forward到ajsp应该这么写:
requestgetRequestDispatcher(“/user/ajsp”)这个/相对于当前的web应用webapp,
其绝对地址就是:http://19216801/webapp/user/ajsp。
sendRedirect:在jsp中<%responsesendRedirect("/rtccp/user/ajsp");%>
222、客户端的地址
所有的html页面中的相对地址都是相对于服务器根目录(http://19216801/)的,
而不是(跟目录下的该Web应用的目录)http://19216801/webapp/的。
Html中的form表单的action属性的地址应该是相对于服务器根目录(http://19216801/)的,
所以,如果提交到ajsp为:action="/webapp/user/ajsp"或action="<%=requestgetContextPath()%>"/user/ajsp;
提交到servlet为actiom="/webapp/handleservlet"
Javascript也是在客户端解析的,所以其相对路径和form表单一样。
因此,一般情况下,在JSP/HTML页面等引用的CSS,JavascriptAction等属性前面最好都加上
<%=requestgetContextPath()%>,以确保所引用的文件都属于Web应用中的目录。
另外,应该尽量避免使用类似"","/","//"等类似的相对该文件位置的相对路径,这样
当文件移动时,很容易出问题。
3 JSP/Servlet中获得当前应用的相对路径和绝对路径
31 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:requestgetRequestURI()
文件的绝对路径 :applicationgetRealPath(requestgetRequestURI());
当前web应用的绝对路径 :applicationgetRealPath("/");
取得请求文件的上层目录:new File(applicationgetRealPath(requestgetRequestURI()))getParent()
32 Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:requestgetServletPath();
文件的绝对路径 :requestgetSession()getServletContext()getRealPath
(requestgetRequestURI())
当前web应用的绝对路径 :servletConfiggetServletContext()getRealPath("/");
(ServletContext对象获得几种方式:
javaxservlethttpHttpSessiongetServletContext()
javaxservletjspPageContextgetServletContext()
javaxservletServletConfiggetServletContext()
)
4java 的Class中获得相对路径,绝对路径的方法
41单独的Java类中获得绝对路径
根据javaioFile的Doc文挡,可知:
默认情况下new File("/")代表的目录为:SystemgetProperty("userdir")。
一下程序获得执行类的当前路径
package orgchengfile;
import javaioFile;
public class FileTest {
public static void main(String[] args) throws Exception {
Systemoutprintln(ThreadcurrentThread()getContextClassLoader()getResource(""));
Systemoutprintln(FileTestclassgetClassLoader()getResource(""));
Systemoutprintln(ClassLoadergetSystemResource(""));
Systemoutprintln(FileTestclassgetResource(""));
Systemoutprintln(FileTestclassgetResource("/")); //Class文件所在路径
Systemoutprintln(new File("/")getAbsolutePath());
Systemoutprintln(SystemgetProperty("userdir"));
}
}
42服务器中的Java类获得当前路径(来自网络)
(1)Weblogic
WebApplication的系统文件根目录是你的weblogic安装所在根目录。
例如:如果你的weblogic安装在c:/bea/weblogic700
那么,你的文件根路径就是c:/
所以,有两种方式能够让你访问你的服务器端的文件:
a使用绝对路径:
比如将你的参数文件放在c:/yourconfig/yourconfproperties,
直接使用 new FileInputStream("yourconfig/yourconfproperties");
b使用相对路径:
相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放
在yourwebapp/yourconfig/yourconfproperties,
这样使用:
new FileInputStream("/yourconfig/yourconfproperties");
这两种方式均可,自己选择。
(2)Tomcat
在类中输出SystemgetProperty("userdir");显示的是%Tomcat_Home%/bin
(3)Resin
不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET
的路径为根比如用新建文件法测试File f = new File("ahtm");
这个ahtm在resin的安装目录下

以上就是关于java中action如何获得客户端文件的路径全部的内容,包括:java中action如何获得客户端文件的路径、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9347920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存