URL(Uniform Resource Locator): 인터넷상의 리소스 주소를 나타내는 Uniform Resource Locator. URL을 통해 가장 일반적인 www, ftp 사이트와 같은 인터넷의 다양한 네트워크 리소스에 액세스할 수 있습니다. 주어진 URL을 구문 분석하여 브라우저는 네트워크에서 해당 파일이나 기타 리소스를 찾을 수 있습니다.
URL의 기본 구조는 5개 부분으로 구성됩니다.
<전송 프로토콜>://<호스트 이름>:<포트 번호>/<파일 이름>
예 : http://192.168.1.100:8080/helloworld/index.jsp
l URL을 표현하기 위해 클래스 URL은 java.net에서 구현된다. 다음 생성자로 URL 객체를 초기화할 수 있습니다.
Ø public URL(String spec) : URL 주소를 나타내는 문자열을 통해 URL 객체를 구성할 수 있습니다. 예: URL url = 새 URL("http://www.atguigu.com/");
Ø public URL(URL context, String spec) : 기본 URL과 상대 URL을 통해 URL 객체를 구성합니다. 예: URL downloadUrl = 새 URL(url,"download.html")
Ø 공개 URL(문자열 프로토콜, 문자열 호스트, 문자열 파일); 예: 새 URL("http", "www.atguigu.com", "download.html");
Ø 공개 URL(문자열 프로토콜, 문자열 호스트, int 포트, 문자열 파일); 예: URL gamelan = new URL("http","www.atguigu.com", 80, “download.html");
l 클래스 URL의 구성 메서드는 비런타임 예외가 throw되고 이 예외를 처리해야 한다고 선언합니다. 일반적으로 예외를 catch하려면 try-catch 문을 사용합니다.
l URL 개체가 생성된 후에는 해당 속성을 변경할 수 없지만 이러한 속성은 지정된 메서드를 통해 얻을 수 있습니다.
Ø public String getProtocol( ) URL의 프로토콜 이름을 가져옵니다.
Ø public String getHost( ) URL의 호스트 이름을 가져옵니다.
Ø public String getPort( ) URL의 포트 번호를 가져옵니다.
Ø public String getPath( ) URL의 파일 경로를 가져옵니다.
Ø public String getFile( ) URL의 파일 이름을 가져옵니다.
Ø public String getRef( ) 파일에서 URL의 상대적 위치를 가져옵니다.
Ø public String getQuery( ) URL의 쿼리 이름을 가져옵니다.
l URL 메서드 openStream(): 네트워크에서 데이터를 읽을 수 있음
l 일부 데이터를 서버측 CGI(common gateway interface-Common Gateway Interface- 약자로, 사용자 브라우저와 서버측 응용 프로그램을 연결하는 인터페이스)로 일부 데이터를 전송하는 등 데이터를 출력하려면 먼저 URL과 연결을 설정하면 읽고 쓸 수 있으며 이때 URLConnection을 사용해야 합니다.
l URLConnection: URL이 참조하는 원격 개체에 대한 연결을 나타냅니다. URL로 연결을 설정할 때 먼저 URL 객체의 openConnection() 메서드를 통해 해당 URLConnection 객체를 생성합니다 . 연결 프로세스가 실패하면 IOException이 발생합니다.
Ø URL netchinaren = 새 URL("http://www.atguigu.com/index.shtml");
Ø URLConnectonn u = netchinaren.openConnection( );
l URLConnection 개체를 통해 얻은 입력 스트림 및 출력 스트림은 기존 CGI 프로그램과 상호 작용할 수 있습니다.
Ø public Object getContent()가 IOException을 던짐
Ø public int getContentLength( )
Ø 공개 문자열 getContentType( )
Ø 공개 긴 getDate( )
Ø 공개 긴 getLastModified( )
Ø 공개 InputStream getInputStream() throws IOException
Ø 공개 OutputSteram getOutputStream() throws IOException
public class UrlTest {
public static void main(String[] args) {
URL url=null;
try {
url=new URL("http://127.0.0.1:8080/examples/2.txt");
InputStream is=url.openStream();
int len;
byte []b=new byte[1024];
while((len=is.read(b))!=-1){//将数据输出到控制台上。
String string=new String(b, 0, len);
System.out.print(string);
}
is.close();
//将url数据保存在本地
URLConnection connection=url.openConnection();
InputStream is1=connection.getInputStream();
FileOutputStream fos=new FileOutputStream("3.txt");
byte []b1=new byte[1024];
int len1;
while((len1=is1.read(b1))!=-1){
fos.write(b1,0,len1);
}
fos.close();
is1.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}