一、Session部分
知識要點:
設置session
設置session默認有效時間和本session有效時間(session一定時間不使用會被摧毀)
特別注意:
session只能被對應會話使用,瀏覽器關閉,session雖然存在但不能被直接調用
需要依託cookie中JSESSIONID,其解決辦法是:重寫cookie中JSESSIONID,設置cookie有效時間。
需要依託cookie中JSESSIONID,其解決辦法是:重寫cookie中JSESSIONID,設置cookie有效時間。
session測試代碼:
<%
session.setAttribute("a", "aa");
session.setMaxInactiveInterval(60);
out.println(session.getAttribute("a"));
%>
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-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);
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 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());
}
}
}
%>
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());
}
}
}
%>