首先介绍cookie的一些方法
response.addCookie(Cookie cookie)是将一个cookie对象传入客户端。
Cookie cookie=new Cookie(String name,String value):构造一个cookie对象
request.getCookies():得到所有的cookie对象
cookie.getName():得到此cookie对象的名字
cookie.getValue(String name):得到对应名称的cookie的值
其次我来说一些注意事项:
1.在使用cookie的时候,首先要注意浏览器是否支持cookie,可以用过设置浏览器,使其支持使用cookie
2.如果要使cookie保存中文的信息,需要使用java.net.URLEncoder类的encode方法进行编码,需要使用java.net.URLDecoder的decode方法进行解码,下面案例中会使用到。
这种方法和String类的编码和解码类似,String的编码方法是byte[] b=str.getBytes();//这是使用本地默认的编码格式进行编码,或者是byte[] b=str.getBytes("utf-8");//这种是以utf-8的方式进行解码,也可以使用其他的类型。我们要用同一种编码格式进行解码和编码,不然有可能会出现乱码问题,这种编码和解码的方式也可以解决get方式乱码问题。
最后,我们进行实例演示
这是我的文件目录
index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.net.URLDecoder" %> <!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>取出Cookie</title> </head> <body> <%! String name=""; %> <% Cookie[] cookies=request.getCookies(); if(cookies!=null){ for(Cookie c:cookies){ if(c.getName().equals("name")){ name=URLDecoder.decode(c.getValue(),"utf-8");//对字符串进行解码,类似于字符串的解码 } } } %> <form name="form" action="deal.jsp" method="post"> <% if("".equals(name)){ %> <strong>欢迎初次登录</strong> <% }else{ %> <strong>欢迎再次登录,已保存上次登录用户名</strong> <%} %><br> 请输入姓名:<input type="text" name="name" value="<%=name%>"> <input type="submit" value="提交"> </form> </body> </html>
deal.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.URLEncoder" %> <!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>存储Cookie</title> </head> <body> <% request.setCharacterEncoding("utf-8");//对request传过来的参数设置编码格式,以免传入中文的时候出现问题,必须在request.getParameter之前设置 String name=URLEncoder.encode(request.getParameter("name"),"utf-8");//对字符串以utf8的格式进行编码 Cookie cookie=new Cookie("name",name); response.addCookie(cookie); %> <script type="text/javascript">window.location.href="index.jsp"</script><!-- js中实现页面的跳转 --> </body> </html>
运行结果:
刚开始的界面,我们下面输入“张三”
这是运行成功后的结果。