ÀÌ Àå°ú ÀÌÈÄ Àåµé¿¡¼´Â java.net ÆÐŰÁö¿¡ ÀÖ´Â URLŬ·¡½º¸¦ Æ÷ÇÔÇÑ °ÅÀÇ ºñ½ÁÇÑ ±â´ÉÀ» °¡Áø Ŭ·¡½ºµé¿¡ ´ëÇØ¼ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ´ÙÀ½°ú °°Àº Ŭ·¡½ºµéÀÌ ´ëÇ¥ÀûÀÎ URL°ü·Ã Ŭ·¡½ºµéÀÔ´Ï´Ù.
n URLŬ·¡½º
n URLConnectionŬ·¡½º
n URLEncoderŬ·¡½º
n URLDecoderŬ·¡½º
n URLClassLoaderŬ·¡½º
ÀÌ Àå¿¡¼´Â URL Ŭ·¡½ºÀÇ »ç¿ë¹æ¹ý°ú Àǹ̿¡ ´ëÇØ¼ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
URLŬ·¡½º´Â À¥»ó¿¡ Á¸ÀçÇÏ´Â ÀÚ¿ø¿¡ Á¢±ÙÇϰųª, ³×Æ®¿÷ »óÀÇ À¯ÀÏÇÑ ÁÖ¼Ò¸¦ ³ªÅ¸³»±â À§ÇÑ ¹æ¹ý·ÐÀ» Á¦°øÇÕ´Ï´Ù. URLÀÇ ±¸Á¶¸¦ º¸¸é ¡°http://www.jabook.org:8080/web/ test.html¡±Ã³·³ ¡°ÇÁ·ÎÅäÄÝ://È£½ºÆ®À̸§:Æ÷Æ®/È£½ºÆ®»óÀÇ °æ·Î¸í/ÆÄÀÏ¡±ÀÇ ÇüŸ¦ Áö´Ï°í ÀÖ½À´Ï´Ù.
±×·³ ¸ÕÀú URLÀ» ±¸¼ºÇϰí ÀÖ´Â °¢ ºÎºÐµéÀ» »ìÆìº¼±î¿ä?
n ÇÁ·ÎÅäÄÝ(Protocol) : ÀÚ¿ø¿¡ Á¢±ÙÇϱâ À§ÇØ »ç¿ëÇϰíÀÚ ÇÏ´Â ÇÁ·ÎÅäÄÝÀ» ³ªÅ¸³À´Ï´Ù.
n È£½ºÆ®À̸§(Host) : Á¢±ÙÇÏ·Á´Â ÀÚ¿øÀÌ ÀúÀåµÇ¾î Àִ ȣ½ºÆ®¸¦ ³ªÅ¸³À´Ï´Ù.
n Æ÷Æ®(Port) : URLÀº ¿ø°Ý È£½ºÆ®»ó¿¡¼ »ý¼ºµÈ TCP¿¬°á¿¡ ´ëÇÑ Æ÷Æ®¹øÈ£¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à Æ÷Æ®¹øÈ£°¡ »ý·«µÇ¾î ÀÖ´Ù¸é, °¢ ÇÁ·ÎÅäÄÝ¿¡ µû¶ó ±âº»°ªÀ» »ç¿ëÇÏ°Ô µË´Ï´Ù
n °æ·Î¸í(Path) : Á¢±ÙÇÏ·Á´Â ÆÄÀÏÀÌ ÀúÀåµÇ¾î Àִ ȣ½ºÆ®»óÀÇ °æ·Î¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ ºÎºÐÀº ÇÁ·ÎÅäÄÝ ¶Ç´Â È£½ºÆ®¿¡ µû¶ó ´Ù¸£°Ô Ç¥ÇöµÉ ¼ö ÀÖ°í, ÆÄÀÏ ¶Ç´Â µð·ºÅ͸® ÀÏ ¼ö ÀÖ½À´Ï´Ù.
n ÆÄÀÏ(File) : Á¢±ÙÇÏ·Á´Â ÆÄÀÏÀÔ´Ï´Ù. ¶Ç URL¿¡¼´Â ÂüÁ¶¸¦ ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù. À̶§ ÂüÁ¶´Â ¡®#¡¯¹®ÀÚ¸¦ ÀÌ¿ëÇØ¼ ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.
(¿¹: http://java.sun.com/index.html#chapter1)
ÀÌ·¯ÇÑ URL±¸Á¶¸¦ º¸´Ù Æí¸®ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Çϴ Ŭ·¡½º°¡ ¹Ù·Î URLŬ·¡½ºÀÔ´Ï´Ù. URL°´Ã¼¸¦ »ý¼ºÇÏ´Â ¹æ¹ýÀº 2°¡Áö·Î ºÐ·ùÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. Çϳª´Â ¸Å°³º¯¼ö Çü½ÄÀ¸·Î °¢°¢ÀÇ µ¥ÀÌÅ͸¦ ³Ö¾î¼ »ý¼ºÇÏ´Â ¹æ¹ý°ú Àüü URLÀ» StringÀ¸·Î ÀÔ·ÂÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ÀÌÇØ°¡ Àß ¾È µÇ½ÃÁÒ? ±×·³ ±× ¹æ¹ýÀ» ÀÚ¼¼È÷ º¸±â À§ÇØ .¹Ì´Ï Äڵ带 ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù. À̰ÍÀ» º¸¸é ÀÌÇØ°¡ ½±°Ô µÇ½Ç °ÍÀÔ´Ï´Ù.
URL °´Ã¼¸¦ »ý¼ºÇÏ´Â ¹æ¹ý |
try { // Á¶ÇÕÇü½ÄÀ¸·Î »ç¿ëÇÏ´Â ¹æ¹ý URL url1 = new URL("http", "hostname", 80, "index.html"); // StringÀ» »ç¿ëÇÏ´Â ¹æ¹ý URL url2 = new URL("http://hostname:80/index.html"); } catch (MalformedURLException e) {} |
URL°´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Â ÀÛ¾÷À» ¾Ë¾Æ º¸±â À§Çؼ URLŬ·¡½ºÀÇ ÁÖ¿ä ¸Þ¼µåµéÀ» ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
URLŬ·¡½ºÀÇ ÁÖ¿ä ¸Þ¼µå
n public String getProtocol()
n public String getHost()
n public String getFile()
n public String getRef()
n public InputStream openStream()
n public int getPort() ¡¦ µîµî.
ÀÌ ¸Þ¼µåµéÀ» º¸´Ï ¡®URLŬ·¡½º´Â InetAddressŬ·¡½ºº¸´Ù ¾à°£ ´õ È®Àå µÈ °³³äÀ̱¸³ª!¡¯ ¶ó´Â »ý°¢ÀÌ µéÁÒ? InetAddressŬ·¡½º´Â ´ÜÁö È£½ºÆ®À̸§°ú IP Address¿¡ °ü·ÃµÈ Á¤º¸¸¸À» ´Ù·çÁö¸¸, URLŬ·¡½º¿¡¼´Â º¸´Ù ¹Ì¼¼ÇÑ Á¤º¸±îÁö ºÐ·ùÇØ¼ ÃßÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í URLŬ·¡½º¸¸ÀÇ Æ¯Â¡Àº ³×Æ®¿÷ ¿¬°á±îÁö ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ´ÙÀ½ ¿¹Á¦´Â URLŬ·¡½º¸¦ ÀÌ¿ëÇØ ³×Æ®¿÷À¸·Î ƯÁ¤ÆÄÀÏÀ» ¿¬°áÇÏ¿© ±× URLÀÚüÀÇ Á¤º¸¸¦ ÃßÃâÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ÀÌ ¿¹Á¦¸¦ ÅëÇØ InetAddressŬ·¡½º¿Í URLŬ·¡½ºÀÇ »ç¿ë»óÀÇ Â÷ÀÌÁ¡À» È®½ÇÈ÷ ¾Æ½Ã°Ô µÉ °ÍÀÔ´Ï´Ù.
URLTest.java(URL°´Ã¼ ½ºÆ®¸² Å×½ºÆ®) |
import java.net.*; import java.io.*; public class URLTest { public static void main(String args[]) { try { URL home = new URL("http://www.jabook.org:80/index.html"); BufferedReader br; String line; System.out.println("Port: "+home.getPort()); System.out.println("Protocol: "+home.getProtocol()); System.out.println("HostName: "+home.getHost()); System.out.println("File: "+home.getFile()); System.out.println("Ref: "+home.getRef()); br = new BufferedReader(new InputStreamReader(home.openStream())); while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); } catch (Exception e) { System.out.println("Exception: " + e); } } } |
C:\JavaExample\16>javac URLTest.java C:\JavaExample\16>java URLTest Port: 80 Protocol: http HostName: www.jabook.org File: /index.html Ref: null <html> <head> <title>º¸¼®ÀÚ¹Ù</title> </head> <frameset rows="42,100%" frameborder=0 border=0> <frame src="head.html" name="menuhead" scrolling="no" marginwidth="0 " marginheight="0" target="_self" noresize> <frame name="down" src="intro.html" scrolling="auto"> </frameset> </html> |
ÀÌ ¿¹Á¦¿¡¼´Â ¸Å°³º¯¼ö¸¦ StringÇü½ÄÀ¸·Î ÀÔ·ÂÇÏ¿© URL°´Ã¼¸¦ »ý¼ºÇϰí ÀÖ½À´Ï´Ù. ÀÌ °´Ã¼¸¦ »ý¼ºÇÒ ¶§ ¿©·¯ºÐÀº MalformedURLException󸮸¦ ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼´Â ÃÖ»óÀ§ ExceptionÀ» ó¸®Çϱ⠶§¹®¿¡ ¸ðµç ¿¡·¯Ã³¸®¸¦ Æ÷ÇÔÇÏ°Ô µË´Ï´Ù.
n URL home = new URL("http://www.jabook.org:80/index.html");
±×¸®°í »ý¼ºµÈ URL°´Ã¼ homeÀ» ÀÌ¿ëÇÏ¿© ¸î °¡Áö Á¤º¸¸¦ ÃßÃâÇϰí ÀÖ½À´Ï´Ù.
n home.getPort(): port¸¦ intÇüÀ¸·Î ¸®ÅÏÇÕ´Ï´Ù.
n home.getProtocol(): protocolÀ» StringÇüÀ¸·Î ¸®ÅÏÇÕ´Ï´Ù.
n home.getHost():È£½ºÆ® À̸§À» StringÇüÀ¸·Î ¸®ÅÏÇÕ´Ï´Ù.
n home.getFile():ÆÄÀÏÀ̸§À» StringÇüÀ¸·Î ¸®ÅÏÇÕ´Ï´Ù.
n home.getRef(): Reference¸¦ StringÇüÀ¸·Î ¸®ÅÏÇÕ´Ï´Ù.
±âº»ÀûÀÎ ÀÛ¾÷Àº ÀÌ¿Í °°ÀÌ URLÀÚüÀÇ Á¤º¸¸¦ ÃßÃâÇÏ´Â ÀÛ¾÷ÀÔ´Ï´Ù. ±×¸®°í URL°´Ã¼¸¦ ÀÌ¿ëÇÏ¿© ÇØ´ç URL¿¡ ConnectionÀ» »ý¼ºÇÏ¿© StreamÀ» ¿°í µ¥ÀÌÅ͸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ½ºÆ®¸²À» »ý¼ºÇÏ´Â ¹æ¹ýÀº ¸ÕÀú URL°´Ã¼ homeÀ» ÀÌ¿ëÇÏ¿© openStream()¸Þ¼µå¸¦ È£ÃâÇÏ¿© InputStreamÀ» ¾ò¾î³»°Ô µÇ¸ç InputStreamÀ» »ç¿ëÇÏ±â ÆíÇÑ ½ºÆ®¸²À¸·Î º¯È¯ÇÏ´Â ÀÛ¾÷À» ÇÕ´Ï´Ù.
n BufferedReader br = new BufferedReader(new InputStreamReader(home.openStream()));
ÀÌ ±¸¹®À» ´Ù½Ã ¿©·¯ÁÙ·Î Ç®¾î¼ ¾´´Ù¸é ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
n InputStream is = home.openStream();
n InputStreamReader isr = new InputStreamReader(is);
n BufferedReader br = new BufferedReader(isr);
½ºÆ®¸²À» º¯È¯ÇÏ´Â °ÍÀº ¿©·¯ ¹ø º¸¾ÒÀ» °ÍÀÔ´Ï´Ù. À§ÀÇ ½ºÆ®¸²Àº Á¦ÀÏ ¸ÕÀú Byte½ºÆ®¸²ÀÎ InputStream is ¾òÀº ÈÄ ÀÌ °´Ã¼ is¸¦ 1Â÷ÀûÀ¸·Î Character½ºÆ®¸²ÀÎ InputStreamReader·Î º¯È¯Çϰí ÀÖ½À´Ï´Ù. ±×¸®°í ÀÌ ¹®ÀÚ ½ºÆ®¸²À» Buffer±â´ÉÀÌ ÀÖ´Â, ÇÑ ÁÙ ´ÜÀ§·Î ÀÛ¾÷ÇÒ ¼ö ÀÖ´Â BufferedReader·Î º¯È¯Çϰí ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô º¯È¯ÇÑ ÀÌÀ¯´Â ½ºÆ®¸µÀ» ÇÑ ÁÙ¾¿ ÀÛ¾÷Çϱâ À§Çؼ º¯È¯ÇÑ °ÍÀÔ´Ï´Ù.
»ý¼ºµÈ ½ºÆ®¸²À» ÅëÇØ¼ µ¥ÀÌÅ͸¦ ÇÑ ÁÙ´ÜÀ§·Î ÀÐ¾î µéÀ̰í ÀÖ½À´Ï´Ù.
n String line=null;
n while ((line = br.readLine()) != null) {
n System.out.println(line);
n }
¸¶Áö¸·À¸·Î, ¿¸° ½ºÆ®¸²À» ´Ý¾ÆÁÖ°í ÀÖ½À´Ï´Ù.
n br.close();
URLŬ·¡½ºÀÇ »ý¼ºÀÚ¸Þ¼µå |
public URL(String spec) throws MalformedURLException : String Ç¥Çö¿¡¼ URL °´Ã¼¸¦ ÀÛ¼ºÇÑ´Ù. ÀÌ »ý¼ºÀڴ ù¹øÂ° Àμö·Î nullÀ» »ç¿ëÇÏ¿© Àμö°¡ µÎ °³ÀÎ »ý¼ºÀÚ¸¦ È£ÃâÇÑ´Ù. public URL(URL context, String spec) throws MalformedURLException : ÁöÁ¤µÈ ¹®¸Æ ³»¿¡¼ ¸Å°³º¯¼ö specÀ» ºÐ¼®ÇÏ¿© URLÀ» ÀÛ¼ºÇÑ´Ù. context Àμö°¡ nullÀÌ ¾Æ´Ï°í spec Àμö°¡ ºÎºÐÀûÀÎ URLÁÖ¼ÒÀÎ °æ¿ì, ÄÄÆ÷³ÍÆ®°¡ ´©¶ôµÈ ¹®ÀÚ¿Àº context Àμö¿¡¼ »ó¼ÓµÈ´Ù. String Àμö·Î ÁöÁ¤µÇ´Â ½ºÆåÀº ÇÁ·ÎÅäÄÝ ÁöÁ¤ ¿©ºÎ¸¦ ¾Ë¾Æ³»±â À§ÇØ ºÐ¼®µÈ´Ù. String¿¡¼ ASCII ½½·¡½Ã ¹®ÀÚ('/')°¡ óÀ½ ³ª¿À±â Àü¿¡ ASCII ÄÝ·Ð(':') ¹®ÀÚ°¡ ¸ÕÀú ³ª¿À´Â °æ¿ì, ÄÝ·Ð ÀÌÀüÀÇ ¹®ÀÚ°¡ ÇÁ·ÎÅäÄÝ·Î ±¸¼ºµÈ´Ù. public URL(String protocol, String host, String file) throws MalformedURLException : ÁöÁ¤µÈ protocol¸í, host¸í ¹× file¸í¿¡¼ Àý´ë°æ·Î·Î URLÀ» ÀÛ¼ºÇÑ´Ù. ÁöÁ¤µÈ ÇÁ·ÎÅäÄÝÀÇ ±âº» Æ÷Æ®°¡ »ç¿ëµÈ´Ù. ÀÌ ¸Þ¼Òµå´Â Àμö·Î protocol, host, -1 ¹× fileÀ» »ç¿ëÇÏ´Â »ý¼ºÀÚ¸¦ È£ÃâÇÑ´Ù public URL(String protocol, String host, int port, String file, URLStreamHandler handler) throws MalformedURLException : ÇÁ·ÎÅäÄÝ, È£½ºÆ®¸í, Æ÷Æ®¹øÈ£, ±×¸®°í ÆÄÀϸíÀ» ÀÏÀÏÀÌ ÁöÁ¤ÇÏ¿© ±×¿¡ ´ëÀÀÇÏ´Â URL °³Ã¼¸¦ »ý¼ºÇÑ´Ù. Æ÷Æ®¹øÈ£¸¦ -1·Î ÁöÁ¤ÇÏ¸é ±× ÇÁ·ÎÅäÄÝÀÇ °íÀ¯ Æ÷Æ®¹øÈ£·Î ÀÚµ¿ ÁöÁ¤µÈ´Ù. ¶ÇÇÑ ÀÌ ±¸¼ºÀÚ´Â URLStreamHandler °³Ã¼, Áï, ½ºÆ®¸² ÇÁ·ÎÅäÄÝ Çڵ鷯stream protocol handler¸¦ ÁöÁ¤Çϵµ·Ï µÇ¾î ÀÖ´Ù. |
URLŬ·¡½ºÀÇ ÁÖ¿ä ¸â¹ö¸Þ¼µå |
public String getFile() : URLÀÇ ÆÄÀϸíÀ» ¸®ÅÏÇÑ´Ù. public String getHost() : Àû¿ë °¡´ÉÇÑ °æ¿ì, URLÀÇ È£½ºÆ®¸íÀ» ¸®ÅÏÇÑ´Ù. "file" ÇÁ·ÎÅäÄÝÀÇ °æ¿ì, ºñ¾î ÀÖ´Â ¹®ÀÚ¿ÀÌ´Ù. public int getPort() : URLÀÇ Æ÷Æ® ¹øÈ£¸¦ ¸®ÅÏÇÕ´Ï´Ù. Æ÷Æ®°¡ ¼³Á¤µÇÁö ¾ÊÀº °æ¿ì -1À» ¸®ÅÏÇÑ´Ù. public String getProtocol() : URLÀÇ ÇÁ·ÎÅäÄݸíÀ» ¸®ÅÏÇÑ´Ù. public String getRef() : URLÀÇ ¾ÞÄ¿("ÂüÁ¶"¶ó°íµµ ÇÔ)¸¦ ¸®ÅÏÇÑ´Ù. public URLConnection openConnection() throws IOException : URL·Î ÂüÁ¶µÇ´Â ¿ø°Ý °´Ã¼·ÎÀÇ ¿¬°áÀ» ³ªÅ¸³»´Â URLConnection °´Ã¼¸¦ ¸®ÅÏÇÑ´Ù. ¿¬°áÀÌ ¿¸®Áö ¾ÊÀº °æ¿ì, URL¿¡ ´ëÇÑ ÇÁ·ÎÅäÄÝ Çڵ鷯ÀÇ openConnectionÀ» È£ÃâÇÏ¿© ¿¬°áÀ» ¿¬´Ù. |
URLŬ·¡½º¸¦ ÀÌ¿ëÇÏ¸é ³×Æ®¿÷¿¡ ¿¬°áÇÏ¿© URLÀÇ Æ¯Á¤ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ URL °´Ã¼´Â ÀÚ¿øÀÇ À§Ä¡»Ó ¾Æ´Ï¶ó ±× URLÀ» À§ÇÑ ½ºÆ®¸² ÇÁ·ÎÅäÄÝ Çڵ鷯(Stream Protocol Handler)¸¦ °¡Áö°í Àִµ¥ URLŬ·¡½º³»ÀÇ openConnection()¸Þ¼µå°¡ ±× ¿ªÇÒÀ» ´ã´çÇÕ´Ï´Ù. ±×·¡¼ URL¿¡ ´ëÇÑ Á¢¼ÓÀº openConnection()¸Þ¼µå¸¦ È£ÃâÇÒ ¶§¸¶´Ù ¸Å¹ø »õ·ÎÀÌ ÀÌ·ç¾îÁöÁÒ.
±×·±µ¥ À§ ÁÖ¿ä ¸â¹ö¸Þ¼µå ¼³¸íÀ» ÀÚ¼¼È÷ º¸¸é openConnection()¸Þ¼µåÀÇ ¹ÝȯÇüÀÌ URLConnectionÀ¸·Î µÇ¾î ÀÖ½À´Ï´Ù. Ȳ´çÇϽÃÁÒ? ÀÌ´Â URLConnectionÀÌ ¸ðµç Á¢¼Ó Ŭ·¡½ºÀÇ ÃÖ»óÀ§Å¬·¡½ºÀ̱⠶§¹®Àε¥ ½ÇÁ¦·Î´Â ±× URL ÇÁ·ÎÅäÄÝ¿¡ ¸Â´Â Á¢¼ÓŬ·¡½º °´Ã¼°¡ µÇµ¹·ÁÁö´Â °ÍÀÔ´Ï´Ù. °¡·É HTTPÀÇ °æ¿ì¿¡´Â HttpURLConnectionÀÌ, JARÀÇ °æ¿ì¿¡´Â JarURLConnectionÀÌ µÇµ¹·ÁÁý´Ï´Ù. ÀÌÇØ°¡ Àß ¾ÈµÅ½Å´Ù±¸¿ä? ±×·³ ´ÙÀ½ Àý¿¡¼ URLŬ·¡½º¿Í URLConnectionŬ·¡½ºÀÇ Â÷À̸¦ Çѹø »ìÆìº¸µµ·Ï ÇÏÁÒ
¢Ñ URLŬ·¡½º |
À¥»ó¿¡ Á¸ÀçÇÏ´Â ÀÚ¿ø¿¡ Á¢±ÙÇϰųª, ³×Æ®¿÷ »óÀÇ À¯ÀÏÇÑ ÁÖ¼Ò¸¦ ³ªÅ¸³»±â À§ÇÑ ¹æ¹ý·ÐÀ» Á¦°øÇÑ´Ù. |
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ ÀúÀÚ:ÃÖ¿µ°ü |