servletのセッション管理
servletでhttpsessionを呼び出す方法はrequestです.getSession(); 最初の呼び出し時に新しいsession(session.isNew()がtrueを返す)が生成されます.getSession()にはboolean型パラメータを持つ方法もあります.getSession(false)は、存在するsessionのみを取得し、存在しない場合nullを返します.
クライアントとhttpsessionがインタラクションすると、クッキーに存在するsessionIdによってアイデンティティが確認され、毎回requestにはこのsessionIdが含まれます.クライアントのブラウザでクッキーが許可されていない場合は、セッションIdをurlの後ろに存在させるしかありません.この方法では、urlを復号する必要があります.
あるいはこのようにします.
これらはすべてサーバ側で行われています.サーバだけがsessionIdを知っているからです.
通過可能
強制的にセッションを閉じます.
session cookiesはsessionが終了すると消えますが、cookiesをずっと保持することで、サーバがこのユーザーを覚えているようにすることができます.一般的な場合
HttpServletRequest.getCookies();
HttpServletResponse.addCookie();
Cookieクラスも操作できます.
クライアントと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クラスも操作できます.