{"id":136,"date":"2017-12-28T10:25:04","date_gmt":"2017-12-28T04:25:04","guid":{"rendered":"https:\/\/qtvz.com\/?p=136"},"modified":"2017-12-28T10:25:04","modified_gmt":"2017-12-28T04:25:04","slug":"java%e8%8e%b7%e5%8f%96%e8%b7%af%e5%be%84%e7%9a%84%e5%90%84%e7%a7%8d%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/qtvz.com\/136.html","title":{"rendered":"JAVA\u83b7\u53d6\u8def\u5f84\u7684\u5404\u79cd\u65b9\u6cd5"},"content":{"rendered":"<p align=\"left\"><strong>(1)<\/strong><strong>\u3001<\/strong><strong>request.getRealPath(\"\/\");\/\/<\/strong><strong>\u4e0d\u63a8\u8350\u4f7f\u7528\u83b7\u53d6\u5de5\u7a0b\u7684\u6839\u8def\u5f84<\/strong><strong><br \/>\n<\/strong><strong>(2)<\/strong><strong>\u3001<\/strong><strong>request.getRealPath(request.getRequestURI());\/\/<\/strong><strong>\u83b7\u53d6<\/strong><strong>jsp<\/strong><strong>\u7684\u8def\u5f84\uff0c\u8fd9\u4e2a\u65b9\u6cd5\u6bd4\u8f83\u597d\u7528\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728<\/strong><strong>servlet<\/strong><strong>\u548c<\/strong><strong>jsp<\/strong><strong>\u4e2d\u4f7f\u7528<\/strong><strong><br \/>\n<\/strong><strong>(3)<\/strong><strong>\u3001<\/strong><strong>request.getSession().getServletContext().getRealPath(\"\/\");\/\/<\/strong><strong>\u83b7\u53d6\u5de5\u7a0b\u7684\u6839\u8def\u5f84\uff0c\u8fd9\u4e2a\u65b9\u6cd5\u6bd4\u8f83\u597d\u7528\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728<\/strong><strong>servlet<\/strong><strong>\u548c<\/strong><strong>jsp<\/strong><strong>\u4e2d\u4f7f\u7528<\/strong><strong><br \/>\n<\/strong><strong>(4)<\/strong><strong>\u3001<\/strong><strong>\u00a0this.getClass().getClassLoader().getResource(\"\").getPath();\/\/<\/strong><strong>\u83b7\u53d6\u5de5\u7a0b<\/strong><strong>classes\u00a0<\/strong><strong>\u4e0b\u7684\u8def\u5f84\uff0c\u8fd9\u4e2a\u65b9\u6cd5\u53ef\u4ee5\u5728\u4efb\u610f<\/strong><strong>jsp<\/strong><strong>\uff0c<\/strong><strong>servlet<\/strong><strong>\uff0c<\/strong><strong>java<\/strong><strong>\u6587\u4ef6\u4e2d\u4f7f\u7528\uff0c\u56e0\u4e3a\u4e0d\u7ba1\u662f<\/strong><strong>jsp<\/strong><strong>\uff0c<\/strong><strong>servlet<\/strong><strong>\u5176\u5b9e\u90fd\u662f<\/strong><strong>java<\/strong><strong>\u7a0b\u5e8f\uff0c\u90fd\u662f\u4e00\u4e2a<\/strong><strong>\u00a0class<\/strong><strong>\u3002\u6240\u4ee5\u5b83\u5e94\u8be5\u662f\u4e00\u4e2a\u901a\u7528\u7684\u65b9\u6cd5\u3002<\/strong><\/p>\n<p align=\"left\">0\u3001\u5173\u4e8e\u7edd\u5bf9\u8def\u5f84\u548c\u76f8\u5bf9\u8def\u5f84<\/p>\n<p align=\"left\">1.\u57fa\u672c\u6982\u5ff5\u7684\u7406\u89e3\u7edd\u5bf9\u8def\u5f84\uff1a\u7edd\u5bf9\u8def\u5f84\u5c31\u662f\u4f60\u7684\u4e3b\u9875\u4e0a\u7684\u6587\u4ef6\u6216\u76ee\u5f55\u5728\u786c\u76d8\u4e0a\u771f\u6b63\u7684\u8def\u5f84\uff0c(URL\u548c\u7269\u7406\u8def\u5f84)\u4f8b \u5982\uff1aC:xyz est.txt \u4ee3\u8868\u4e86test.txt\u6587\u4ef6\u7684\u7edd\u5bf9\u8def\u5f84\u3002http:\/\/www.sun.com\/index.htm\u4e5f\u4ee3\u8868\u4e86\u4e00\u4e2aURL\u7edd\u5bf9\u8def\u5f84\u3002\u76f8\u5bf9\u8def\u5f84\uff1a\u76f8\u5bf9\u4e0e\u67d0\u4e2a\u57fa \u51c6\u76ee\u5f55\u7684\u8def\u5f84\u3002\u5305\u542bWeb\u7684\u76f8\u5bf9\u8def\u5f84\uff08HTML\u4e2d\u7684\u76f8\u5bf9\u76ee\u5f55\uff09\uff0c\u4f8b\u5982\uff1a\u5728Servlet\u4e2d\uff0c\"\/\"\u4ee3\u8868Web\u5e94\u7528\u7684\u8ddf\u76ee\u5f55\u3002\u548c\u7269\u7406\u8def\u5f84\u7684\u76f8\u5bf9\u8868\u793a\u3002\u4f8b \u5982\uff1a\".\/\" \u4ee3\u8868\u5f53\u524d\u76ee\u5f55,\"..\/\"\u4ee3\u8868\u4e0a\u7ea7\u76ee\u5f55\u3002\u8fd9\u79cd\u7c7b\u4f3c\u7684\u8868\u793a\uff0c\u4e5f\u662f\u5c5e\u4e8e\u76f8\u5bf9\u8def\u5f84\u3002\u53e6\u5916\u5173\u4e8eURI\uff0cURL,URN\u7b49\u5185\u5bb9\uff0c\u8bf7\u53c2\u8003RFC\u76f8\u5173\u6587\u6863\u6807\u51c6\u3002RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,(http:\/\/www.ietf.org\/rfc\/rfc2396.txt)2.\u5173\u4e8eJSP\/Servlet\u4e2d\u7684\u76f8\u5bf9\u8def\u5f84\u548c\u7edd\u5bf9\u8def\u5f84\u3002 2.1\u670d\u52a1\u5668\u7aef\u7684\u5730\u5740\u670d\u52a1\u5668\u7aef\u7684\u76f8\u5bf9\u5730\u5740\u6307\u7684\u662f\u76f8\u5bf9\u4e8e\u4f60\u7684web\u5e94\u7528\u7684\u5730\u5740\uff0c\u8fd9\u4e2a\u5730\u5740\u662f\u5728\u670d\u52a1\u5668\u7aef\u89e3\u6790\u7684\uff08\u4e0d\u540c\u4e8ehtml\u548cjavascript\u4e2d\u7684\u76f8\u5bf9 \u5730\u5740\uff0c\u4ed6\u4eec\u662f\u7531\u5ba2\u6237\u7aef\u6d4f\u89c8\u5668\u89e3\u6790\u7684\uff09<\/p>\n<p align=\"left\">1\u3001request.getRealPath<\/p>\n<p align=\"left\">\u65b9\u6cd5\uff1arequest.getRealPath(\"\/\")<br \/>\n\u5f97\u5230\u7684\u8def\u5f84\uff1aC:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps\\strutsTest\\<\/p>\n<p align=\"left\">\u65b9\u6cd5\uff1arequest.getRealPath(\".\")<br \/>\n\u5f97\u5230\u7684\u8def\u5f84\uff1aC:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps\\strutsTest\\.<\/p>\n<p align=\"left\">\u65b9\u6cd5\uff1arequest.getRealPath(\"\")<br \/>\n\u5f97\u5230\u7684\u8def\u5f84\uff1aC:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps\\strutsTest<\/p>\n<p align=\"left\">request.getRealPath(\"web.xml\")<br \/>\nC:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps\\strutsTest\\web.xml<\/p>\n<p align=\"left\">2\u3001request.getParameter(\"\");<br \/>\nActionForm.getMyFile();<\/p>\n<p align=\"left\">\u65b9\u6cd5\uff1aString filepath = request.getParameter(\"myFile\");<br \/>\n\u5f97\u5230\u7684\u8def\u5f84\uff1aD:\\VSS\u5b89\u88c5\u76ee\u5f55\\users.txt<\/p>\n<p align=\"left\">\u65b9\u6cd5\uff1aString filepath = ActionForm.getMyFile();<br \/>\n\u5f97\u5230\u7684\u8def\u5f84\uff1aD:\\VSS\u5b89\u88c5\u76ee\u5f55\\users.txt<\/p>\n<p align=\"left\">--------------------------------------------------<br \/>\nstrutsTest \u4e3a\u5de5\u7a0b\u540d<\/p>\n<p align=\"left\">myFile \u5728ActionForm\u4e2d\uff0c\u4e3aprivate String myFile;<br \/>\n\u5728jsp\u9875\u9762\u4e2d\uff1a\u4e3a&lt;html:file property=\"myFile\"&gt;&lt;\/html:file&gt;<\/p>\n<p align=\"left\">--------------------------------------------------<\/p>\n<p align=\"left\">3\u3001\u83b7\u5f97\u7cfb\u7edf\u8def\u5f84<\/p>\n<p align=\"left\">\u5728Application\u4e2d:<br \/>\nSystem.getProperty(\"user.dir\")<\/p>\n<p align=\"left\">\u5728Servlet\u4e2d:<br \/>\nServletContext servletContext = config.getServletContext();<br \/>\nString rootPath = servletContext.getRealPath(\"\/\");<\/p>\n<p align=\"left\">\u5728jsp\u4e2d:<br \/>\napplication.getRealPath(\"\")<\/p>\n<p align=\"left\">4\u3001\u5176\u4ed61<\/p>\n<p align=\"left\">1.\u53ef\u4ee5\u5728servlet\u7684init\u65b9\u6cd5\u91cc<\/p>\n<p align=\"left\">String path = getServletContext().getRealPath(\"\/\");<\/p>\n<p align=\"left\">\u8fd9\u5c06\u83b7\u53d6web\u9879\u76ee\u7684\u5168\u8def\u5f84<\/p>\n<p align=\"left\">\u4f8b\u5982 :E:\\eclipseM9\\workspace\\tree\\<\/p>\n<p align=\"left\">tree\u662f\u6211web\u9879\u76ee\u7684\u6839\u76ee\u5f55<\/p>\n<p align=\"left\">2.\u4f60\u4e5f\u53ef\u4ee5\u968f\u65f6\u5728\u4efb\u610f\u7684class\u91cc\u8c03\u7528<\/p>\n<p align=\"left\">this.getClass().getClassLoader().getResource(\"\").getPath(); \/\/ \u7ecf\u8fc7\u6d4b\u8bd5\uff0c\u8fd9\u79cd\u65b9\u6cd5\u662f\u5b89\u5168\u7684\uff0c\u6700\u6709\u6548\u7684<\/p>\n<p align=\"left\">this.getClass().getResource(\"\/conf\").getPath();\/\/ \u7ecf\u8fc7\u6d4b\u8bd5\uff0c\u8fd9\u79cd\u65b9\u6cd5\u4e5f\u662f\u5b89\u5168\u7684<\/p>\n<p align=\"left\">\u8fd9\u5c06\u83b7\u53d6 \u5230classes\u76ee\u5f55\u7684\u5168\u8def\u5f84<\/p>\n<p align=\"left\">\u4f8b\u5982 : \/D:\/workspace\/strutsTest\/WebRoot\/WEB-INF\/classes\/<\/p>\n<p align=\"left\">\u8fd8\u6709 this.getClass().getResource(\"\").getPath().toString();<\/p>\n<p align=\"left\">\u8fd9\u5c06\u83b7\u53d6 \u5230 \/D:\/workspace\/strutsTest\/WebRoot\/WEB-INF\/classes\/bl\/<\/p>\n<p align=\"left\">\u8fd9\u4e2a\u65b9\u6cd5\u4e5f\u53ef\u4ee5\u4e0d\u5728web\u73af\u5883\u91cc\u786e\u5b9a\u8def\u5f84,\u6bd4\u8f83\u597d\u7528<\/p>\n<p align=\"left\">3.request.getContextPath();<\/p>\n<p align=\"left\">\u83b7\u5f97web\u6839\u7684\u4e0a\u4e0b\u6587\u73af\u5883<\/p>\n<p align=\"left\">\u5982 \/tree<\/p>\n<p align=\"left\">tree\u662f\u6211\u7684web\u9879\u76ee\u7684root context<\/p>\n<p align=\"left\">5\u3001\u5176\u4ed62<\/p>\n<p align=\"left\">java<a href=\"https:\/\/qtvz.com\/tag\/%e8%8e%b7%e5%8f%96%e8%b7%af%e5%be%84\" class=\"tag-tooltip\" data-toggle=\"tooltip\" title=\"\u67e5\u770b\u66f4\u591a\u5173\u4e8e \u83b7\u53d6\u8def\u5f84 \u7684\u6587\u7ae0\" target=\"_blank\">\u83b7\u53d6\u8def\u5f84<\/a>\u51e0\u79cd\u9014\u5f84- -<\/p>\n<p align=\"left\">1. jdk\u5982\u4f55\u5224\u65ad\u7a0b\u5e8f\u4e2d\u7684\u8def\u5f84\u5462\uff1f\u4e00\u822c\u5728\u7f16\u7a0b\u4e2d\uff0c\u6587\u4ef6\u8def\u5f84\u5206\u4e3a\u76f8\u5bf9\u8def\u5f84\u548c\u7edd\u5bf9\u8def\u5f84\uff0c\u7edd\u5bf9\u8def\u5f84\u662f\u6bd4\u8f83\u597d\u5904\u7406\u7684\uff0c\u4f46\u662f\u4e0d\u7075\u6d3b\uff0c\u56e0\u6b64\u6211\u4eec\u5728\u7f16\u7a0b\u4e2d\u5bf9\u6587\u4ef6\u8fdb\u884c\u64cd\u4f5c\u7684\u65f6\u5019\uff0c\u4e00\u822c\u90fd\u662f\u8bfb\u53d6\u6587\u4ef6\u7684\u76f8\u5bf9\u8def\u5f84\uff0c<\/p>\n<p align=\"left\">\u76f8\u5bf9\u8def\u5f84\u53ef\u80fd\u4f1a\u590d\u6742\u4e00\u70b9\uff0c\u4f46\u662f\u4e5f\u662f\u6bd4\u8f83\u7b80\u5355\u7684\uff0c\u76f8\u5bf9\u7684\u8def\u5f84\uff0c\u4e3b\u8981\u662f\u76f8\u5bf9\u4e8e\u8c01\uff0c\u53ef\u4ee5\u662f\u7c7b\u52a0\u8f7d\u5668\u7684\u8def\u5f84\uff0c\u6216\u8005\u662f\u5f53\u524d java\u6587\u4ef6\u4e0b\u7684\u8def\u5f84\uff0c\u5728jsp\u7f16\u7a0b\u4e2d\u53ef\u80fd\u662f\u76f8\u5bf9\u4e8e\u7ad9\u70b9\u7684\u8def\u5f84\uff0c\u76f8\u5bf9\u4e8e\u7ad9\u70b9\u7684\u8def\u5f84\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7 getServletContext().getRealPath(\"\\\") \u548crequest.getRealPath(\"\\\"):\u8fd9\u4e2a\u662f\u53d6\u5f97\u7ad9\u70b9\u7684\u7edd\u5bf9\u8def\u5f84\uff1b \u800cgetContextPath():\u53d6\u5f97\u7ad9\u70b9\u7684\u865a\u62df\u8def\u5f84\uff1b<\/p>\n<p align=\"left\">2. class.getClassLoader.getPath():\u53d6\u5f97\u7c7b\u52a0\u8f7d\u5668\u7684\u8def\u5f84\uff1a\u4ec0\u4e48\u662f\u7c7b\u52a0\u8f7d\u5668\u5462\uff1f \u4e00\u822c\u7c7b\u52a0\u8f7d\u5668\u6709\u7cfb\u7edf\u7684\u548c\u7528\u6237\u81ea\u5df1\u5b9a\u4e49\u7684\uff1b\u7cfb\u7edf\u7684ClassLoader\u5c31\u662fjdk\u63d0\u4f9b\u7684\uff0c\u4ed6\u7684\u8def\u5f84\u5c31\u662fjdk\u4e0b\u7684\u8def\u5f84\uff0c\u6216\u8005\u5728 jsp\u7f16\u7a0b\uff0c\u6bd4\u5982Tomcat \uff0c\u53d6\u5f97\u7684\u7c7b\u52a0\u8f7d\u5668\u7684\u4f4d\u7f6e\u5c31\u662ftomaca\u81ea\u5df1\u8bbe\u8ba1\u7684\u52a0\u8f7d\u5668\u7684\u8def\u5f84\uff0c<\/p>\n<p align=\"left\">\u660e\u767d\u4e86\u8fd9\u4e9b\u4e4b\u540e\uff0c\u5bf9\u4e8e\u6587\u4ef6\u8def\u5f84\u7684\u64cd\u4f5c\u5c31\u4f1a\u76f8\u5f53\u7684\u6e05\u695a\uff0c\u6211\u4eec\u5728\u7f16\u7a0b\u7684\u65f6\u5019\uff0c\u53ea\u8981\u60f3\u6e05\u695a\u6211\u4eec\u6240\u64cd\u4f5c\u7684\u6587\u4ef6\u662f\u76f8\u5bf9\u4e8e\u4ec0\u4e48\u8def\u5f84\u4e0b\u7684\uff0c\u53d6\u5f97\u76f8\u5bf9\u8def\u5f84\u5c31\u53ef\u4ee5\u4e86.<\/p>\n<p align=\"left\">6\u3001\u603b\u7ed3<\/p>\n<p align=\"left\">1\u3001\u83b7\u53d6web\u670d\u52a1\u5668\u4e0b\u7684\u6587\u4ef6\u8def\u5f84<br \/>\nrequest.getRealPath(\"\/\")<br \/>\napplication.getRealPath(\"\")\u3010jsp\u4e2d \u3011<br \/>\nServletContext().getRealPath(\"\")<\/p>\n<p align=\"left\">System.getProperty(\"user.dir\")\u3010\u4e0d\u540c\u4f4d\u7f6e\u8c03\u7528\uff0c\u83b7\u53d6\u7684\u8def\u5f84\u662f\u52a8\u6001\u53d8\u5316\u7684\u3011<\/p>\n<p align=\"left\">2\u3001\u83b7\u53d6\u672c\u5730\u8def\u5f84<\/p>\n<p align=\"left\">jsp\u4e2d\uff0c&lt;html:file property=\"myFile\"\/&gt;<\/p>\n<p align=\"left\">request.getParameter(\"myFile\");<br \/>\nActionForm.getMyFile();<br \/>\n\u83b7\u53d6\u7684\u503c\u76f8\u540c\uff1a\u5982D:\\VSS\u5b89\u88c5\u76ee\u5f55\\users.txt<\/p>\n<p align=\"left\">*********************************<\/p>\n<p align=\"left\">this.getClass().getClassLoader().getResource(\"\").getPath();<br \/>\n\uff1d\uff1d\/D:\/workspace\/strutsTest\/WebRoot\/WEB-INF\/classes\/<br \/>\nthis.getClass().getResource(\"\").getPath().toString();<br \/>\n\uff1d\uff1d\/D:\/workspace\/strutsTest\/WebRoot\/WEB-INF\/classes\/bl\/<\/p>\n<p align=\"left\">3\u3001\u83b7\u53d6\u76f8\u5bf9\u8def\u5f84<\/p>\n<p align=\"left\">request.getContextPath();<\/p>\n<p align=\"left\">\n<p align=\"left\">\u53e6\u5916\uff1a<\/p>\n<p align=\"left\">\u5728Java\u6587\u4ef6\u4e2dgetResource\u6216getResourceAsStream\u5747\u53ef<\/p>\n<p>\u4f8b\uff1agetClass\uff08\uff09.getResourceAsStream\uff08filePath\uff09\uff1b\/\/filePath\u53ef\u4ee5\u662f\" \/filename\",\u8fd9\u91cc\u7684\/\u4ee3\u8868web\u53d1\u5e03\u6839\u8def\u5f84\u4e0bWEB-INF\/classes\u9ed8\u8ba4\u4f7f\u7528\u8be5\u65b9\u6cd5\u7684\u8def\u5f84\u662f\uff1aWEB-INF\/classes.\u5df2\u7ecf\u5728 Tomcat\u4e2d\u6d4b\u8bd5\u3002<\/p>\n<p align=\"left\">\n<p align=\"left\">\u539f\u6587\u5730\u5740\uff1a<a href=\"https:\/\/qtvz.com\/redirect\/aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vZ3VveXVxaWFuZ2Y4L3AvMzUwNjc2OC5odG1s\" target=\"_blank\">https:\/\/www.cnblogs.com\/guoyuqiangf8\/p\/3506768.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"(1)\u3001request.getRealPath(&#8220;\/&#8221;);\/\/\u4e0d\u63a8\u8350\u4f7f\u7528\u83b7\u53d6\u5de5\u7a0b\u7684\u6839\u8def\u5f84 (2)\u3001request.getRealPath(request.getRequestURI());\/\/\u83b7\u53d6js \u00b7\u00b7\u00b7","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[40],"tags":[47],"views":26051,"_links":{"self":[{"href":"https:\/\/qtvz.com\/api\/wp\/v2\/posts\/136"}],"collection":[{"href":"https:\/\/qtvz.com\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qtvz.com\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qtvz.com\/api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qtvz.com\/api\/wp\/v2\/comments?post=136"}],"version-history":[{"count":1,"href":"https:\/\/qtvz.com\/api\/wp\/v2\/posts\/136\/revisions"}],"predecessor-version":[{"id":137,"href":"https:\/\/qtvz.com\/api\/wp\/v2\/posts\/136\/revisions\/137"}],"wp:attachment":[{"href":"https:\/\/qtvz.com\/api\/wp\/v2\/media?parent=136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qtvz.com\/api\/wp\/v2\/categories?post=136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qtvz.com\/api\/wp\/v2\/tags?post=136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}