Js练习:操纵cookie

Js练习:操纵cookie

1.Js代码,login.js文件

// 用户的登陆信息写入cookies
function SetCookie(form) // 两个参数,一个是cookie的名子,一个是值
{   
     var name = form.name.value;
     var password = form.password.value;
     var Days = 1;  // 此 cookie 将被保存 7 天 
     var exp  =  new Date();  // 生成一个现在的日期,加上保存期限,然后设置cookie的生存期限!
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = "user="+ escape(name) + "/" + escape(password) + ";expires=" + exp.toGMTString();
}
// 取cookies函数--正则表达式(不会,学习正则表达式)  
function getCookie(name)      
{
     var arr = document.cookie.match( new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
     if(arr !=  nullreturn unescape(arr[2]); 
     return  null;
}
// 取cookies函数--普通实现      
   function   readCookie(form){   
       var   cookieValue   =   "";   
       var   search   =   "user=";   
       if(document.cookie.length   >   0)     {   
          offset   =   document.cookie.indexOf(search);
           if(offset !=  -1){     
              offset   +=   search.length;   
              end   =   document.cookie.indexOf(";",offset);   
               if   (end  ==  -1)   
                    end   =   document.cookie.length;
               // 获取cookies里面的值          
              cookieValue   =   unescape(document.cookie.substring(offset,end))
               if(cookieValue !=  null){
                     var str = cookieValue.split("/");
                    form.name.value = str[0];
                    form.password.value = str[1]; 
              }
          }   
      }    
  }   
// 删除cookie,(servlet里面:设置时间为0,设置为-1和session的范围是一样的),javascript好像是有点区别
function delCookie()
{
     var name = "admin";
     var exp =  new Date();
    exp.setTime(exp.getTime() - 1);
     var cval=getCookie(name);
     if(cval!= null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

 

2.jsp代码,文件login.jsp

<%@ page contentType="text/html; charset=gb2312" language="java"
     import="java.sql.*" errorPage=""%>
    
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        <title>javascript 控制 cookie</title>
        <link href="css/style.css" rel="stylesheet" type="text/css">
        <script type="text/javascript" src="js/login.js"></script>
    </head>
    <script language="javascript">
    function checkEmpty(form){
         for(i=0;i<form.length;i++){
             if(form.elements[i].value==""){
                alert("表单信息不能为空");
                 return  false;
            }
        }
    }
</script>
    <body onload="readCookie(form)"> <!-- 作为JavaScript控制的cookie-->
        <div align="center">
            <table width="324" height="225" border="0" cellpadding="0" cellspacing="0">
                <tr height="50">
                    <td ></td>
                </tr>
                <tr align="center">
                    <td background="images/back.jpg">
                        <br>
                        <br>
                        登陆
                        <form name="form" method="post" action="" onSubmit="return checkEmpty(form)">
                            <input type="hidden" name="id" value="-1">
                            <table width="268" border="1" cellpadding="0" cellspacing="0">
                                <tr align="center">
                                    <td width="63" height="30">
                                        用户名:
                                    </td>
                                    <td width="199">
                                        <input type="text" name="name" id="name">
                                    </td>
                                </tr>
                                <tr align="center">
                                    <td height="30">
                                        密码:
                                    </td>
                                    <td>
                                        <input type="password" name="password" id="password">
                                    </td>
                                </tr>
                            </table>
                            <br>
                            <input type="submit" value="提交">
                            <input type="checkbox" name="cookie" onclick="SetCookie(form)">记住我          
                        </form>
                    </td>
                </tr>
            </table>
        </div>
    </body>
</html>

 


目的:当你再次打开login.jsp页面,表单里面的内容已经写好了,是你上一次的登陆信息!


问题:1.JavaScript里面取cookie都是写死的,不是很灵活!
            2.JavaScript的cookie是按照字符串的形式存放的,所以拿出的时候,你要按照你放进去的形式来选择!
            3.本来是想实现自动登陆的,可我的每个页面都要session的检查!一个客户端,一个服务器端,没能实现!

 

 

你可能感兴趣的:(Js练习:操纵cookie)