首页 > 学院 > 开发设计 > 正文

servlet中的cookie

2019-11-14 15:00:39
字体:
来源:转载
供稿:网友

image

cookie的机制是:从客户端(浏览器)发送请求到服务器,然后服务器把接受的信息回写到客户端,这个信息在客户端跟服务器之间进行交互。

下面是一个创建cookie的小案例

 

//如何创建cookiepackage com.oliver.learn;import javax.servlet.http.*;import java.io.*;public class TestCookie1 extends HttpServlet{    //处理Get请求    public void doGet(HttpServletRequest req,HttpServletResponse res){         //异常处理                 //处理中文乱码            res.setContentType("text/html;charset=gbk");             try {                PRintWriter pw= res.getWriter();                //当用户访问该servlet时将信息创建到cookie中                //1.现在服务器端创建一个cookie                Cookie mycookie = new Cookie("color","red");                                //2.该cookie存在的时间                mycookie.setMaxAge(30);                                //3.将cookie写回到客户端                res.addCookie(mycookie);                                pw.println("cookie已经创建!请到c盘相应路径下查看");                pw.println("");            } catch (IOException e) {                                e.printStackTrace();            }                            }}

cookie存储在C盘的路径为:C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Cookies,Administrator根据自己的实际情况修改。

效果如下:

如何读取cookie呢?

//如何读取cookiepackage com.oliver.learn;import javax.servlet.http.*;import java.io.*;public class GetCookie1 extends HttpServlet{    //处理Get请求    public void doGet(HttpServletRequest req,HttpServletResponse res){        try{            res.setContentType("text/html;charset=gbk");            PrintWriter pw=res.getWriter();            //从客户端获取cookie信息            Cookie [] allcookie=req.getCookies();                      int i=0;            //如果cookie不为空。。。            if(allcookie!=null){                //从中取出cookie                for(i=0;i<allcookie.length;i++){                                        //依次取出                    Cookie temp=allcookie[i];                    //判断一下                    if(temp.getName().equals("color")){                        String val=temp.getValue();                        pw.println(val);                        break;                    }                }                if(allcookie.length==i){                    pw.println("cookie过期");                }            }else{                pw.println("cookie已经过期或者不存在color这个cookie!");            }                      } catch (IOException e) {                      e.printStackTrace();          }    }    }
得到cookie

 

如何去删除cookie?

//如何删除cookiepackage com.oliver.learn;import javax.servlet.http.*;import java.io.*;public class DeleteCookie1 extends HttpServlet{    //处理Get请求    public void doGet(HttpServletRequest req,HttpServletResponse res){        try{            res.setContentType("text/html;charset=gbk");            PrintWriter pw=res.getWriter();            //从客户端获取cookie信息            Cookie [] allcookie=req.getCookies();                      int i=0;            //如果cookie不为空。。。            if(allcookie!=null){                //从中取出cookie                for(i=0;i<allcookie.length;i++){                                        //依次取出                    Cookie temp=allcookie[i];                    //判断一下                    if(temp.getName().equals("color")){                        temp.setMaxAge(0);                        pw.println("cookie已经删除");                        break;                    }                }                if(allcookie.length==i){                    pw.println("cookie过期");                }            }else{                pw.println("cookie已经过期或者不存在color这个cookie!");            }                      } catch (IOException e) {                      e.printStackTrace();          }    }    }

 

表明cookie已经删除,此时去C盘中不存在cookie文件的。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表