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的想法。
答案 0 :(得分:0)
使用java的原生IO和网络API,我们可以创建java.net包的ServerSocket。