(1), request.getRealPath ("/"); // ไม่แนะนำให้ใช้เส้นทางรูทของโครงการเพื่อรับโครงการ
(2), request.getRealPath (request.getRequesturi ()); // รับเส้นทางไปยัง JSP วิธีนี้ใช้งานง่ายกว่าและสามารถใช้โดยตรงใน Servlets และ JSP
(3), request.getSession (). getServletContext (). getRealPath ("/"); // รับเส้นทางรูทของโครงการ วิธีนี้ใช้งานง่ายกว่าและสามารถใช้โดยตรงใน servlet และ jsp
(4), this.getClass (). getClassLoader (). getResource (""). getPath (); // รับเส้นทางภายใต้คลาสโครงการ วิธีนี้สามารถใช้ในไฟล์ jsp, servlet และ java ใด ๆ เพราะไม่ว่าจะเป็น JSP, servlet เป็นโปรแกรม Java จริง ๆ และเป็นคลาสทั้งหมด ดังนั้นควรเป็นวิธีการทั่วไป
0. เกี่ยวกับเส้นทางสัมบูรณ์และแบบสัมพัทธ์
1. การทำความเข้าใจแนวคิดพื้นฐานเส้นทางที่แน่นอน: เส้นทางที่แน่นอนคือเส้นทางที่แท้จริงของไฟล์หรือไดเรกทอรีบนหน้าแรกของคุณบนฮาร์ดดิสก์ (URL และเส้นทางกายภาพ) ตัวอย่างเช่น: C: XYZ EST.TXT แสดงถึงเส้นทางที่แน่นอนของไฟล์ test.txt http://www.sun.com/index.htm ยังแสดงถึงเส้นทาง URL ที่แน่นอน เส้นทางสัมพัทธ์: เส้นทางที่สัมพันธ์กับไดเรกทอรีมาตรฐานที่แน่นอน มีเส้นทางสัมพัทธ์ของเว็บ (ไดเรกทอรีสัมพัทธ์ใน HTML) ตัวอย่างเช่น: ใน servlet, "/" หมายถึงไดเรกทอรีของเว็บแอปพลิเคชัน และการเป็นตัวแทนสัมพัทธ์ของเส้นทางทางกายภาพ ตัวอย่างเช่น: "./" หมายถึงไดเรกทอรีปัจจุบัน "../" หมายถึงไดเรกทอรีก่อนหน้า การเป็นตัวแทนที่คล้ายกันนี้ยังเป็นเส้นทางที่สัมพันธ์กัน นอกจากนี้สำหรับ URI, URL, URN ฯลฯ โปรดดูมาตรฐานเอกสารที่เกี่ยวข้องกับ RFC RFC 2396: ตัวระบุทรัพยากรเครื่องแบบ (URI): ไวยากรณ์ทั่วไป, (http://www.ietf.org/rfc/rfc2396.txt) 2 เกี่ยวกับเส้นทางที่สัมพันธ์และสัมบูรณ์ใน JSP/Servlets 2.1 ที่อยู่ฝั่งเซิร์ฟเวอร์ที่อยู่สัมพัทธ์ของฝั่งเซิร์ฟเวอร์หมายถึงที่อยู่ของเว็บแอปพลิเคชันของคุณ ที่อยู่นี้ถูกแยกวิเคราะห์ทางฝั่งเซิร์ฟเวอร์ (ไม่เหมือนกับที่อยู่สัมพัทธ์ใน HTML และ JavaScript พวกเขาจะถูกแยกวิเคราะห์โดยเบราว์เซอร์ไคลเอนต์)
1. คำขอ. getRealPath
วิธี: request.getRealPath ("/")
เส้นทางที่ได้รับ: C:/โปรแกรมไฟล์/Apache ซอฟต์แวร์ Foundation/Tomcat 5.5/WebApps/Strutstest/
วิธี: request.getRealPath (".")
เส้นทางที่ได้รับ: C:/โปรแกรมโปรแกรม/Apache ซอฟต์แวร์ Foundation/TOMCAT 5.5/WebApps/Strutstest/
วิธีการ: request.getRealPath ("")
พา ธ ที่ได้รับ: C:/ไฟล์โปรแกรม/Apache ซอฟต์แวร์ Foundation/Tomcat 5.5/webapps/strutstest
request.getRealPath ("web.xml")
C:/ไฟล์โปรแกรม/Apache ซอฟต์แวร์ Foundation/Tomcat 5.5/webapps/strutstest/web.xml
2. คำขอ. getParameter ("");
actionform.getMyFile ();
วิธี: String filePath = request.getParameter ("myFile");
เส้นทางที่ได้รับ: d:/vss ไดเรกทอรีการติดตั้ง/users.txt
วิธีการ: String filePath = actionForm.getMyFile ();
เส้นทางที่ได้รับ: d:/vss ไดเรกทอรีการติดตั้ง/users.txt
-
Strutstest เป็นชื่อโครงการ
myfile ใน actionform, สตริงส่วนตัว myfile;
ในหน้า jsp: <html: file property = "myfile"> </html: ไฟล์>
-
3. รับเส้นทางระบบ
ในแอปพลิเคชัน:
System.getProperty ("user.dir")
ใน servlet:
servletContext servletContext = config.getServletContext ();
String rootPath = servletContext.getRealPath ("/");
ใน JSP:
Application.getRealPath ("")
4. อื่น ๆ 1
1. สามารถอยู่ในวิธีการเริ่มต้นของ servlet
String path = getServletContext (). getRealPath ("/");
สิ่งนี้จะได้รับเส้นทางเต็มรูปแบบไปยังโครงการเว็บ
ตัวอย่างเช่น://eclipsem9/workspace/tree/
Tree เป็นไดเรกทอรีรากของโครงการเว็บของฉัน
2. คุณสามารถเรียกได้ในชั้นเรียนใด ๆ ได้ตลอดเวลา
this.getClass (). getClassLoader (). getResource (""). getPath (); // หลังการทดสอบวิธีนี้ปลอดภัยและมีประสิทธิภาพมากที่สุด
this.getClass (). getResource ("/conf"). getPath (); // หลังจากการทดสอบวิธีนี้ยังปลอดภัย
สิ่งนี้จะได้รับเส้นทางเต็มไปยังไดเรกทอรีคลาส
ตัวอย่างเช่น:/d:/workspace/strutstest/webroot/web-inf/classes/
นอกจากนี้ยังมี this.getClass (). getResource (""). getPath (). toString ();
สิ่งนี้จะได้รับ/d:/workspace/strutstest/webroot/web-inf/classes/bl/
วิธีนี้ยังสามารถใช้งานได้โดยไม่ต้องพิจารณาเส้นทางในสภาพแวดล้อมเว็บ
3.Request.getContextPath ();
รับสภาพแวดล้อมบริบทของเว็บรูท
ชอบ /ต้นไม้
Tree เป็นบริบทรูทของโครงการเว็บของฉัน
5. อื่น ๆ 2
หลายวิธีในการรับเส้นทางใน Java - -
1. JDK กำหนดเส้นทางในโปรแกรมอย่างไร โดยทั่วไปในการเขียนโปรแกรมเส้นทางไฟล์จะถูกแบ่งออกเป็นเส้นทางสัมพัทธ์และเส้นทางที่สมบูรณ์ เส้นทางที่แน่นอนนั้นง่ายต่อการจัดการ แต่ก็ไม่ยืดหยุ่น ดังนั้นเมื่อเราใช้ไฟล์ในการเขียนโปรแกรมเรามักจะอ่านเส้นทางสัมพัทธ์ของไฟล์
เส้นทางสัมพัทธ์อาจซับซ้อนกว่าเล็กน้อย แต่ก็ค่อนข้างง่าย เส้นทางสัมพัทธ์ส่วนใหญ่สัมพันธ์กับผู้ที่สามารถเป็นเส้นทางของตัวโหลดคลาสหรือเส้นทางภายใต้ไฟล์ Java ปัจจุบัน ในการเขียนโปรแกรม JSP อาจเป็นเส้นทางของเว็บไซต์ เมื่อเปรียบเทียบกับเส้นทางของเว็บไซต์เราสามารถใช้ GetServletContext () GetRealPath ("/") และ request.getRealPath ("/"): นี่คือเส้นทางที่แน่นอนเพื่อรับไซต์ และ getContextPath (): รับเส้นทางเสมือนของเว็บไซต์;
2. class.getClassLoader.getPath (): รับพา ธ ไปยังคลาสโหลดเดอร์: ตัวโหลดคลาสคืออะไร? โดยทั่วไปแล้วตัวโหลดคลาสจะถูกกำหนดโดยระบบและผู้ใช้เอง Classloader ของระบบจัดทำโดย JDK และเส้นทางของมันคือเส้นทางภายใต้ JDK หรือในการเขียนโปรแกรม JSP เช่น Tomcat ที่ตั้งของตัวโหลดคลาสที่ได้รับคือเส้นทางของตัวโหลดที่ออกแบบโดย Tomaca
หลังจากทำความเข้าใจสิ่งเหล่านี้การดำเนินการของเส้นทางไฟล์จะค่อนข้างชัดเจน เมื่อเรากำลังเขียนโปรแกรมเราเพียงแค่ต้องทราบว่าเส้นทางที่เราใช้งานจะเกี่ยวข้องกับเส้นทางใดและได้รับเส้นทางสัมพัทธ์
6. สรุป
1. รับพา ธ ไฟล์ภายใต้เว็บเซิร์ฟเวอร์
request.getRealPath ("/")
Application.getRealPath ("") 【 JSP 】
ServletContext (). getRealPath ("")
System.getProperty ("user.dir") [เรียกว่าในสถานที่ต่าง ๆ เส้นทางที่ได้รับจะเปลี่ยนแบบไดนามิก]
2. รับเส้นทางท้องถิ่น
ใน jsp, <html: file property = "myfile"/>
request.getParameter ("myfile");
actionform.getMyFile ();
ค่าที่ได้รับเหมือนกัน: เช่น D:/VSS Directory/users.txt
-
this.getClass (). getClassLoader (). getResource (""). getPath ();
==/d:/workspace/strutstest/webroot/web-inf/classes/
this.getClass (). getResource (""). getPath (). toString ();
==/d:/workspace/strutstest/webroot/web-inf/classes/bl/
3. รับเส้นทางสัมพัทธ์
request.getContextPath ();
นอกจากนี้:
GetResource หรือ GetResourceaseStream มีอยู่ในไฟล์ Java
ตัวอย่าง: getClass (). getResourceasstream (filePath); // filePath สามารถเป็น "/ชื่อไฟล์" ที่นี่/แสดงเส้นทางเริ่มต้นของ Web-inf/คลาสภายใต้เส้นทางการเผยแพร่เว็บเส้นทางการเผยแพร่: web-inf/คลาส มันได้รับการทดสอบใน Tomcat
วิธีการต่าง ๆ ข้างต้น (สรุป) ของ Java ที่ได้รับเส้นทางเป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น