cookie的使用方法以及注意事项

     首先介绍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>

运行结果:

 刚开始的界面,我们下面输入“张三”

这是运行成功后的结果。


猜你喜欢

转载自blog.csdn.net/lxh123456789asd/article/details/80390991