当前位置 : 主页 > 编程语言 > c++ >

java 神奇的路径拼接bug

来源:互联网 收集:自由互联 发布时间:2021-07-03
bug1 :符号 File.separator是系统默认的文件分割符号,屏蔽了这些系统的区别。 用File.separator保证了在任何系统下不会出错。 String filePath="src"+ File.separator +"user"+ File.separator +userName+ File.
bug1 :符号 File.separator是系统默认的文件分割符号,屏蔽了这些系统的区别。 用File.separator保证了在任何系统下不会出错。
String filePath="src"+ File.separator +"user"+ File.separator +userName+ File.separator +listConn.get("connName")+".properties";
比如说要在temp目录下建立一个test.txt文件,在Windows下应该这么写:
File file1 = new File ("C:\tmp\test.txt");
在linux下则是这样的:
File file2 = new File ("/tmp/test.txt");

如果要考虑跨平台,则最好是这么写:
File myFile = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");

File类有几个类似separator的静态字段,都是与系统相关的,在编程时应尽量使用。
bug2:source和deploy path路径
原本在java 中路径为source 下的/src 和 /WebContent
在controllet,html 中路径为Deploy Path下的 WEB-INF/classes 和 /

demo:
String path = request.getRealPath("/");
String filePath=path+"WEB-INF"+ File.separator+"classes"+ File.separator +"user";
相对路径问题,前部添加<%=request.getContextPath()%>,以确保所引用的文件都属于Web应用中的目录
如果是js,css等文件可以用这个{pageContext.request.ContextPath}/...
文件确实是在webContent下的img或js目录下,直接使用/js/jquery-2.1.0.min.js 或/images/bg.png能在程序中直接访问
客户端浏览器的路径也为/js/jquery-2.1.0.min.js 或/images/bg.png,这是能访问的,但是我们测试的时候不止一个项目,
所以并没有将这个项目放到tomcat的默认项目中或其他问题。

写法:
src=“{pageContext.request.ContextPath}/js/jquery-2.1.0.min.js” 
如果是图片
<%=request.getContextPath()%>/images/bg.png%>
这样一来就能访问了,浏览器上的路径为 /ProjectName/images/bg.png 或  /ProjectName/js/jquery-2.1.0.min.js

http://blog.csdn.net/bohemia/article/details/704427/
网友评论