자바 필수 URL 과 URLConnection 사용
5522 단어 JavaURLURLConnection
java.net.URLConnection 은 응용 프로그램 과 URL 간 의 통신 링크 를 대표 하 며 이 URL 에 인 용 된 자원 을 읽 고 기록 할 수 있 습 니 다.
URLConnection 은 URL 보다 하나의 Connection 이 더 많아 보 입 니 다.이들 의 관계 도 이에 국한 되 나 요?
01、URL 이란 무엇 인가
URL 이 무엇 인지 알 기 위해 서 는 다른 두 개념 URI 와 URN 을 도입 해 야 한다.
무슨 소리 야?URL 도 모 르 고 또 두 개 야?걱정 마 세 요.제 가 마법 이 된 것 처럼 세 가 지 를 다 알 게 해 드릴 수 있어 요.
URI=Universal Resource Identifier,중국어 해석 은 통일 자원 표지 부호URL=Universal Resource Locator,중국어 해석 은 통일 자원 포 지 셔 닝 부호URN=Universal Resource Name,중국어 해석 은 통일 자원 명칭그들 간 의 관 계 는 다음 그림 과 같다.
이 그림 이 무슨 뜻 이 야,어 떡 하지?장 소 경 은 질문 이 있 으 면 갈 놈 에 게 물 어 본다.우 리 는 위 키 피 디 아 에 가서 물 어보 지 않 을 것 이다.
URI 는 URL 과 URN 또는 URL 과 URN 의 결합 체 로 나 눌 수 있 습 니 다(Locator 와 Name 을 동시에 갖 추고 있 습 니 다).URN 은 마치 한 사람의 이름 과 같 고 URL 은 한 사람의 주소 와 같다.다시 말 하면 URN 은 신분 을 확 정 했 고 URL 은 그것 을 찾 는 방법 을 제공 했다.
개념 이 명확 해 졌 죠?URI 는 웹 자원 을 표시 하 는 문자열 의 각 부분 을 지정 하 는 순수한 문법 구조 입 니 다.URL 은 URI 의 특례 로 웹 자원 을 찾 는 충분 한 정 보 를 포함 합 니 다.URI 는 통 일 된 자원 식별 자 이 고 URL 은 통 일 된 자원 포 지 셔 닝 문자 입 니 다.URL 은 URI 의 일종 입 니 다.예 를 들 어:http://www.itmind.net/。그러나 모든 URI 가 URL 은 아 닙 니 다.URI 는 자원 이름(URN,자원 이름 을 지 었 지만 자원 을 어떻게 찾 는 지 지정 하지 않 음)을 포함 할 수 있 기 때 문 입 니 다.예 를 들 어 mailto:[email protected]。
이렇게 많아
URL url = new URL("http://www.itmind.net/category/payment-selection/zhishixingqiu-jingxuan/");
System.out.println("host: " + url.getHost());
System.out.println("port: " + url.getPort());
System.out.println("uri_path: " + url.getPath());
//
// host: www.itmind.net
// port: -1
// uri_path: /category/payment-selection/zhishixingqiu-jingxuan/
1)java.net.URL 대상 을 만 드 는 방법 은 매우 간단 합 니 다.코드 한 줄 만 필요 합 니 다.
URL url = new URL(URL );
URL 대상 은 가 변 적 이지 않 습 니 다.URL 류 는 final 형식 이기 때문에 이러한 장점 은'스 레 드 안전'을 보장 하 는 것 입 니 다.2)자바.net.URL 대상 이 있 으 면 URL 과 관련 된 호스트 이름,포트,경로 등 을 가 져 올 수 있 습 니 다.
url.getHost()
url.getPort()
url.getPath()
02、URLConnection 이란 무엇 인가URLConnection 은 추상 적 인 클래스 로 응용 프로그램 과 URL 간 의 통신 링크 를 대표 합 니 다.이 URL 에서 인 용 된 자원 을 읽 고 기록 하 는 데 사용 할 수 있 습 니 다.이 종 류 는 Socket 류 보다 사용 하기 쉽 고 고 급 스 러 운 네트워크 연결 추상 화 를 제공 합 니 다.
URLConnection 대상 을 어떻게 가 져 옵 니까?URL 대상 의 openConnection()방법 을 통 해 예 시 는 다음 과 같다.
URL url = new URL("http://www.itmind.net");
URLConnection connection = url.openConnection();
URL 프로 토 콜 이 HTTP 라면 URLConnection 으로 연 결 된 하위 클래스 HttpURLConnection 을 되 돌려 줍 니 다.URLConnection 대상 이 있 으 면 getInputStream()을 통 해 인 용 된 자원 데 이 터 를 읽 을 수 있 습 니 다.(ASCII 텍스트 를 읽 으 면 ASCII 입 니 다.HTML 파일 을 읽 으 면 원본 HTML 이 고,그림 파일 을 읽 으 면 바 이 너 리 그림 데이터 등 입 니 다).
소 백 학당 홈 페이지 의 내용 을 읽 어 보 겠 습 니 다.코드 예 시 는 다음 과 같 습 니 다.
URL url = new URL("http://www.itmind.net");
URLConnection connection = url.openConnection();
try (InputStream in = connection.getInputStream();) {
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
while ((len = in.read(buffer)) != -1) {
output.write(buffer, 0, len);
}
System.out.println(new String(output.toByteArray()));
} catch (IOException e) {
e.printStackTrace();
}
try-with-resource 를 사용 하여 InputStream 을 가 져 올 수 있 습 니 다.이 종 류 는 AutoCloseable 인 터 페 이 스 를 실현 하고 내용 읽 기 가 끝 난 후에 입력 흐름 을 자동 으로 닫 을 수 있 습 니 다.인쇄 된 내용 은 다음 그림 과 같 습 니 다(부분).
만약 당신 이 어떤 URL 의 내용 을 읽 고 싶다 면,상술 한 방법 은 좋 은 방안 입 니 다.어서 가서 시험 해 보 세 요!
03.URL 과 URLConnection 의 차이
URL 과 URLConnection 의 가장 큰 차이 점 은:
URL url = new URL("http://www.itmind.net");
URLConnection connection = url.openConnection();
System.out.println(connection.getContentType());
System.out.println(connection.getContentLength());
System.out.println(connection.getContentEncoding());
System.out.println(connection.getDate());
System.out.println(connection.getExpiration());
System.out.println(connection.getLastModified());
//
// text/html; charset=UTF-8
// -1
// null
// 1566886980000
// 0
// 0
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.