2011年10月12日 星期三

Session & Cookie 控制

Session 建立 :
    HttpSession session = request.getSession();

    //回傳已存在的 session,不存在時回傳 null
    HttpSession session = request.getSession(false);

    //與 session.getSession() 相同
    //若存在就回傳已存在的 session,若不存在時就建立一個新的
    HttpSession session = request.getSession(true);

Session 是否為新建立 :
    session.isNew();

Session 失效 :
1.web.xml中設定(單位為分鐘)
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

2.呼叫 invalidate() 方法
    session.invalidate();

3.程式中設定(單位為秒)
    session.setMaxInactiveInterval(20*60);

Cookie 控制 :
1. 建立新的 Cookie
    Cookie cookie = new Cookie("userName", name);

2. 設定 Cookie 存活時間
    cookie.setMaxAge(30*60);

3. 在 response 回傳 Cookie 給 client
    response.addCookie(cookie);

4. 取得 client 之 Cookie
    Cookie[] cookieArray = request.getCookies();
    if (cookieArray != null) {
        for (int i = 0; i < cookieArray.length; i++) {
            Cookie cookieEl = cookieArray[i];
            if (cookieEl.getName().equals("userName")) {
                String userName = cookieEl.getValue();
                out.print("Hello, " + userName);
                break;
            }
        }
    }

沒有留言:

張貼留言