session和cookie

一、Session部分
知識要點:
設置session
設置session默認有效時間和本session有效時間(session一定時間不使用會被摧毀)
 
特別注意:
session只能被對應會話使用,瀏覽器關閉,session雖然存在但不能被直接調用
需要依託cookie中JSESSIONID,其解決辦法是:重寫cookie中JSESSIONID,設置cookie有效時間。
 
session測試代碼:
<%
 session.setAttribute("a", "aa");
 session.setMaxInactiveInterval(60);
 out.println(session.getAttribute("a"));
%>
設置默認session有效時間:
在web.xml中加入以下代碼(秒爲單位)
    <session-config>
    <session-timeout>1800</session-timeout>
    </session-config>
session處理在action中的代碼:
        ActionContext.getContext().getSession().put("username",username);
        ActionContext.getContext().getSession().put("rank",rank);
        String JSESSIONID=ServletActionContext.getRequest().getSession().getId();
        Cookie sessionId=new Cookie("JSESSIONID",JSESSIONID);
        sessionId.setPath("/");
        sessionId.setMaxAge(60*30);
        ServletActionContext.getResponse().addCookie(sessionId);
 
二、Cookie部分
知識要點:
利用構造方法建立cookie對象
設置Cookie有效時間(默認是-1,即一次會話有效)
指定Cookie適用的路徑
用response發送cookie
用request接受cookie對象數組(硬盤上所有cookie)
判斷cookie數組是否爲null
cookie存在,再用遍歷數組獲取對應名稱的cookie
使用獲取的cookie的屬性
 
jsp中使用實例:
設置cookie
<%
  Cookie a =new Cookie("a","a");
  Cookie b =new Cookie("b","b");
  a.setMaxAge(10);
  a.setPath("/");
  out.println(a.getMaxAge());
  out.println(b.getMaxAge());
  response.addCookie(a);
  response.addCookie(b);
%>
檢測cookie
<%
Cookie ck[]=request.getCookies();
if(!ck.equals(null)){
  for(int i=0;i<ck.length;i++){
    if(ck[i].getName().equals("a")){
      out.println(ck[i].getValue());
      out.println(ck.length);
      out.println(ck[0].getName());
    }
  }
  for(int i=0;i<ck.length;i++){
    if(ck[i].getName().equals("b")){
      out.println(ck[i].getValue());
    }
  }
}
%>
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章