минималистичный веб-интерфейс Java, такой как Pythons WSGI - PullRequest
1 голос
/ 10 декабря 2010

Python имеет минималистичный и элегантный веб-интерфейс, который называется WSGI .Самое простое из возможных приложений выглядит так:

def simple_app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type', 'text/plain')]
    start_response(status, response_headers)
    return ['Hello world!\n']

environ - это что-то вроде объекта запроса, а start_response - это функция для установки резонансных заголовков.Тело ответа - это итеративный объект, здесь список с одной строкой ('Hello world! \ N').Этот простой интерфейс объединяет то, что делается в Java, с сервлетами и фильтрами.

Интересно, можно ли что-то подобное написать на Java.Я ожидаю, что возврат итератора в Java будет медленнее, чем использование потока.Поэтому я думаю, что передача OutputStream (обернутая в объект ответа), как это делает Servlet API, является лучшим решением.Это выглядело бы так:

public interface Handler {
    void handle(Request req, Response res);
}

Однако я бы предпочел, чтобы ответ был возвращен:

public interface Handler {
    Response handle(Request req);
}

Но тогда единственным способом передачи в OutputStream был быRequest (Request # createResponse ()).

Действия ASP.NET возвращают "Result" объекты, но я не знаю много об этом и не знаю, как потоковая передача выполняетсяфреймворк.Как бы вы сделали нечто подобное в Java?

Я с нетерпением жду ваших идей для простого и элегантного веб-API Java.

1 Ответ

0 голосов
/ 10 декабря 2010

Используя собственный IO и сетевой API java, мы можем создать ServerSocket пакета java.net.

...