servletのセッション管理


servletでhttpsessionを呼び出す方法はrequestです.getSession(); 最初の呼び出し時に新しいsession(session.isNew()がtrueを返す)が生成されます.getSession()にはboolean型パラメータを持つ方法もあります.getSession(false)は、存在するsessionのみを取得し、存在しない場合nullを返します.
クライアントとhttpsessionがインタラクションすると、クッキーに存在するsessionIdによってアイデンティティが確認され、毎回requestにはこのsessionIdが含まれます.クライアントのブラウザでクッキーが許可されていない場合は、セッションIdをurlの後ろに存在させるしかありません.この方法では、urlを復号する必要があります.

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
    response.setContentType(“text/html”);
    PrintWriter out = response.getWriter();
    HttpSession session = request.getSession();
    out.println(“<html><body>”);
    out.println(“<a href=\”” + response.encodeURL(“/BeerTest.do”) + “\”>click me</a>”);
    out.println(“</body></html>”);
}

あるいはこのようにします.

response. encodeRedirectURL(“/BeerTest.do”)

これらはすべてサーバ側で行われています.サーバだけがsessionIdを知っているからです.
通過可能
session.invalidate();

強制的にセッションを閉じます.
session cookiesはsessionが終了すると消えますが、cookiesをずっと保持することで、サーバがこのユーザーを覚えているようにすることができます.一般的な場合
HttpServletRequest.getCookies();
HttpServletResponse.addCookie();
Cookieクラスも操作できます.