English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمية Java الأساسية

Java التحكم في العملية

Java مصفوفة

Java موجه بالأشياء (I)

Java موجه بالأشياء (II)

Java موجه بالأشياء (III)

معالجة الاستثناء Java

Java قائمة (List)

Java Queue (الطابور)

Java Map مجموعة

Java Set مجموعة

Java مدخل/مخرج (I/O)

Java Reader/Writer

موضوعات أخرى لـ Java

معالجة Java لـ URL

URL (Uniform Resource Locator) يُدعى أيضًا اسمًا شائعًا هو مكان الموارد الموحدة، ويُمثل موارد الإنترنت مثل صفحات الويب أو عناوين FTP.

في هذا الفصل سنقدم كيفية معالجة Java لـ URL. يمكن تقسيم URL إلى عدة أجزاء.

protocol://host:port/path?query#fragment

protocol(بروتوكول) يمكن أن يكون HTTP، HTTPS، FTP و File، وport هو رقم الميناء، وpath هو مسار الملف واسم الملف.

مثال على URL لبروتوكول HTTP:

http://ar.oldtoolbag.com/index.html?language=cn#j2se

تحليل URL:

  • البروتوكول (protocol):http

  • المضيف (host:port):ar.oldtoolbag.com

  • رقم الميناء (port): 80، لم يتم تحديد رقم الميناء في مثال URL هذا لأن رقم الميناء الافتراضي للبروتوكول HTTP هو 80.

  • مسار الملف (path):/index.html

  • معامل الطلب (query):language=cn

  • تحديد الموقع (fragment):j2se، تحديد موقع عنصر HTML الذي يحتوي على خاصية id هي j2se.

طريقة كلاس URL

تم تعريف كلاس URL في حزمة java.net، ويستخدم هذا الكلاس لمعالجة محتويات URL. سنتحدث أدناه عن إنشاء وتشغيل URL.

java.net.URL يقدم طرق بناء URL غنية، ويمكن الحصول على الموارد من خلال java.net.URL.

الرقموصف الطريقة
1public URL(String protocol, String host, int port, String file) throws MalformedURLException.
باستخدام المعلمات المقدمة (بروتوكول، اسم المضيف، رقم الميناء، اسم الملف) إنشاء URL.
2public URL(String protocol, String host, String file) throws MalformedURLException
باستخدام البروتوكول المحدد، اسم المضيف، اسم الملف إنشاء URL، استخدام رقم الميناء الافتراضي للبروتوكول.
3public URL(String url) throws MalformedURLException
باستخدام 字符串 URL المقدمة إنشاء URL
4public URL(URL context, String url) throws MalformedURLException
استخدام عنوان الأساس وURL المعياري

يحتوي كلاس URL على العديد من الطرق لاستكشاف أجزاء URL المختلفة، وطرقها المحددة ووصفها كالتالي:

الرقموصف الطريقة
1public String getPath()
ترجيع جزء المسار URL.
2public String getQuery()
ترجيع جزء البحث URL.
3public String getAuthority()
الحصول على جزء السلطة هذا URL.
4public int getPort()
ترجيع جزء منفذ URL
5public int getDefaultPort()
ترجيع端ر بروتوكول الافتراضي.
6public String getProtocol()
ترجيع بروتوكول URL
7public String getHost()
ترجيع اسم الخادم URL
8public String getFile()
ترجيع جزء اسم الملف URL
9public String getRef()
الحصول على جزء الحلزون هذا URL (يُطلق عليه أيضًا "الإشارة").
10public URLConnection openConnection() throws IOException
فتح اتصال URL، وأنشئ عميل للوصول إلى الموارد.

在线示例

عينات أعطيت أعلاه توضح كيفية استخدام كلاس URL في java.net للحصول على أجزاء URL المختلفة:

import java.net.*;
import java.io.*;
 
public class URLDemo
{
   public static void main(String [] args)
   {
      try
      {
         URL url = new URL("http://ar.oldtoolbag.com/index.html?language=cn#j2se");
         System.out.println("URL هو: " + url.toString());
         System.out.println("البروتوكول هو: " + url.getProtocol());
         System.out.println("معلومات التحقق: " + url.getAuthority());
         System.out.println("اسم الملف ومعلومات الطلب: " + url.getFile());
         System.out.println("اسم الخادم: " + url.getHost());
         System.out.println("الطريق: " + url.getPath());
         System.out.println("المنفذ: " + url.getPort());
         System.out.println("المنفذ الافتراضي: " + url.getDefaultPort());
         System.out.println("الإعداد المطلوب: " + url.getQuery());
         System.out.println("الموقع: " + url.getRef());
      catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

نتيجة التجميع والتنفيذ للنموذج أعلاه كالتالي:

URL: http://ar.oldtoolbag.com/index.html?language=cn#j2se
البروتوكول: http
المعلومات الم��ة: ar.oldtoolbag.com
اسم الملف والإعداد المطلوب: /index.html?language=cn
اسم المضيف: ar.oldtoolbag.com
المسار: /index.html
المنفذ: -1
المنفذ الافتراضي: 80
الإعداد المطلوب: language=cn
الموقع: j2se

طرق فئة URLConnection

يرجع openConnection() إلى java.net.URLConnection.

على سبيل المثال:

  • إذا كان URL متوافقًا مع بروتوكول HTTP، فإن طريقة openConnection() سترجع جسم HttpURLConnection.

  • إذا كان URL المتصل به ملف JAR، فإن طريقة openConnection() سترجع جسم JarURLConnection.

  • وشيء من هذا القبيل...

قائمة طرقURLConnection كالتالي:

الرقموصف الطريقة
1Object getContent()
البحث عن محتوى رابط URL
2Object getContent(Class[] classes)
البحث عن محتوى رابط URL
3String getContentEncoding()
الرجوع إلى قيمة حقل content-encoding في الرأس.
4int getContentLength()
الرجوع إلى قيمة حقل content-length في الرأس.
5String getContentType()
الرجوع إلى قيمة حقل content-type في الرأس.
6int getLastModified()
الرجوع إلى قيمة حقل last-modified في الرأس.
7long getExpiration()
返回头部 expires 字段值。
8long getIfModifiedSince()
返回对象的 ifModifiedSince 字段值。
9public void setDoInput(boolean input)
URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。
10public void setDoOutput(boolean output)
URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 false。
11public InputStream getInputStream() throws IOException
返回URL的输入流,用于读取资源
12public OutputStream getOutputStream() throws IOException
返回URL的输出流, 用于写入资源。
13public URL getURL()
返回 URLConnection 对象连接的URL

在线示例

以下示例中URL采用了HTTP 协议。openConnection 返回HttpURLConnection对象。

URLConnDemo.java

import java.net.*;
import java.io.*;
public class URLConnDemo
{
   public static void main(String [] args)
   {
      try
      {
         URL url = new URL("http://ar.oldtoolbag.com");
         URLConnection urlConnection = url.openConnection();
         HttpURLConnection connection = null;
         if(urlConnection instanceof HttpURLConnection)
         {
            connection = (HttpURLConnection) urlConnection;
         }
         else
         {
            System.out.println("الرجاء إدخال عنوان URL");
            return;
         }
         BufferedReader in = new BufferedReader(
         new InputStreamReader(connection.getInputStream()));
         String urlString = "";
         String current;
         while((current = in.readLine()) != null)
         {
            urlString += current;
         }
         System.out.println(urlString);
      catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

نتائج التجميع والتنفيذ للمثال أعلاه كالتالي:

$ javac URLConnDemo.java 
$ java URLConnDemo
.....سيتم عرض محتوى صفحة بداية موقع الويب الأساسي (http://ar.oldtoolbag.com)......