1.概念:
1.1絕對路徑——在硬盤上存在的真正路徑。
1.2相對路徑——相對於自己的目標文件位置。
1.3相對虛擬目錄如圖——“/”代表虛擬目錄的根目錄。舉例如圖:

1.jsp中取得路徑: 以工程名為TEST為例: (1)得到包含工程名的當前頁面全路徑:request.getRequestURI() 結果:/TEST/test.jsp (2)得到工程名:request.getContextPath() 結果:/TEST (3)得到當前頁面所在目錄下全名稱:request.getServletPath() 結果:如果頁面在jsp目錄下 /TEST/jsp/test.jsp (4)得到頁面所在服務器的全路徑:application.getRealPath("頁面.jsp") 結果:D:\resin\webapps\TEST\test.jsp (5)得到頁面所在服務器的絕對路徑:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent(); 結果:D:\resin\webapps\TEST 2.在類中取得路徑: (1)類的絕對路徑:Class.class.getClass().getResource("/").getPath() 結果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ (2)得到工程的路徑:System.getProperty("user.dir") 結果:D:\TEST 3.在Servlet中取得路徑: (1)得到工程目錄:request.getSession().getServletContext().getRealPath("") 參數可具體到包名。 結果:E:\Tomcat\webapps\TEST (2)得到IE地址欄地址:request.getRequestURL() 結果:http://localhost:8080/TEST/test (3)得到相對地址:request.getRequestURI() 結果:/TEST/test 另,Class類還有一個getResourceAsStream方法,記得以前有個項目要讀取在同一個包內的一個xml,就用的這個。 1.如何獲得當前文件路徑 常用: (1).Test.class.getResource("") 得到的是當前類FileTest.class文件的URI目錄。不包括自己! (2).Test.class.getResource("/") 得到的是當前的classpath的絕對URI。 (3).Thread.currentThread().getContextClassLoader().getResource("") 得到的也是當前ClassPath的絕對URI。 (4).Test.class.getClassLoader().getResource("") 得到的也是當前ClassPath的絕對URI。 (5).ClassLoader.getSystemResource("") 得到的也是當前ClassPath的絕對URI。 盡量不要使用相對於System.getProperty("user.dir")當前用戶目錄的相對路徑,后面可以看出得出結果五花八門。 (6) new File("").getAbsolutePath()也可用。 注:若這些路徑中出現空格,並且空格被 代替,則可以使用path = java.net.URLDecoder.decode(path,"utf-8") 進行轉化; 2.Web服務器 (1).Tomcat 在類中輸出System.getProperty("user.dir");顯示的是%Tomcat_Home%/bin (2).Resin 不是你的JSP放的相對路徑,是JSP引擎執行這個JSP編譯成Servlet的路徑為根.比如用新建文件法測試File f = new File("a.htm"); 這個a.htm在resin的安裝目錄下 (3).如何讀文件 使用ServletContext.getResourceAsStream()就可以 (4).獲得文件真實路徑 String file_real_path=ServletContext.getRealPath("mypath/filename"); 不建議使用request.getRealPath("/");
最常碰到的問題是,接手沒有文檔的項目,怎么梳理業務邏輯關系,代碼關系?
起起服務,從頁面上跑一條業務,同時后台跟蹤走過的代碼,跟蹤數據庫,跟蹤數據走向,跟蹤頁面。
梳理整理業務邏輯,整理代碼走向,整理數據走向,表間關系。
通過上面的方式,慢慢的熟悉系統。
起起服務,從頁面上跑一條業務,同時后台跟蹤走過的代碼,跟蹤數據庫,跟蹤數據走向,跟蹤頁面。
梳理整理業務邏輯,整理代碼走向,整理數據走向,表間關系。
通過上面的方式,慢慢的熟悉系統。