создать простой http-сервер с java?

<p>какой самый простой способ создать простой http-сервер с java? есть ли какие-нибудь библиотеки в общем для облегчения этого? мне нужно только ответить на <code>get/post</code>, и я не могу использовать сервер приложений.</p><p>какой самый простой способ сделать это?</p>

<p>используйте <a href="https://github.com/eclipse/jetty.project">jetty</a> . вот учебник для <a href="https://www.eclipse.org/jetty/documentation/current/advanced-embedding.html">встраивание jetty</a> . (вот <a href="http://wiki.eclipse.org/jetty/tutorial/embedding\_jetty">устаревшее руководство</a> .)</p><p>jetty довольно легкий, но он предоставляет контейнер сервлетов, который может противоречить вашему требованию против использования "сервера приложений".</p><p>вы можете встроить сервер jetty в свое приложение. jetty разрешает или встроенные or опции контейнера сервлета.</p>

<p>вот как я мог бы пойти по этому поводу:</p><ol> <li>запустите прослушивание <code>serversocket</code> (возможно, на порту 80).</li> <li>как только вы получите запрос на соединение, примите и перейдите к другому потоку/процессу (это оставит ваше <code>serversocket</code> доступным для прослушивания и принятия других соединений).</li> <li>разберите текст запроса (в частности, заголовки, в которых вы увидите, get или post, и переданные параметры).</li> <li>ответьте с помощью собственных заголовков (<code>content-type</code> и т.д.) и html.</li> </ol><p>я считаю полезным использовать firebug (в firefox), чтобы увидеть примеры заголовков. это то, что вы хотите подражать.</p><p>попробуйте эту ссылку: - <a href="http://tutorials.jenkov.com/java-multithreaded-servers/multithreaded-server.html">многопоточный сервер на java</a> </p>

<p>самым простым является <a href="http://www.simpleframework.org/">simple</a> есть учебное пособие, нет web-inf, нет servlet api, нет зависимостей. просто простой легкий http-сервер в одном jar.</p>

<p>если вы используете sun jdk, вы можете использовать <a href="http://java.sun.com/javase/6/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/package-summary.html">встроенная библиотека</a> <br> <a href="https://stackoverflow.com/questions/1186328/embedded-http-server-in-swing-java-app">посмотрите на этом сайте, как использовать.</a> </p><p>если нет нескольких <a href="http://java-source.net/open-source/web-servers">серверы с открытым исходным кодом http здесь</a> , которые вы можете встроить в свое программное обеспечение.</p>

<p>я удивлен, что этот пример не здесь:</p><p> <a href="http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/elementalhttpserver.java">http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/elementalhttpserver.java</a> </p><p>редактировать >> выше ссылка не доступна. вот выдержка из примера post, за которой следует ссылка на примеры http.</p><pre><code> 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..."); } </code></pre><p> <a href="http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/">http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/</a> </p>

<p>java 6 имеет встроенный http-сервер по умолчанию.</p><p> <a href="https://stackoverflow.com/questions/3732109/simple-http-server-in-java-using-only-java-se-api">проверьте ветку здесь</a> </p><p>кстати, если вы планируете использовать веб-сервис для отдыха, вот <a href="http://theopentutorials.com/examples/java-ee/jax-rs/create-a-simple-restful-web-service-using-jersey-jax-rs/">простой пример с использованием трикотажа</a> .</p>

<p>я написал учебник, объясняющий, как написать простой http-сервер некоторое время назад на java. объясняет, что делает код и почему сервер написан таким образом в ходе обучения. может быть полезно <a href="http://kcd.sytes.net/articles/simple\_web\_server.php">http://kcd.sytes.net/articles/simple\_web\_server.php</a> </p>

<p> <a href="http://jetty.codehaus.org/jetty/">jetty</a> это отличный способ легко встроить http-сервер. он поддерживает собственный простой способ подключения обработчиков и является полноценным сервером приложений j2ee, если вам нужна дополнительная функциональность.</p>

<p>встраивание tomcat относительно безболезненно. <a href="https://stackoverflow.com/questions/640022/howto-embed-tomcat-6">вот</a> хорошая ссылка на stackoverflow.</p>

<p> <a href="https://undertow.io">ndertow</a> - это легкий неблокирующий блок <a href="https://www.stubbornjava.com/guides/embedded-java-web-server">встроенный веб-сервер</a> , который вы можете быстро запустить и запустить.</p><pre><code>public static void main(string[] args) { undertow.builder() .addhttplistener(8080, "localhost") .sethandler((exchange) -> exchange.getresponsesender().send("hello world")) .build().start(); } </code></pre>

<p>контейнер с сервлетами - определенно путь. если tomcat или jetty слишком тяжелые для вас, рассмотрите <a href="http://sourceforge.net/projects/winstone/">winstone</a> или <a href="http://tjws.sourceforge.net/">ttiny</a> .</p>