Uniform Resource Locator URL(Uniform Resource Locator)은 www 클라이언트가 인터넷에 액세스할 때 리소스를 식별하는 데 사용하는 이름과 주소입니다. 하이퍼텍스트 링크는 통일된 자원 위치 URL에 의해 유지됩니다. URL 형식은 다음과 같습니다.
<메소드>://<호스트 이름:포트>/<경로>/<파일>
그 중: Method는 전송 프로토콜입니다. HOSTNAME은 문서와 서버가 위치한 인터넷 호스트 이름(도메인 이름 시스템의 DNS 지점 주소)이고 PATH는 서비스 포트 번호입니다. 경로 이름이고 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 ); }
URL 객체 생성으로 인해 MalformedURLException이 발생할 수 있습니다. 따라서 URL 개체를 생성하는 코드는 URL 오류 예외를 포착할 수 있도록 try...catch 문 블록에 나타나야 합니다.
URLConnection 클래스
정보를 받고 보내려면 URLConnection 클래스를 사용해야 합니다. 프로그램은 지정된 URL에 대한 HTTP 연결을 완료하는 것과 동일한 URLConnection 객체를 얻습니다. 다음은 URLConnection 객체를 얻는 코드입니다.
URL mu = new URL("http://www.sun.com/");//먼저 URL 개체 생성 URLConnection muC = mu.openConnection();//URLConnection 개체 가져오기
위 코드는 먼저 URL 객체를 생성한 다음 URL 객체의 openConnection() 메서드를 사용하여 시스템에서 URLConnection 객체를 얻어야 함을 보여줍니다. 프로그램에 URLConnection 객체가 있으면 URLConnection 클래스에서 제공하는 다음 메서드를 사용하여 스트림 객체를 얻고 네트워크 연결을 구현할 수 있습니다.
getOutputStream(): 원격 호스트에 정보를 보내는 OutputStream 스트림 객체를 얻습니다.
getInputStream(): 원격 호스트로부터 정보를 얻는 InputStream 스트림 객체를 얻습니다. 입력 및 출력 스트림이 네트워크에 연결되어 있으면 프로그램이 원격으로 통신할 수 있습니다.
connect(): 네트워크 연결을 설정합니다.
정보 보내기 및 받기
정보를 보내고 받기 위해 스트림 객체를 얻고, 스트림 객체로부터 입력 또는 출력 데이터 스트림 객체가 생성됩니다. 그런 다음 스트리밍 방법을 사용하여 온라인 리소스에 액세스할 수 있습니다.
아래 예제 프로그램의 readByURL() 메서드를 참조하세요. 이 메서드는 알려진 URL에서 웹 콘텐츠를 읽는 프로세스를 보여줍니다. 이 메소드는 URL 매개변수를 사용하여 URL 객체 url을 생성한 다음 객체 url의 openConnect() 메소드를 사용하여 URLConnection 객체 tc를 획득하고 객체 tc의 connect() 메소드를 사용하여 네트워크 연결을 설정한 후 객체를 획득합니다. 네트워크 연결의 InputStreamReader 클래스 객체를 에 넣고 BufferedRead 객체 dis로 변환하여 버퍼링된 입력으로 변경합니다. 마지막으로 dis 개체의 readLine() 메서드를 사용하여 네트워크 텍스트 데이터 읽기를 완료합니다.
로컬 데이터 흐름과 마찬가지로 데이터 흐름은 온라인 리소스 사용이 완료된 후 시간에 맞춰 종료되어야 합니다. 예를 들어, 코드
드러내다();
이전 코드에서 생성된 스트림 dis를 닫습니다.
[예시] 데이터 스트림 방식으로 웹 콘텐츠를 읽는 애플리케이션. 프로그램이 실행되면 텍스트 상자에서 URL을 읽습니다.
가져오기 java.net.*;가져오기 java.awt.*;가져오기 java.awt.event.*;가져오기 java.io.*;가져오기 java.javax.swing.*;공용 클래스 예제10_2{ public static void main(String args []){ new downNetFile(); }}클래스 DownNetFile은 JFrame을 구현하여 ActionListener를 구현합니다.{ JTextFileld infield = new JTextField(30); JTextarea showArea = new JButton b = new JButton("download"); JPanel p = new JPanel(){ super("네트워크 텍스트 파일 응용 프로그램 읽기"); this.getContentPane(); p.add(infield);p.add(b); JScrollPane jsp = new JScrollPane(showArea); b.addActionListener(this); con.add(p,"North");con.add(jsp,"Center"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true) ; } 공개 무효 actionPerformed(ActionEvent e){ readByURL(infield.getText()); } public void readByURL(String urlName){ try{ URL url = new URL(urlName);//URL에서 URL 객체 생성 URLConnection tc = url.openConnectin();//Get URLConnection 객체 tc.connect();//네트워크 연결 설정 InptStreamReader in = new InputStreamReader(tc.getInputStream()); BufferedReader dis = new BufferedReader(in);//버퍼링된 입력 문자열 사용 inline; while((inline = dis.readLine())!=null){ showArea.append(inline +”/n”) } dis.close ( );//온라인 리소스 사용이 완료된 후 시간이 지나면 데이터 스트림이 종료됩니다.}catch(MalformedURLException e){ e.printStackTrace() } catch(IOException) e){e.printStacktrace();} /*온라인 리소스에 액세스하면 MalformedURLException 및 IOException이 생성될 수 있습니다*/ }}