什么是Cookie呢?——找度娘問問
Cookie,有時也用其復數形式 Cookies,指某些網站為了辨別用戶身份、進行 session 跟蹤而儲存在用戶本地終端上的數據(通常經過加密)。定義于 RFC2109 和 2965 中的都已廢棄,最新取代的規范是 RFC6265[1] 。(可以叫做瀏覽器緩存) 中文名 儲存在用戶本地終端上的數據 外文名 Cookie
貼上代碼
<!--CookieTest.jsp文件--><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/Javascript">function resetValue(){ document.getElementById("user").value="";<!--備注:這里獲取的是元素的id值--> document.getElementById("pwd").value="";}</script></head><body><%String name=null;String pwd= null;Cookie[] allCookie=request.getCookies();//for(int i=0;allCookie[i]!=null&&i<allCookie.length;i++){//這里注釋的是自己最初寫錯的代碼 for(int i=0;allCookie!=null&&i<allCookie.length;i++){// if(allCookie[i]==myCookie){//cookie有自己定義的比較方法:**.getName().equals("自己設置cookie的值")** if(allCookie[i].getName().equals("userAndPwd")){// myCookie. name= allCookie[i].getValue().split("-")[0]; pwd= allCookie[i].getValue().split("-")[1]; //調用spilt方法,切割,從而取得name和pwd的思想。 } } if(name==null){ name=""; } if(pwd==null){ pwd=""; }%><form action="login.jsp" method="post"><table><tr><td>賬號:</td></tr>>總結:id是用于html內部。如調用document.getElementById()或者是用于標識元素的屬性,是唯一的。>而name是用來提交表單,用于和后臺進行交互,可以重復取值。>value則是指的是對象的值,如docunmet.getElementById("id").value;用于取值使用。 <tr><td><input type="text" id="user"name="myUser"value="<%=name%>"/></td></tr><tr><td>密碼:</td></tr><tr><td><input type="passWord"id="pwd"name="myPwd"value="<%=pwd%>"/></td></tr><tr><td >記住密碼:</td></tr><tr><td><input type="checkbox"id="remeber" name="myRemember" value="myRemember"/></td></tr><tr><td><input type="submit"id="login"value="登陸"name="myLogin"></td></tr><tr><td><input type="button"id="reset"value="重置"name="myReset"onclick="resetValue()"/> </td></tr><!--這里是調用了點擊事件。onclick()--></table></form></body></html><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>welcome to my world!<%//String name=(String)request.getAttribute("myUser");//String pwd=(String)request.getAttribute("myPwd");//String remeber=(String)request.getAttribute("myRemeber");//這里注釋的是自己最初寫錯的代碼,String name=request.getParameter("myUser");String pwd=request.getParameter("myPwd");String remeber=request.getParameter("myRemember");**getAttribute()和getParameter()的區別> getAttribute表示從request范圍取得設置的屬性,必須要先setAttribute設置屬性,才能通過getAttribute來取得,設置與取得的為Object對象類型 getParameter表示接收參數,參數為頁面提交的參數,包括:表單提交的參數、URL重寫(就是xxx?id=1中的id)傳的參數等,因此這個并沒有設置參數的方法(沒有setParameter),而且接收參數返回的不是Object,而是String類型**if("myRemember".equals(remeber)){**這里輸入的應該是記住密碼的按鈕的value值,進行將輸入的結果和value比較。我最初輸入的按鈕的name值,結果就是報錯了。****.equals()前后的兩個參數,最好不要換位置,假如remember是null,調試就會報錯。 > 引用javaAPIString的equals方法。public boolean equals(Object anObject)將此字符串與指定的對象比較。當且僅當該參數不為 null,并且是與此對象表示相同字符序列的 String 對象時,結果才為 true。 **結論就是equals的前面是字符串,后面的是參數**覆蓋:類 Object 中的 equals參數:anObject - 與此 String 進行比較的對象。 返回:如果給定對象表示的 String 與此 String 相等,則返回 true;否則返回 false。** Cookie myCookie=new Cookie("userAndPwd",name+"-"+pwd); **JSP是調用Cookie對象相應的構造函數Cookie(name,value)用合適的名字和值來創建也就是說Cookie初始化的形式是鍵值對。也就是第一個參數就是該cookie的名字,第二個就是Cookie存儲的值** myCookie.setMaxAge(60*60*24*7); response.addCookie(myCookie); System.out.總結:1.在計算機的世界里聽計算機的,言外之意就是多看API記住那些方法,而不是自己創造,因為計算機不會處理不是它的方法的,就是這么霸道的計算機。 2.區分了id、name、value的區別及使用場合。 3.記住了equals方法的正確使用。 4.用spilt的方法來切割字符串。 5.getAttribute()和getParameter()方法的區分。 6.運行出錯時,檢測代碼,因為計算機說你有問題,那就一定有問題。就是這么認真的計算機。 7.通過犯錯從而加強了對知識點的掌握。附上相關網址: cookie的簡介及用法:http://www.yesky.com/282/167282.shtml id和name和value的區別:https://zhidao.baidu.com/question/578604187.html getAttribute()和getParameter()的區別和用法: http://blog.csdn.net/h378588270/article/details/12912611
新聞熱點
疑難解答