JSP学习3

Cookie

在JSP中使用cookie

创建cookie

Cookie objcookie = new Cookie("mycookie","Cookie test");

建立了Cookie之后,该Cookie数据还必须传送到客户端。

response.addCookie(objcookie);

读Cookie

Cookie[] 数组变量名 = request.getCookies();

在客户端传来的Cookie数据类型都是数组类型,因此要得到其中某一项指定的Cookie对象,需要遍历数组来找。调用getName()方法检查各个Cookie的名字,直至找到目标Cookie,然后对该Cookie调用getValue()方法取得与指定名字关联的值。

<%
Cookie[] cookies = request.getCookies();
if(cookies=null){
    out.println("no cookie");
}else{
  for(int i=0;i<cookies.length;i++){
   if(cookies[i].getName().equals("cookie_name")){
   out.println(cookies[i].getValue()+"<br/>");
}

}
}

%>

设置Cookie的存在期限

<%

Cookie login = new Cookie("today","true");

login.setMaxAge(86400);

reponse.addCookie(login);

%>

删除Cookie

必须使用前面的setMaxAge()方法,并将Cookie的存在期限设置为0.

login.setMaxAge(0);

writeCookie.jsp写入一个Cookie到客户端

<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>操纵Cookie示例-写入Cookie</title>
</head>
<body>
<h2>操纵Cookie示例-写入Cookie</h2>
<%
        try {
        Cookie _Cookie = new Cookie("mycookie", "COOKIE_TEST");
        _Cookie.setMaxAge(10 * 60); // 设置Cookie的存活时间为10分钟
        response.addCookie(_Cookie); // 写入客户端硬盘
        out.print("已经把Cookie写入客户端");
    } catch (Exception e) {
        System.out.println(e);
    }
%>
</body>
</html>

readCookie.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>操纵Cookie示例-读取Cookie</title>
</head>
<body>
<h2>操纵Cookie示例-读取Cookie</h2>
<%
    // 将当前站点的所有Cookie读入并存入Cookies数组中
    Cookie[] Cookies = request.getCookies();
    Cookie sCookie = null;
    String cookieName = null;
    String cookieValue = null;
    if (Cookies == null) // 如果没有任何Cookie
        out.print("没有Cookie");
    else {
        try {
            if (Cookies.length == 0) {
        System.out.println("客户端禁止写入cookie");
            } else {
        for (int i = 0; i < Cookies.length; i++) { // 循环列出所有可用的Cookie

            sCookie = Cookies[i];
            cookieName = sCookie.getName();
            cookieValue = sCookie.getValue();
            if (cookieName.equals("mycookie")) {
                out.println(cookieName + "->" + cookieValue
                + "<br>");
                break;
            }
        }
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    }
%>
</body>
</html>

readCookie.jsp必须注意两个问题;一是读取Cookie数组时需要判断是否为null,为空则不能进行下一步操作。二是对Cookie的数组长度进行判断,如果Cookie.length=0,说明该客户端浏览器不支持Cookie。

原文地址:https://www.cnblogs.com/hengx/p/14130923.html