[Java] embedded Web server
От: pintelou  
Дата: 12.04.06 20:28
Оценка: 2 (1)
При разработке приложений часто возникает необходимость реализовать средства для удаленного администрирования, просмотра статистики и т.п. Самым простым, стандартным и переносимым способом для этого является веб-интерфейс. При этом возникают следующие проблемы:


Предлагаемый веб сервер поддерживает один-единственный http метод GET и примитивный аналог механизма сервлетов. Этого оказывается достаточно для того, чтобы реализовать AJAX командный интерфейс, описанный Стояном Стефановым (http://www.sitepoint.com/article/take-command-ajax).

http://rsdn.org/File/22883/jemweb.png

Сервер инициализируется в классе Main; необходимые html и JavaScript файлы должны физически находитсься в jar файле приложения или в любом другом месте в пути classpath.

HttpServer server = new HttpServer(8080);
server.registerServlet("/", new ResourceServlet("web/console.html"));
server.registerServlet("/console.html", new ResourceServlet("web/console.html"));
server.registerServlet("/wc.css", new ResourceServlet("web/wc.css"));
server.registerServlet("/st-xmlhttp.js", new ResourceServlet("web/st-xmlhttp.js"));
server.registerServlet("/exec", new CommandServlet());
            
server.initialize();


Команды клиентов передаются через параметр метода GET в сервлет CommandServlet. В тестовой версии он просто дублирует ввод пользователя:

public class CommandServlet implements IServlet {
    public void doGet(HttpRequest request, HttpResponse response) {
        String cmd = request.getParameter("command");
        response.append(cmd != null ? cmd : "null");
    }
}


Исходный код: http://rsdn.ru/File/22883/jemweb.zip

Я с удовольствием добавлю новую функциональность, которая может понадобится в реальных проектах.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.