3、JSP中的Cookie 用于存储 web 页面的用户信息。

cookie 在平时生活中的运用

存储用户在网页上的登陆信息,包括账号和密码。

有的网站,登陆的时候,会出现一个选项,问你是否要一周内或者一个月内保持登陆状态。
如果你选了,那么一周之内,都不需要再输入账号密码。
这个功能,就是靠cookie来实现的

cookie原理示意图

什么是cookie

Cookie是一种浏览器和服务器交互数据的方式。
Cookie是由服务器端创建,但是不会保存在服务器
创建好之后,发送给浏览器。浏览器保存在用户本地
下一次访问网站的时候,就会把该Cookie发送给服务器。

服务器端创建cookie

在web目录下创建一个文件 setCookie.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
 
<%
    Cookie c = new Cookie("name", "Gareen");     <%--创建了一个cookie,名字是"name" 值是"Gareen" -- %>
    c.setMaxAge(60 * 24 * 60);   <%-- 表示这个cookie可以保留一天,如果是0,表示浏览器一关闭就销毁 -- %>
    c.setPath("/");       <%-- Path表示访问服务器的所有应用都会提交这个cookie到服务端-- %><%--如果其值是 /a, 那么就表示仅仅访问 /a 路径的时候才会提交 cookie -- %>

response.addCookie(c);  <%--通过response把这个cookie保存在浏览器端 -- %>
%>
 
<a href="getCookie.jsp">跳转到获取cookie的页面</a>

 

访问地址:http://127.0.0.1/setCookie.jsp

通过HTTP调试工具也可以在Cookies这一栏看到

 

把该Cookie发送给服务器

在web目录下创建文件getCookie.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
 
<%
    Cookie[] cookies = request.getCookies();<%-- 表示获取所有浏览器传递过来的cookie-- %>
    if (null != cookies)  <%--如果浏览器端没有任何cookie,得到的Cookie数组是null -- %>
           for (int d = 0; d <= cookies.length - 1; d++) {<%--遍历所有的cookie-- %>
                  out.print(cookies[d].getName() + ":" + cookies[d].getValue() + "<br>"); 
}

%>

通过HTTP调试工具也可以看到浏览器在请求信息里提交了这个Cookie。

注; JSESSIONID 这个不是我们自己设置的cookie,这是tomcat设置的cookie

 

 

 

posted @ 2019-06-05 17:32  Strugglinggirl  阅读(992)  评论(0编辑  收藏  举报