Servlet技术:Cookie

Cookie

Cookie是由服务端产生的,再发送给客户端保存的一组数据。
Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。

Cookie的作用
比如客户端访问服务端,第一次访问结束后,我就会产生一个Cookie,把这个Cookie保留到客户端,例如:我第一次打开一个网页去看一个视频,它就需要网络或上网流量请求服务器获取资源,看完后服务端就会将你看的这个视频放到一个Cookie里面,然后发送给客户端,我下次再去看这个视频的时候,我就无需连接网络直接在本地即可观看。
Cookie在本地以key-value的形式存在。

//Servlet中添加Cookie
Cookie coo = new Cookie("key", "value");//创建一个键值对的cookie对象
coo.setMaxAge(60*60*24*7);//设置cookie的生命周期
response.addCookie(coo);//添加到response中

//获取Cookie
Cookie  coo[] = request.getCookies();//获取request中cookie集合
for (Cookie co : coo) {
    System.out.println(co.getName() + ":" + co.getValue());
}

例:

package cn.xtnotes.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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;

public class Servlet6 extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		request.setCharacterEncoding("utf-8"); //设置请求数据编码
		response.setCharacterEncoding("utf-8");//设置响应数据编码
		//
		Cookie cookie1=new Cookie("name","张三");
		Cookie cookie2=new Cookie("age","123");
		response.addCookie(cookie1);
		cookie1.setMaxAge(15); //设置cookie保留时间为15秒
        response.addCookie(cookie2);
        cookie1.setMaxAge(15);
        //获取cookie
        Cookie[] cookies=request.getCookies();
        for(Cookie coo:cookies) {
        	System.out.println(coo.getName()+coo.getValue());
        }
}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

 

阅读剩余
THE END