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());
    }
  }
}
%>
 
 

本文出自 “hiperfect” 博客,谢绝转载!

你可能感兴趣的:(jsp,session,cookie)