URL ของตัวระบุทรัพยากรที่เหมือนกัน (Uniform Resource Locator) คือชื่อและที่อยู่ที่ใช้โดยไคลเอนต์ www เพื่อระบุทรัพยากรเมื่อเข้าถึงอินเทอร์เน็ต ลิงก์ไฮเปอร์เท็กซ์ได้รับการดูแลโดย URL ของตัวระบุทรัพยากรที่เหมือนกัน รูปแบบของ URL คือ:
<วิธีการ>://<ชื่อโฮสต์:พอร์ต>/<เส้นทาง>/<ไฟล์>
ในหมู่พวกเขา: วิธีการคือโปรโตคอลการส่ง: HOSTNAME คือชื่อโฮสต์อินเทอร์เน็ตที่มีเอกสารและเซิร์ฟเวอร์อยู่ (ที่อยู่จุดใน DNS ในระบบชื่อโดเมน) PORT คือหมายเลขพอร์ตบริการ (สามารถละเว้นได้) ชื่อพาธ และ FILE คือชื่อไฟล์ ตัวอย่างเช่น:
http://www.weixueyuan.net/(http คือชื่อโปรโตคอล www.weixueyuan.net คือชื่อโฮสต์)
http://www.weixueyuan.net/view/6079.html (www.weixueyuan.net คือชื่อโฮสต์ view/6079.html คือเส้นทางไฟล์และชื่อไฟล์)
คลาส URL
แพ็คเกจ Java.net มีคลาส URL วัตถุ URL สามารถเป็นตัวแทนของทรัพยากรเครือข่าย โปรแกรมสามารถใช้ออบเจ็กต์ URL เพื่อใช้การกำหนดที่อยู่อินเทอร์เน็ต การเชื่อมต่อตำแหน่งของทรัพยากรเครือข่าย การเข้าถึงโดยตรงระหว่างไคลเอนต์และเซิร์ฟเวอร์ ฯลฯ วิธีการสร้างคลาส URL คือ
URL (สตริง)
ในหมู่พวกเขาชี้ไปที่ทรัพยากรในเครือข่าย
วิธีการใช้วัตถุ URL เพื่อเข้าถึงทรัพยากรออนไลน์คือการสร้างวัตถุ URL ก่อน ดังแสดงในรหัสต่อไปนี้:
URL myURL; ลอง { myURL = new URL("http://www.weixueyuan.net:80/");}catch(MalformedURLException e){ System.out.println("URL ผิด:"+url+e ); }
MalformedURLException อาจเกิดขึ้นเนื่องจากการสร้างวัตถุ URL ดังนั้น รหัสที่สร้างวัตถุ URL ควรปรากฏในบล็อกคำสั่ง try...catch เพื่อให้สามารถตรวจจับข้อยกเว้นข้อผิดพลาดของ URL ได้
คลาส URLConnection
ในการรับและส่งข้อมูล ต้องใช้คลาส URLConnection โปรแกรมได้รับออบเจ็กต์ URLConnection ซึ่งเทียบเท่ากับการเชื่อมต่อ HTTP ไปยัง URL ที่ระบุ ต่อไปนี้เป็นรหัสเพื่อรับวัตถุ URLConnection
URL mu = URL ใหม่ ("http://www.sun.com/");//ขั้นแรกให้สร้างวัตถุ URL URLConnection muC = mu.openConnection();//รับวัตถุ URLConnection
โค้ดด้านบนแสดงให้เห็นว่าคุณต้องสร้างออบเจ็กต์ URL ก่อน จากนั้นใช้เมธอด openConnection() ของออบเจ็กต์ URL เพื่อรับออบเจ็กต์ URLConnection จากระบบ เมื่อโปรแกรมมีวัตถุ URLConnection ก็สามารถใช้วิธีการต่อไปนี้ที่คลาส URLConnection จัดเตรียมไว้เพื่อรับวัตถุกระแสข้อมูลและใช้การเชื่อมต่อเครือข่าย:
getOutputStream(): รับออบเจ็กต์สตรีม OutputStream ที่ส่งข้อมูลไปยังโฮสต์ระยะไกล
getInputStream(): รับออบเจ็กต์สตรีม InputStream ที่ได้รับข้อมูลจากโฮสต์ระยะไกล ด้วยสตรีมอินพุตและเอาท์พุตที่เชื่อมต่อกับเครือข่าย โปรแกรมสามารถสื่อสารจากระยะไกลได้
เชื่อมต่อ (): ตั้งค่าการเชื่อมต่อเครือข่าย
การส่งและรับข้อมูล
ในการส่งและรับข้อมูล จะได้รับออบเจ็กต์สตรีม และออบเจ็กต์สตรีมข้อมูลอินพุตหรือเอาต์พุตจะถูกสร้างขึ้นจากออบเจ็กต์สตรีม จากนั้นคุณสามารถใช้วิธีการสตรีมเพื่อเข้าถึงแหล่งข้อมูลออนไลน์ได้
ดูวิธีการ readByURL() ในโปรแกรมตัวอย่างด้านล่าง วิธีการนี้จะแสดงกระบวนการอ่านเนื้อหาเว็บจาก URL ที่รู้จัก วิธีการใช้พารามิเตอร์ URL เพื่อสร้าง URL อ็อบเจ็กต์ URL จากนั้นใช้วิธีการ openConnect() ของ URL อ็อบเจ็กต์เพื่อรับอ็อบเจ็กต์ URLConnection tc ใช้วิธีการเชื่อมต่อ() ของอ็อบเจ็กต์ tc เพื่อสร้างการเชื่อมต่อเครือข่าย จากนั้นรับ วัตถุคลาส InputStreamReader ในการเชื่อมต่อเครือข่าย และวางวัตถุใน แปลงเป็นวัตถุ BufferedRead เปลี่ยนเป็นอินพุตบัฟเฟอร์ สุดท้าย ใช้เมธอด readLine() ของอ็อบเจ็กต์ dis เพื่ออ่านข้อมูลข้อความเครือข่ายให้เสร็จสมบูรณ์
เช่นเดียวกับโฟลว์ข้อมูลภายใน โฟลว์ข้อมูลควรปิดทันเวลาหลังจากการใช้ทรัพยากรออนไลน์เสร็จสิ้น ตัวอย่างเช่นรหัส
เปิดเผย();
ปิดกระแสข้อมูลที่สร้างโดยโค้ดก่อนหน้า
[ตัวอย่าง] แอปพลิเคชันที่อ่านเนื้อหาเว็บโดยใช้วิธีสตรีมข้อมูล เมื่อโปรแกรมทำงาน URL จะถูกอ่านจากกล่องข้อความ
นำเข้า java.net.*;นำเข้า java.awt.*;นำเข้า java.awt.event.*;นำเข้า java.io.*;นำเข้า java.javax.swing.*;คลาสสาธารณะ Example10_2{ public static void main(Args สตริง []){ new downNetFile(); }}คลาส DownNetFile ขยาย JFrame ใช้งาน ActionListener{ JTextFileld infield = new JTextField(30); JTextarea showArea = ใหม่ JTextArea(); JButton b = ใหม่ JButton("ดาวน์โหลด"); JPanel p = ใหม่ JPanel(){ super("อ่านแอปพลิเคชันไฟล์ข้อความเครือข่าย"); this.getContentPane(); p.add(infield);p.add(b); JScrollPane jsp = ใหม่ JScrollPane(showArea); b.addActionListener(นี่); con.add(p,"North");con.add(jsp,"Center"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ; } การกระทำที่เป็นโมฆะสาธารณะดำเนินการ (ActionEvent e) { readByURL(infield.getText()); } โมฆะสาธารณะ readByURL(String urlName){ ลอง{ URL url = URL ใหม่(urlName);//สร้างวัตถุ URL จาก URL URLConnection tc = url.openConnectin();//Get วัตถุ URLConnection tc.connect();//ตั้งค่าการเชื่อมต่อเครือข่าย InptStreamReader ใน = new InputStreamReader(tc.getInputStream()); BufferedReader dis = new BufferedReader(in);//ใช้บัฟเฟอร์อินพุต String inline; while((inline = dis.readLine())!=null){ showArea.append(inline +”/n”); dis.close ( );//หลังจากการใช้ทรัพยากรออนไลน์เสร็จสิ้น สตรีมข้อมูลจะถูกปิดทันเวลา}catch(MalformedURLException e){ e.printStackTrace(); } catch(IOException e){e.printStacktrace();} /*การเข้าถึงทรัพยากรออนไลน์อาจทำให้เกิด MalformedURLException และ IOException*/ }}