Pythonには、最小限で洗練されたWebインターフェイスWSGIがあります。最も簡単なアプリケーションでは、次のようになります。Python WSGIのような最小限のJava 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
はresonseヘッダーを設定する機能です。レスポンスボディは反復可能なオブジェクトで、ここでは単一のString( 'Hello world!\ n')を持つリストです。このシンプルなインターフェースは、Javaで何が行われているかをサーブレットとフィルターで統一します。
Javaで類似のものを書くことができるのだろうかと思います。 Javaでイテレータを返すことは、ストリームを使うよりも遅くなると思います。 Servlet APIのように、OutputStream(応答オブジェクトにラップされている)を渡すことが最適な解決策だと私は考えています。それは次のようになります。
public interface Handler {
void handle(Request req, Response res);
}
応答が返される場合は、私が好む:
public interface Handler {
Response handle(Request req);
}
をしかし、その後のOutputStreamを渡すための唯一の方法は、リクエスト(要求#だろうcreateResponse())。
ASP.NET actions return "Result"オブジェクトについてはわかりませんが、フレームワークによってストリーミングがどのように実行されているかわかりません。どのようにJavaで似たようなことをしますか?
シンプルで洗練されたJava Web APIのアイデアを楽しみにしています。
未加工のソケットは*ビット*低すぎます;-) – deamon