* Cookie分为两列,一个是名字,一个是值,数据类型都是String
* 如何创建一个Cookie在服务端创建的 Cookie=new Cookie(String name,String val);
* 如何将一个Cookie添加到客户端 response.addCookie(c);
* 如何读取Cookie(从客户端读到服务器)request.getCookies();
* Cookie信息是保存在客户端的,因此安全性不高
* cookie的生命周期可以在创建时设置
*
* Cookie完成的功能
* 保存用户名,密码,在一定时间不用重新登陆
*
* 记录用户访问网站的喜好,有无背景音乐 网页背景颜色
*
* 网站的个性化 定制网站个性服务
*
* Cookie和Seesion的比较
* Cookie保存在客户端,session保存在服务器端
* 安全性
* cookie的安全性比session要弱
* 网络传输量
* Cookie通过网络在客户端与服务器端传输
* 而session保存在服务器端,不需要传输
* 生命周期
* cookie生命周期是累计的,从创建开始计时,过了设定的时间就无效
* Session的生命周期是间隔的,从创建开始是如果在设定的时间间隔没有访问过session就无效
* 如果在规定时间内访问了session,那么session的生命周期就开始重新计算
* 关机会对session生命周期造成影响 但是对Cookie没有影响
*
* **********/
//如何创建Cookie
public class CookieDemo extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
try{
resp.setContentType("text/html;charset=gbk");
PrintWriter pw = resp.getWriter();
//在服务器端创建一个Cookie
Cookie myCookie = new Cookie("color1","red");
//该Cookie的存在时间 过完30秒就会自动取消 不管有没有人用他
myCookie.setMaxAge(30);
//3将 该cookie写回到客户端
resp.addCookie(myCookie);
pw.println("已经创建了cookie");
}catch(Exception e){
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req,resp);
}
}
/*
*
* 读取Cookie
* */
public class GetCookies extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
try{
resp.setContentType("text/html;charset=gbk");
PrintWriter pw = resp.getWriter();
Cookie[] allCookies = req.getCookies();
int i = 0;
if(allCookies != null){
for(i = 0; i < allCookies.length; i++){
Cookie temp = allCookies[i];
if(temp.getName().equals("color1")){
String val = temp.getValue();
pw.println("color1=" + val);
break;
}
}
if(allCookies.length == i){
pw.println("cookie 过期");
}
}else{
pw.println("该网站不存在Cookie");
}
}catch(Exception e){
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req,resp);
}
}
*
* 读取Cookie
* */
public class GetCookies extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
try{
resp.setContentType("text/html;charset=gbk");
PrintWriter pw = resp.getWriter();
Cookie[] allCookies = req.getCookies();
int i = 0;
if(allCookies != null){
for(i = 0; i < allCookies.length; i++){
Cookie temp = allCookies[i];
if(temp.getName().equals("color1")){
String val = temp.getValue();
pw.println("color1=" + val);
break;
}
}
if(allCookies.length == i){
pw.println("cookie 过期");
}
}else{
pw.println("该网站不存在Cookie");
}
}catch(Exception e){
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req,resp);
}
}
public class DelCookies extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
try{
resp.setContentType("text/html,charset=gbk");
PrintWriter pw = resp.getWriter();
//从客户端得到所有cookie信息
Cookie[] allCookies = req.getCookies();
int i = 0;
if(allCookies != null){
for(i = 0; i < allCookies.length; i++){
Cookie temp = allCookies[i];
if(temp.getName().equals("color1")){
temp.setMaxAge(0);
pw.println("该Cookie删除了");
break;
}
}
if(allCookies.length == i){
pw.println("cookie 过期");
}
}else{
pw.println("该网站不存在Cookie");
}
}catch(Exception e){}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req,resp);
}
}