javascript中儲存、刪除cookie操作例子

來源:互聯網
上載者:User

先來看個例子

有時我們需要用cookie儲存使用者名稱,記錄登入狀態,如何正確判斷該機使用者cookie是否存在呢?不能簡單使用a!=”這樣的寫法。

 代碼如下 複製代碼

 a=getCookie("username3");
 c_start=document.cookie.indexOf("username3=");
 if(c_start == -1){
  $("#login_form").show();
     $("#logined").hide();
 }
 else{
  $("#login_form").hide();
     $("#logined").show();
     $("#ustr").html(a);
 }

正確方法是:判斷是否存在名為username3的cookie,使用document.cookie.indexOf(“username3=”)來判斷,如果傳回值是-1,表示不存在。

用js儲存、刪除cookie操作比較方便,不用在程式裡面寫,改起來也容易,比較全的用js儲存、刪除cookie操作的方法如下:

 代碼如下 複製代碼

<script language=javascript>
 
//獲得coolie 的值
function cookie(name){   
   var cookieArray=document.cookie.split("; "); //得到分割的cookie名值對   
   var cookie=new Object();   
   for (var i=0;i<cookieArray.length;i++){   
      var arr=cookieArray[i].split("=");       //將名和值分開   
      if(arr[0]==name)return unescape(arr[1]); //如果是指定的cookie,則返回它的值   
   }
   return "";
}
 
function delCookie(name)//刪除cookie
{
   document.cookie = name+"=;expires="+(new Date(0)).toGMTString();
}
 
function getCookie(objName){//擷取指定名稱的cookie的值
    var arrStr = document.cookie.split("; ");
    for(var i = 0;i < arrStr.length;i ++){
        var temp = arrStr[i].split("=");
        if(temp[0] == objName) return unescape(temp[1]);
   }
}
 
function addCookie(objName,objValue,objHours){      //添加cookie
    var str = objName + "=" + escape(objValue);
    if(objHours > 0){                               //為時不設定到期時間,瀏覽器關閉時cookie自動消失
        var date = new Date();
        var ms = objHours*3600*1000;
        date.setTime(date.getTime() + ms);
        str += "; expires=" + date.toGMTString();
   }
   document.cookie = str;
}
 
function SetCookie(name,value)//兩個參數,一個是cookie的名子,一個是值
{
    var Days = 30; //此 cookie 將被儲存 30 天
    var exp = new Date();    //new Date("December 31, 9998");
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
 
function getCookie(name)//取cookies函數       
{
    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
    if(arr != null) return unescape(arr[2]); return null;
}
 
function delCookie(name)//刪除cookie
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
</script>

cookie實現自動登陸

直接帖代碼吧 代碼是我找的 不是自己寫的,不清楚的話再找我。我再寫一個簡單點的。

js 代碼

 代碼如下 複製代碼
<script type="&lt;/span">"text/javascript">
//寫cookies函數
function SetCookie(name,value)//兩個參數,一個是cookie的名子,一個是值
{ var Days = 30;
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000); //此 cookie 將被儲存 30 天
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}// escape拿來幹嘛?記住解決中文問題的。
//上面就算新定義了一個cookie
//取cookies函數
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
//刪除cookie
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
SetCookie ("xiaoqi", "3")
alert(getCookie('xiaoqi'));
</script>

<!---->3.操作cookie學會了,還有什麼難的呢。當使用者開啟這個網址的時候就去getcookie,你會說怎麼去判斷呢。這確實是個問題。不過 想解決還不簡單。直接把所有的cookie取出來 迴圈 看是否有一個cookie等於上次登入的時候setcookie的名字,你可以把名字設定複雜點。可以直接判斷是否有這個cookie名就完成了。原理就是這樣。簡單吧。跟我走 沒錯的。<o:p></o:p>
<!---->4.好啦。Set和get都學會了 還有什麼難的呢 哎 實在有什麼難的就找我拉。我是一個有責任心的男人 哈哈。<o:p></o:p>
<!---->5.最後還是帖下代碼拉。我直接用jsp 判斷 ,然後跳轉。簡潔些。看好了。<o:p></o:p>

jsp代碼
login.jsp

 代碼如下 複製代碼

<%
Cookie[] cookie = request.getCookies();
if(cookie!=null){
for(int i = 0; i < cookie.length; i++){
Cookie myCookie = cookie[i];
if(myCookie.getName().equals( "usercookie ")){
response.sendRedirect( "跳轉到某使用者的介面 ");
}}}%>

PS:“usercookie”是第一次登入的時候存入的cookie名。<o:p></o:p>
哈哈 就這樣吧 !<o:p></o:p>
忘了寫一點 跟我繼續。。<o:p></o:p>
如果你不想用js 比如用java的話 存入cookie也是可以實現的。廢話少說 我直接帖代碼吧 程式員 一看就懂 呵呵
java 代碼

 代碼如下 複製代碼

Cookie usercookie=new Cookie( "usercookie ",user.getUsername());
usercookie.setMaxAge(24*60*60);
usercookie.setPath( "/koubeiTest/ ");
usercookie.setDomain( "www.111cn.net ");
ServletActionContext.getResponse().addCookie(usercookie);

需要我解釋 setPath和setDomain麼。算了 打字都累了 。不懂自己去查吧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.