セッションオブジェクトの初期プローブ
クッキーオブジェクトに対して、sessionオブジェクトはブラウザごとに存在し、sessionはサーバに格納され、cookieはクライアントマシンに格納されますが、sessionの下部には使用されるクッキーが実現を支援する機能があります.
まず、sessionの宣言サイクルは、requestを最初に呼び出す.getsessionというコードを使うと、クライアントが指定したidをsessionに持って来ていないことに気づいたとき、sessionはあなたのブラウザに基づいてiに対応するsessionを作成し、cookieを通じてクライアントにドロップしますが、このcookieは時間に制限されていません.つまり、お客様が偶然ブラウザをオフにした場合、それはこのクッキーの有効時間を制限する必要があります.もう一つは、sessionはサーバー側に保管されています.1つのsessionが30分もアクセスされていないと、自動的に破壊されます.だから、私たちが表示している下位のcookieは30分に限定すればいいです.
また、sessionの下に置かれているクッキーのデフォルト名はJESSIONIDで、名前の意味はみんな知っているので、説明する必要はありません.
簡単な例を次に示します
まず、sessionの宣言サイクルは、requestを最初に呼び出す.getsessionというコードを使うと、クライアントが指定したidをsessionに持って来ていないことに気づいたとき、sessionはあなたのブラウザに基づいてiに対応するsessionを作成し、cookieを通じてクライアントにドロップしますが、このcookieは時間に制限されていません.つまり、お客様が偶然ブラウザをオフにした場合、それはこのクッキーの有効時間を制限する必要があります.もう一つは、sessionはサーバー側に保管されています.1つのsessionが30分もアクセスされていないと、自動的に破壊されます.だから、私たちが表示している下位のcookieは30分に限定すればいいです.
また、sessionの下に置かれているクッキーのデフォルト名はJESSIONIDで、名前の意味はみんな知っているので、説明する必要はありません.
簡単な例を次に示します
package com.bird.session;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* @category Session servlet
* @author Bird
*
*/
public class SessionDemo1 extends HttpServlet {
// servlet
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
String sessionId = session.getId();
Cookie cookie = new Cookie("JSESSIONID",sessionId);
cookie.setPath("/Web");
cookie.setMaxAge(30*60);
response.addCookie(cookie);
session.setAttribute("name", " ");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
package com.bird.session;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* @category servlet
* @author Bird
*
*/
public class SessionDemo2 extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter writer = response.getWriter();
HttpSession session = request.getSession(false);// session,
String name = (String) session.getAttribute("name");
writer.write(name);
session.invalidate();// session
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}