初识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)条网友点评
有错误地方欢迎指出,互相学习。
不懂可以评论区或私信问博主哦~