像Pythons WSGI这样的简约Java Web界面

时间:2010-12-10 10:07:17

标签: java python asp.net-mvc servlets wsgi

Python有一个名为WSGI的简约优雅的Web界面。最简单的应用程序如下所示:

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是设置共振标头的函数。响应体是一个可迭代的对象,这里是一个带有单个String的列表('Hello world!\ n')。这个简单的界面统一了Java中的Servlet和过滤器。

我想知道类似的东西是否可以用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 actions return "Result"个对象,但我对此并不了解,也不知道框架是如何执行流式处理的。你会如何在Java中做类似的事情?

我期待着您对简单优雅的Java Web API的想法。

1 个答案:

答案 0 :(得分:0)

使用java的原生IO和网络API,我们可以创建java.net包的ServerSocket。