عنوان URL لمحدد موقع الموارد الموحد (محدد موقع الموارد الموحد) هو الاسم والعنوان الذي يستخدمه عملاء www لتحديد الموارد عند الوصول إلى الإنترنت. يتم الحفاظ على روابط النص التشعبي بواسطة عناوين URL موحدة لمحدد موقع الموارد. تنسيق عنوان URL هو:
<METHOD>://<HOSTNAME:PORT>/<PATH>/<FILE>
من بينها: الطريقة هي بروتوكول النقل: 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 (سلسلة)
من بينها، يشير s إلى مورد في الشبكة.
تتمثل طريقة استخدام كائنات URL للوصول إلى الموارد عبر الإنترنت في إنشاء كائن URL أولاً، كما هو موضح في التعليمة البرمجية التالية:
URL myURL; حاول { myURL = new URL("http://www.weixueyuan.net:80/");}catch(MalformedURLException e){ System.out.println("عنوان URL خاطئ:"+url+e ); }
قد يحدث MalformedURLException بسبب إنشاء كائن URL. لذلك، يجب أن يظهر التعليمة البرمجية التي تنشئ كائن URL في كتلة عبارة حاول...التقاط بحيث يمكن اكتشاف استثناءات خطأ URL.
فئة اتصال URL
لتلقي المعلومات وإرسالها، يجب استخدام فئة URLConnection. يحصل البرنامج على كائن URLConnection، وهو ما يعادل إكمال اتصال HTTP بعنوان URL المحدد. ما يلي هو التعليمات البرمجية للحصول على كائن URLConnection.
URL mu = new 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() للكائن لاستكمال قراءة البيانات النصية للشبكة.
تمامًا مثل تدفق البيانات المحلية، يجب إغلاق تدفق البيانات في الوقت المناسب بعد اكتمال استخدام الموارد عبر الإنترنت. على سبيل المثال، الكود
إغلاق();
أغلق الدفق الذي تم إنشاؤه بواسطة الكود السابق.
[مثال] تطبيق يقرأ محتوى الويب باستخدام طريقة دفق البيانات. عند تشغيل البرنامج، تتم قراءة عنوان URL من مربع النص.
import java.net.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.javax.swing.*;public class example10_2{ public static void main(String args []){ new downNetFile(); }}class DownNetFile ممتد JFrame Implements ActionListener{ JTextFileld infield = new JTextField(30); JTextarea showArea = new JTextArea(); JButton b = new JButton("download"); JPanel p = new JPanel(){ super("قراءة تطبيق الملفات النصية للشبكة"); this.getContentPane(); p.add(infield);p.add(b); JScrollPane(showArea); b.addActionListener(this); con.add(p,"North");con.add(jsp,"Center"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e){ readByURL(infield.getText()); } public void readByURL(String urlName){try{ URL url = new URL(urlName);// أنشئ كائن URL من عنوان URL URLConnection tc = url.openConnectin();//احصل على كائن URLConnection tc.connect();// قم بتعيين اتصال الشبكة InptStreamReader in = new InputStreamReader(tc.getInputStream()); BufferedReader dis = new BufferedReader(in);// استخدم سلسلة الإدخال المخزنة مؤقتًا while((inline = dis.readLine())!=null){ showArea.append(inline +”/n” } dis. Close ( );// بعد اكتمال استخدام الموارد عبر الإنترنت، يتم إغلاق دفق البيانات في الوقت المناسب}catch(MalformedURLException e){ e.printStackTrace() } Catch(IOException e){e.printStacktrace();} /*الوصول إلى الموارد عبر الإنترنت قد يؤدي إلى إنشاء MalformedURLException وIOException*/ }}