首先介绍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>
运行结果:
刚开始的界面,我们下面输入“张三”
这是运行成功后的结果。