什么是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.PRintln(name+"..."+pwd+"...."+remeber); //用此方法来检测代码是否运行成功。}response.sendRedirect("Out01.jsp");//response的跳转界面的方法。跳转到Out01.jsp%></body></html>总结: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
新闻热点
疑难解答