初识Cookie
NOTE:浏览器首次访问服务器,双方都没有该cookie,当服务器获取到浏览器的相关信息后生成cookie,服务器自己保留对于该浏览器的cookie相关信息,并将该信息发送给浏览器,浏览器保存该信息到硬盘中,此时当浏览器再次访问该服务器时,服务器会和浏览器的cookie做对比,若一致则返回相应内容。
首先要知道:Cookie由服务器创建,由浏览器保存。
cookie的生存周期
>0 可以设置生存时长,数据存放在客户端硬盘里。
在有效时间内访问依旧可以获得当时的cookie。
例如:设置为5分钟有效期,其中5分钟就是有效时间。
=0 立刻杀死(不常用,少之又少)
即打开浏览器,浏览器获取了cookie,但是服务器会立刻“杀死”(删除)该cookie
后果:访问不成功:错误码500
-1 关闭浏览器即可消失,该cookie存在于内存
上才艺
查看cookie
创建cookie并添加到请求头
//存cookie
package Cookies;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/CookieServlet")
public class CookieServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("Text/Html;charset=UTF-8");//编码格式,懂的都懂。
//创建cookie对象
Cookie cookie1=new Cookie("user","Admin");//new一个cookie,以键值对方式存放,注意该分隔为“,”而不是":"
//设置cookie的生命周期:
cookie1.setMaxAge(60);//此处以秒为单位,格式可为(60*5),即5分钟。
response.addCookie(cookie1);//将cookie1存入浏览器的请求头。
}
}
遍历所有cookie后输出查看
package Cookies;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/GetCookieServlet")
public class GetCookieServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("Text/Html;charset=UTF-8");
PrintWriter out=response.getWriter();
//获取cookie
Cookie cookies[]=request.getCookies();
//遍历数组:
for (int i=0;i<cookies.length;i++){
String name=cookies[i].getName();//获取cookie名称
String value=cookies[i].getValue();//获取cookie值
out.print(name+":"+value+"<br>"+"<hr />");
}
}
}
NOTE:首先,上面的CookieServlet创建了一个cookie,并将创建的cookie添加到浏览器的请求头了(此时,不管服务器有没有,但是我请求头有,后面的遍历也会将该cookie输出。)然后GetCookieServlet去获取并输出cookie




文章有(1)条网友点评
有错误地方欢迎指出,互相学习。
不懂可以评论区或私信问博主哦~