URL in Java: URL Internet पर उपलब्ध किसी Resource का एक Reference या Address होता है। जब हम हमारे Web Browser में किसी Web Resource को प्राप्त करने के लिए उस Web Resource का Address (Web Address OR URL ) Input करते हैं, तब हम उस Web Resource तक पहुंच जाते हैं, जिसे हम अपने Web Browser में Use करना चाहते हैं।
ठीक इसी तरह से यदि हम कोई ऐसा Program Develop करते हैं, जो Web पर उपलब्ध Resources को Use करता है, तो हम Web के Resource को Find करने के लिए अपने Program में भी उसके Web Address यानी URL को Use कर सकते हैं।
जावा में URL नाम की एक Class होती है, जो कि java.net नाम के Package में उपलब्ध होती है। इस Class का प्रयोग करके हम हमारे Web Based Application में किसी भी Web Resource के URL Address को Represent कर सकते हैं।
वास्तव में URL एक ऐसी Class है, जिसके Object में हम किसी भी Web पर स्थित किसी Resource का या फिर हमारे Local Computer में स्थित किसी Resource का Absolute या Relative Address Specify करके उस Resource को अपने Program में Use कर सकते हैं।
URL in Java: What Is a URL
URL एक Internet या हमारे Local Computer में उपलब्ध किसी Resource के Address का एक String Representation होता है। URL के दो मुख्य हिस्से होते हैं:
- वह Protocol, जिसका प्रयोग करके किसी Resource को Access किया जाना सम्भव हो पाता है। और
- Resource की Location का Address
URL के दोनों हिस्सों को हम निम्नानुसार Describe कर सकते हैं:
इस Description में http वह Protocol है, जिसका प्रयोग करके एक Server //java.sun.com नाम के Internet पर उपस्थित Resource को एक Client Computer पर Send करता है। इस उदाहरण में http (Hyper Text Transfer Protocol) को Use किया गया है, जो कि Client Computer पर Web Documents जो कि Hyper Text Documents होते हैं, को Send करने का काम करता है। http एक ऐसा Protocol है, जो Net पर उपलब्ध विभिन्न प्रकार के Resources को Transfer करने में सक्षम होता है।
हम देख सकते हैं कि Resource Name में Resource का Complete Address Specify किया गया है। Resource का नाम Specify करने का Format मूल रूप से Use किए जा रहे Protocol पर निर्भर करता है, लेकिन http के साथ ही कई अन्य Protocols में Resource के नाम में निम्नानुसार कई और Components उपलब्ध होते हैं:
Host Name | उस Server Computer का नाम जिस पर Resource Stored है। |
File Name | Server Computer पर स्थित File का पूरा Path Name |
Port Number | वह Port Number जिससे Client को Connect होना होता है। (Optional) |
Reference | Resource में उपलब्ध किसी Specific Location का Identifier (Optional) |
कई Protocols को किसी Resource को Access करने के लिए Host Name व File Name की जरूरत होती है, जबकि इन Protocols को Use करते समय हमें Port Number व Reference Field को Specify करना जरूरी नहीं होता है।
उदाहरण के लिए जब हम HTTP Protocol का प्रयोग करके किसी Resource को प्राप्त करना चाहते हैं, तब हमें Network पर स्थित Server (Host Name) व Server पर उपस्थित Resource (Document) का Path (File Name) ही Specify करना होता है।
हालांकि हम इसके साथ Port Number व Reference को भी Specify कर सकते हैं। जब हम किसी Web Site का URL लिखते समय उसके साथ किसी Document के नाम का प्रयोग नहीं करते हैं, तब सामान्यतया उस Web Site के Index.htm नाम का Document ही Client को प्राप्त होता है, जो कि सामान्यतया विभिन्न प्रकार की Web Sites के लिए Default Web Document के समान होता है। यदि हम किसी Specific Document को प्राप्त करना चाहें, तो उपरोक्त URL को निम्नानुसार भी Use कर सकते हैं:
http://java.sun.com/index.html
URL in Java: Creating and Manipulating URL
जब हम हमारे किसी Application में URL को Use करना चाहते हैं, तब हमें उस URL को Access करने के लिए URL Class का एक Object Create करना होता है और इस Class के Constructor को Use करके Specific URL Address को एक String Argument के रूप में Constructor में Pass करना होता है। उदाहरण के लिए मानलो कि हमें निम्न Web Address को एक URL Object में Store करना हो%
https://www.bccfalna.com/
तो इसे URL Object में Store करने के लिए हमें निम्नानुसार Statement लिखना होता है:
URL bccfalna = new URL (“https://www.bccfalna.com/“);
इस Statement द्वारा जो URL Object Create किया गया है, वह URL एक Absolute URL है। एक Absolute URL में किसी Resource तक पहुंचने से सम्बंधित सभी जरूरी Fields होते हैं। यदि हम चाहें तो एक ऐसा URL Object भी Create कर सकते हैं, जो कि किसी दूसरे URL से Relative URL Address होता है।
Relative URL Object में केवल इतनी ही जानकारी होती है, जितनी Current URL से आगे के किसी अन्य Resource तक पहुंचने के लिए जरूरी होती हैं। Relative URL Specifications को सामान्यतया HTML Files में Use किया जाता है।
उदाहरण के लिए मानलो कि हम HelloHomePage.html नाम का एक HTML Page बनाते हैं, जिससे दो MyMusic.html व MyPicture.html नाम के दो अन्य Web Pages Linked हैं और ये दोनों Linked Web Pages उसी Computer के उसी Folder में Stored हैं, जिसमें HelloHomePage.html Web Page Stored हैं। इस स्थिति में HelloHomePage.html Web Page में इन दोनों अन्य Web Pages को Link करने के लिए हमें केवल निम्नानुसार Statement ही लिखना होता है:
<a href = “MyMusic.html”>My Music </a>
<a href = “MyPictures.html”> My Picture </a>
ये URL Relative URL हैं, जिनमें URL की पूरी Location को Specify नहीं किया गया है, बल्कि केवल उस Current Folder के Reference में Specify किया गया है, जिसमें HelloHomePage.html Stored है।
हम हमारे जावा Program में एक ऐसा URL Object भी Create कर सकते हैं, जो कि किसी दूसरे URL Specification से Relative होता है। उदाहरण के लिए मानलो कि हम Results की एक Web Site के दो राज्यों के Web Pages का Address जानते हैं, जो कि निम्नानुसार हैं:
https://www.bccfalna.com/maharastra_results.html
https://www.bccfalna.com/rajasthan_results.html
हम इन दोनों Pages के लिए निम्नानुसार एक Relative URL Object Create कर सकते हैं:
URL results = new URL(“https://www.bccfalna.com/”);
URL raj_result = new URL(results, “maharastra_results.html”);
URL mah_result = new URL(results, “rajasthan_results.html”)
ये Code Segment एक ऐसे URL Constructor को Use कर रहा है, जो हमें एक Base URL Address से Relative URL Object को Create करनी की सुविधा प्रदान कर रहा है। ये Constructor निम्नानुसार होता है:
URL(URL baseURL, String relativeURL)
इस Constructor का पहला Argument Create होने वाले नए URL का Base Specify करता है, जबकि दूसरा Argument एक String Format में उस Resource को Specify करता है, जो कि Base URL से Relative है। यदि baseURL null हो, तो ये Constructor relativeURL को एक Absolute URL की तरह Use करता है। इसी तरह से यदि relativeURL में Absolute URL हो, तो ये Constructor baseURL को Ignore कर देता है।
ये Constructor किसी File में स्थित एक Named Anchor को Refer करने वाला URL Object Create करने में भी उपयोगी होता है, जिसे Reference कहते हैं। उदाहरण के लिए मानलो कि HelloHomePage.html File में BOTTOM नाम का एक Named Anchor है और हम Directly Anchor को Refer करने वाला URL Object Create करना चाहते हैं। इस स्थिति में हम Relative URL Constructor को निम्नानुसार Use कर सकते हैं:
URL r = new URL(HelloNetwork, “BOTTOM”);
इन Constructors के अलावा URL Objects Create करने के लिए URL Class में दो और Constructors होते हैं। ये Constructors उस स्थिति में उपयोगी होते हैं, जब हम HTTP जैसे किसी ऐसे URL के साथ कोई प्रक्रिया कर रहे होते हैं, जिसमें Host Name, File Name, Prot Number व References Components होते हैं। ये दो Constructors तब उपयोगी होते हैं, जब हमारे पास किसी Incomplete URL का String Representation होता है, जिसमें सभी Components नहीं होते हैं और हमें इस URL के सभी Components की जरूरत होती है।
उदाहरण के लिए मानलो कि हम एक Network Browsing Panel बनाना चाहते हैं, जो User को Protocol, Host Name, Port Number व File Name Select करने की सुविधा देता है। Panel में Select किए गए Components के आधार पर यदि हम URL Create करना चाहें, तो इस स्थिति में हमें निम्नानुसार Constructor को Use करना होता है:
new URL(“http”, “www.bccfalna.com”, “/homepage.html”);
इसी URL का Equivalent URL निम्नानुसार Create किया जा सकता है:
new URL(“https://www.bccfalna.com/homepage.html”);
इस URL में पहला Argument Protocol को] दूसरा Argument Host Name को व तीसरा Argument File के Path Name को Specify कर रहा है। URL का जो अन्तिम Constructor होता है, उसमें हम इस Protocol की Argument List में Port Number को भी Specify कर सकते हैं। यदि हम इसी URL को Port Number के साथ Use करना चाहें, तो इसलिए लिए निम्नानुसार URL Object Create कर सकते हैं:
new URL(“http”, “www.bccfalna.com”, 80, “/homepage.html”);
या इसका Equivalent URL निम्नानुसार Create किया जा सकता है:
new URL(“https://www.bccfalna.com:80/homepage.html”);
यदि हम इनमें से किसी Constructor को Use करके कोई URL Create करते हैं, तो हम उस URL को एक String Representation के रूप में प्राप्त करने के लिए हमें URL Object के लिए toString() या toExternalForm() Method को Use करना होता है।
URL Create करने के लिए जितने भी Constructors को हमने Discuss किया है, वे सभी URLs एक MalformedURLException नाम का Exception Throw कर सकते हैं। ये Exception तब Throw होता है, जब Constructor किसी NULL URL को या Unknown Protocol को Refer करता है। इस Exception को Catch व Handle करने के लिए URL Create करते समय हमें try . . . catch Block का प्रयोग करना होता है, जो कि हम निम्नानुसार कर सकते हैं:
try { URL myURL = new URL(. . .) } catch (MalformedURLException e){ . . . // exception handler code here . . . }
URL Objects ऐसे Objects होते हैं, जिन्हें एक बार Create कर देने के बाद इसके किसी Attribute (Protocol, Host Name, File Name, Prot Number) को Change नहीं किया जा सकता है। यानी जब हम एक URL Create करके Use कर लेते हैं, तो उसी URL में नया Web Address Specify करके उसे फिर से Reuse नहीं कर सकते हैं, बल्कि दूसरे Web Address को Store करने के लिए हमें एक और नया URL Object Create करना जरूरी होता है।
URL Class हमें कई ऐसे Methods Provide करता है, जिनका प्रयोग करके हम किसी URL Object के किसी भी Part (Protocol, Host Name, File Name, Prot Number) को Extract कर सकते हैं। इसके लिए हम निम्नानुसार Methods को Use कर सकते हैं:
getProtocol()
ये Method URL Objects में से Protocol Identifier को Return करता है।
getHost()
ये Method URL Objects में से Host Name Component को Return करता है।
getPort()
ये Method URL Objects में से Port Number Component को Return करता है। ये Method एक Integer Number Return करता है, जो कि Port को Specify करता है। यदि Port को Set ना किया गया हो, तो ये Method -1 Return करता है।
getFile()
ये Method URL Objects में से File Name Component को Return करता है।
getRef()
ये Method URL Objects में से Reference Component को Return करता है।
एक बात हमेंशा ध्यान रखें कि सभी प्रकार के URL Addresses में ये सभी Components नहीं होते हैं। URL Class में इन Methods को इसलिए Provide किया गया है, क्योंकि HTTP URL में ये सभी Components होते हैं और ये सबसे ज्यादा Use किया जाने वाला URL होता है। URL Class को कुछ हद तक HTTP Protocol को ध्यान में रखकर ही Develop किया गया है। इन विभिन्न प्रकार के URL Components को अलग करने की प्रक्रिया को हम निम्न Program द्वारा समझ सकते हैं:
// Program import java.net.*; import java.io.*; public class ParseURL { public static void main(String[] args) throws Exception { URL aURL = new URL("http://java.sun.com:80/docs/books/tutorial/intro.html#DOWNLOADING"); System.out.println("protocol = " + aURL.getProtocol()); System.out.println("host = " + aURL.getHost()); System.out.println("filename = " + aURL.getFile()); System.out.println("port = " + aURL.getPort()); System.out.println("ref = " + aURL.getRef()); } } // Output protocol = http host = java.sun.com filename = /docs/books/tutorial/intro.html port = 80 ref = DOWNLOADING
एक URL Object Create कर लेने के बाद हम URL के openStream() Method को Call करके हम URL में Specify किए गए Web Document के Contents को एक Stream के रूप में प्राप्त कर सकते हैं। ये Method एक java.io.InputStream Class का एक Object Return करता है, इसलिए URL में Specify किए गए Web Document के Content को Read करना उतना ही सरल होता है, जितना किसी Input Stream को Read करना होता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Java Programming Language in Hindi | Page: 682 | Format: PDF