论坛首页 Web前端技术论坛

javascript之cookie实现自动登陆

浏览 2609 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2010-04-18  

写给CssRain:http://www.cssrain.cn

                                                                                                                                                                             ---<o:p></o:p>

Cookie 网站或论坛的自动登录大多是采用cookie技术实现,很难吗。哈哈 跟我走 一点都不难

<o:p></o:p>

1.我们首先来看下cookie实现自动登录的原理。<o:p></o:p><!---->

<!---->

当用户登录后,通常可以选择多久不用再登录,这里就是cookie的有效期设置了,登录后 cookie会保存在本地硬盘中,当然这个我们不用去关心拉。然后当用户下次登录,系统会先去检测当前用户的cookie是否存在,存在的话则跳到相应页面,如果不存在则应该是在登录页面。原理的简单分析就是这样。简单吧。

<o:p></o:p>

2.接下来 我们瞧瞧js是怎样操作cookie的 跟我走。。<o:p></o:p><!---->

还是直接帖代码吧 代码是我找的 不是自己写的,不清楚的话再找我。我再写一个简单点的。

 

 

js 代码
  1. <script type="&lt;/span">"text/javascript">
  2. //写cookies函数
  3. function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值
  4. { var Days = 30;
  5. var exp = new Date(); //new Date("December 31, 9998");
  6. exp.setTime(exp.getTime() + Days*24*60*60*1000); //此 cookie 将被保存 30 天
  7. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  8. }// escape拿来干嘛?记住解决中文问题的。
  9. //上面就算新定义了一个cookie
  10. //取cookies函数
  11. function getCookie(name)
  12. {
  13. var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
  14. if(arr != null) return unescape(arr[2]); return null;
  15. }
  16. //删除cookie
  17. function delCookie(name)
  18. {
  19. var exp = new Date();
  20. exp.setTime(exp.getTime() - 1);
  21. var cval=getCookie(name);
  22. if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
  23. }
  24. SetCookie ("xiaoqi", "3")
  25. alert(getCookie('xiaoqi'));
  26. </script>

 

 

<!---->3.操作cookie学会了,还有什么难的呢。当用户打开这个网址的时候就去getcookie,你会说怎么去判断呢。这确实是个问题。不过 想解决还不简单。直接把所有的cookie取出来 循环 看是否有一个cookie等于上次登录的时候setcookie的名字,你可以把名字设置复杂点。可以直接判断是否有这个cookie名就完成了。原理就是这样。简单吧。跟我走 没错的。<o:p></o:p>

<!---->4.好啦。Setget都学会了 还有什么难的呢 哎 实在有什么难的就找我拉。我是一个有责任心的男人 哈哈。<o:p></o:p>

<!---->5.最后还是帖下代码拉。我直接用jsp 判断 ,然后跳转。简洁些。看好了。<o:p></o:p>

 

jsp代码
  1. login.jsp
  2. <%
  3. Cookie[] cookie = request.getCookies();
  4. if(cookie!=null){
  5. for(int i = 0; i < cookie.length; i++){
  6. Cookie myCookie = cookie[i];
  7. if(myCookie.getName().equals( "usercookie ")){
  8. response.sendRedirect( "跳转到某用户的界面 ");
  9. }}}%>

 

PS:usercookie”是第一次登录的时候存入的cookie名。<o:p></o:p>

哈哈 就这样吧 !<o:p></o:p>

忘了写一点 跟我继续。。<o:p></o:p>

如果你不想用js 比如用java的话 存入cookie也是可以实现的。废话少说 我直接帖代码吧 程序员 一看就懂 呵呵

 

java 代码
  1. Cookie usercookie=new Cookie( "usercookie ",user.getUsername());
  2. usercookie.setMaxAge(24*60*60);
  3. usercookie.setPath( "/koubeiTest/ ");
  4. usercookie.setDomain( "www.lifeng.com ");
  5. ServletActionContext.getResponse().addCookie(usercookie);

 

需要我解释 setPathsetDomain么。算了 打字都累了 。不懂自己去查吧

恐慌。。。。<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics