Java로 간단한 HTTP 서버를 만드시겠습니까?
Java로 간단한 HTTP 서버를 만드는 가장 쉬운 방법은 무엇입니까? 이것을 용이하게하기 위해 공유지에 도서관이 있습니까? 에 응답하기 만하면되며 GET/POST
응용 프로그램 서버를 사용할 수 없습니다.
이를 수행하는 가장 쉬운 방법은 무엇입니까?
Jetty를 사용하십시오 . 다음은 Jetty 포함에 대한 자습서입니다 . (여기에 오래된 튜토리얼이 있습니다.)
Jetty는 매우 가볍지 만 서블릿 컨테이너를 제공하므로 "애플리케이션 서버"사용에 대한 요구 사항과 모순 될 수 있습니다.
애플리케이션에 Jetty 서버를 포함 할 수 있습니다. Jetty는 임베디드 또는 서블릿 컨테이너 옵션을 허용합니다.
이것이 내가 이것에 대해 갈 방법입니다.
ServerSocket
청취를 시작하십시오 (아마도 포트 80에서).- 연결 요청을 받으면 수락하고 다른 스레드 / 프로세스로 전달합니다 (이렇게
ServerSocket
하면 계속 수신하고 다른 연결을 수락 할 수 있습니다). - 요청 텍스트 (특히 GET 또는 POST인지 확인할 헤더와 전달 된 매개 변수를 구문 분석합니다.
- 자신의 헤더 (
Content-Type
등)와 HTML로 답하십시오 .
헤더의 예를보기 위해 Firebug (Firefox에서)를 사용하는 것이 유용하다고 생각합니다. 이것은 당신이 에뮬레이트하려는 것입니다.
이 링크를 시도하십시오 : -Java의 다중 스레드 서버
가장 쉬운은 간단한 튜토리얼, 아니 WEB-INF 서블릿하지 API 종속성이 있습니다. 단일 JAR의 간단한 경량 HTTP 서버입니다.
Sun JDK를 사용하는 경우이 내장 라이브러리
를 사용할 수 있습니다. 사용 방법은이 사이트를 참조하십시오.
여기에 여러 개의 오픈 소스 HTTP 서버 가없는 경우 소프트웨어에 임베드 할 수 있습니다.
Java 6에는 기본 내장 http 서버가 있습니다.
참고로 나머지 웹 서비스를 계획하고 있다면 jersey를 사용한 간단한 예가 있습니다.
이 예제가 여기에 없다는 것이 놀랍습니다.
편집 >> 위의 링크에 연결할 수 없습니다. 다음은 POST 예제에서 발췌 한 다음 HTTP 예제에 대한 링크입니다.
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
conn.bind(socket);
}
BasicHttpEntityEnclosingRequest request = new
BasicHttpEntityEnclosingRequest("POST",
"/servlets‐examples/servlet/RequestInfoExample");
request.setEntity(requestBodies[i]);
System.out.println(">> Request URI: " + request.getRequestLine().getUri());
httpexecutor.preProcess(request, httpproc, coreContext);
HttpResponse response = httpexecutor.execute(request, conn, coreContext);
httpexecutor.postProcess(response, httpproc, coreContext);
System.out.println("<< Response: " + response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
System.out.println("==============");
if (!connStrategy.keepAlive(response, coreContext)) {
conn.close();
} else {
System.out.println("Connection kept alive...");
}
http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/
저는 Java로 잠시 동안 간단한 HTTP 서버를 작성하는 방법을 설명하는 튜토리얼을 작성했습니다. 코드가 수행하는 작업과 튜토리얼이 진행됨에 따라 서버가 그렇게 작성되는 이유를 설명합니다. http://kcd.sytes.net/articles/simple_web_server.php 유용 할 수 있습니다.
Jetty 는 HTTP 서버를 쉽게 삽입 할 수있는 좋은 방법입니다. 핸들러를 연결하는 자체 간단한 방법을 지원하며 더 많은 기능이 필요한 경우 완전한 J2EE 앱 서버입니다.
Tomcat을 임베딩하는 것은 상대적으로 어렵지 않습니다. 여기에 대한 좋은 StackOverflow 참조가 있습니다.
서블릿 컨테이너는 확실히 갈 길입니다. Tomcat 또는 Jetty가 너무 무겁다면 Winstone 또는 TTiny를 고려 하십시오 .
Undertow is a lightweight non-blocking embedded web server that you can get up and running very quickly.
public static void main(String[] args) {
Undertow.builder()
.addHttpListener(8080, "localhost")
.setHandler((exchange) -> exchange.getResponseSender().send("hello world"))
.build().start();
}
I just added a public repo with a ready to run out of the box server using Jetty and JDBC to get your project started.
Pull from github here: https://github.com/waf04/WAF-Simple-JAVA-HTTP-MYSQL-Server.git
참고URL : https://stackoverflow.com/questions/2717294/create-a-simple-http-server-with-java
'Programing' 카테고리의 다른 글
T-SQL에서 기본값 또는 유사한 제약 조건을 어떻게 삭제합니까? (0) | 2020.11.18 |
---|---|
TFS 변경 집합을 찾는 방법은 무엇입니까? (0) | 2020.11.18 |
Java 검색에서 클래스 파일 이름은 .class 예외로 끝나야합니다. (0) | 2020.11.17 |
Xcode의 여러 줄 주석 (0) | 2020.11.17 |
확인하는 방법 (0) | 2020.11.17 |