zoukankan      html  css  js  c++  java
  • servlet中的cookie

    image

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

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

    //如何创建cookie
    package 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:UsersAdministratorAppDataRoamingMicrosoftWindowsCookies,Administrator根据自己的实际情况修改。

    效果如下:

    如何读取cookie呢?

    //如何读取cookie
    package 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?

    //如何删除cookie
    package 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文件的。

  • 相关阅读:
    Luogu P5030 长脖子鹿放置(网络流)
    BZOJ3037 创世纪(基环树DP)
    LuoguP1240 诸侯安置
    LuoguP3128 [USACO15DEC]最大流Max Flow (树上差分)
    总结-一本通提高篇&算竞进阶记录
    LuoguP5022 旅行 (割点,基环树)
    $tsinsenA1067$
    $SCOJ4427 Miss Zhao's Graph$
    $Edmonds-Karp$[网络流]
    $AC自动机$
  • 原文地址:https://www.cnblogs.com/OliverQin/p/4992861.html
Copyright © 2011-2022 走看看