寫給CssRain:http://www.
---痕愛小家伙<o:p></o:p>
Cookie 網(wǎng)站或論壇的自動登錄大多是采用cookie技術(shù)實(shí)現(xiàn),很難嗎。哈哈 跟我走 一點(diǎn)都不難
<o:p></o:p>
1.我們首先來看下cookie實(shí)現(xiàn)自動登錄的原理。<o:p></o:p>
當(dāng)用戶登錄后,通??梢赃x擇多久不用再登錄,這里就是cookie的有效期設(shè)置了,登錄后 cookie會保存在本地硬盤中,當(dāng)然這個(gè)我們不用去關(guān)心拉。然后當(dāng)用戶下次登錄,系統(tǒng)會先去檢測當(dāng)前用戶的cookie是否存在,存在的話則跳到相應(yīng)頁面,如果不存在則應(yīng)該是在登錄頁面。原理的簡單分析就是這樣。簡單吧。
<o:p></o:p>
2.接下來 我們瞧瞧js是怎樣操作cookie的 跟我走。。<o:p></o:p>
還是直接帖代碼吧 代碼是我找的 不是自己寫的,不清楚的話再找我。我再寫一個(gè)簡單點(diǎn)的。
js 代碼
- <script type="</span">"text/javascript">
- //寫cookies函數(shù)
- function SetCookie(name,value)//兩個(gè)參數(shù),一個(gè)是cookie的名子,一個(gè)是值
- { 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拿來干嘛?記住解決中文問題的。
- //上面就算新定義了一個(gè)cookie
-
- //取cookies函數(shù)
- 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學(xué)會了,還有什么難的呢。當(dāng)用戶打開這個(gè)網(wǎng)址的時(shí)候就去getcookie,你會說怎么去判斷呢。這確實(shí)是個(gè)問題。不過 想解決還不簡單。直接把所有的cookie取出來 循環(huán) 看是否有一個(gè)cookie等于上次登錄的時(shí)候setcookie的名字,你可以把名字設(shè)置復(fù)雜點(diǎn)??梢灾苯优袛嗍欠裼羞@個(gè)cookie名就完成了。原理就是這樣。簡單吧。跟我走 沒錯(cuò)的。<o:p></o:p>
4.好啦。Set和get都學(xué)會了 還有什么難的呢 哎 實(shí)在有什么難的就找我拉。我是一個(gè)有責(zé)任心的男人 哈哈。<o:p></o:p>
5.最后還是帖下代碼拉。我直接用jsp 判斷 ,然后跳轉(zhuǎn)。簡潔些。看好了。<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( "跳轉(zhuǎn)到某用戶的界面 ");
- }}}%>
PS:“usercookie”是第一次登錄的時(shí)候存入的cookie名。<o:p></o:p>
哈哈 就這樣吧 !<o:p></o:p>
忘了寫一點(diǎn) 跟我繼續(xù)。。<o:p></o:p>
如果你不想用js 比如用java的話 存入cookie也是可以實(shí)現(xiàn)的。廢話少說 我直接帖代碼吧 程序員 一看就懂 呵呵
java 代碼
- Cookie usercookie=new Cookie( "usercookie ",user.getUsername());
- usercookie.setMaxAge(24*60*60);
- usercookie.setPath( "/koubeiTest/ ");
- usercookie.setDomain( "www. ");
- ServletActionContext.getResponse().addCookie(usercookie);
需要我解釋 setPath和setDomain么。算了 打字都累了 。不懂自己去查吧