java.lang.IllegalStateException: レスポンスをコミットした後でセッションを作成できません

JavaEEを扱っていると何回か見たりするけれども、
此処で言うレスポンスとはHttpServletResponseのこと。
クライアントに返事を返した後にセッションを作成することは出来ない。*1

直すためにはRequestDispatcherを呼び出したりResponseWriter(ResponseOutputStream)に書きだしたりする前に、セッションの作成を終わらせてあげればよい。*2

JavaEEを扱っていると、クライアントとHTTPでやりとりをしているということを意識してない人が多い印象をうける。
ある程度はしっかりと知っておくべきだとは思うけれども、何でもかんでもというのは難しいかな。

本当はJavaが全部隠蔽してくれるといいんだけれども。

*1:セッションの一意性を確保するためにクッキー等を利用するため、クライアントに返事を返した後にセッションを作成してもクライアントにどのセッションを利用すれば良いのかを教えることができない

*2:もちろん他にもありますよ?