分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

04_web基础()之cookie操作

发布时间:2023-09-06 01:48责任编辑:熊小新关键词:暂无标签

30、31、32、Cookie的操作:

1):创建Cookie和设置共享数据:
  Cookie c = new Cookie(String name,String value);
  Cookie c = new Cookie("curreentName","wuji");
2):把Cookie放入响应中,把Cookie的共享数据传递给浏览器,由浏览器保存.
  response对象.addCookie(c);
3):获取Cookie和Cookie中的数据.(从请求中获取)

4):Cookie的name和value不支持中文.
   解决方案:对中文做编码和解码.
//放:
 String msg="你好";
        String encode = URLEncoder.encode(msg, "UTF-8");
        System.out.println(encode);
        Cookie c2 = new Cookie("curreentName2",encode);
//取:
            String name = cookie.getName();
            String value = cookie.getValue();
            String decode = URLDecoder.decode(value, "UTF-8");

5):修改Cookie指定名的value值.
   方式1: 根据name获取被修改的Cookie对象,在调用setValue方法即可.
   方式2: 重新创建一个同名的Cookie.

   注意:修改之后,要调用response对象.addCookie(c);

6):Cookie的生命周期:(Cookie中的共享数据可以保留多久)
   缺省情况:关闭浏览器Cookie就丢失了.
   通过Cookie对象的setMaxAge(int seconds):设置Cookie可以存活多久.
      seconds>0:可以存活多少秒.
      seconds<0:存放在浏览器进程中,闭浏览器Cookie就丢失了.
      seconds=0:删除Cookie.
7):删除Cookie:
   Cookie对象.setMaxAge(0);
8):Cookie的缺陷.(重点中的重点)
   1>:中文处理麻烦.
   2>:多人共用同一台电脑,信息不安全.
   3>:一个Cookie只能存储一个简单类型的数据.
      若要同时存储,账号,密码,邮件等等.
      主要的原因是:Cookie的value只能存储String,不能存Object.
   4>:Cookie的大小和数量限制:
        Cookie大小限制在4KB之内;
       * 一台服务器在一个客户端最多保存20个Cookie;
       * 一个浏览器最多可以保存300个Cookie;
   5>:Cookie的原理:把共享数据存储在浏览器中.
         每次请求,再把共享数据带到服务端.

代码:

 1 package com.day07.web.demo2.controller; 2 ?3 import javax.servlet.ServletException; 4 import javax.servlet.annotation.WebServlet; 5 import javax.servlet.http.Cookie; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 import java.io.IOException;10 import java.io.PrintWriter;11 12 /**13 ?* Created by Administrator on 2017/12/7.14 ?*/15 @WebServlet("/cookie")16 public class CookieServlet extends HttpServlet {17 ????@Override18 ????public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {19 ????????//请求乱码处理20 ????????req.setCharacterEncoding("utf-8");21 ????????//响应乱码处理22 ????????resp.setContentType("text/html;charset=UTF-8");23 ????????//操作cookie24 25 ????????//增加26 ????????Cookie cookie1 = new Cookie("name1","wuji1");27 ????????resp.addCookie(cookie1);28 ????????Cookie cookie2 = new Cookie("name2","wuji2");29 ????????resp.addCookie(cookie2);30 ????????//删除31 ???????/* 6):Cookie的生命周期:(Cookie中的共享数据可以保留多久)32 ????????????????缺省情况:关闭浏览器Cookie就丢失了.33 ????????????????通过Cookie对象的setMaxAge(int seconds):设置Cookie可以存活多久.34 ????????????????seconds>0:可以存活多少秒.35 ????????????????seconds<0:存放在浏览器进程中,闭浏览器Cookie就丢失了.36 ????????????????seconds=0:删除Cookie.37 ????????7):删除Cookie:38 ????????Cookie对象.setMaxAge(0);*/39 ????????cookie1.setMaxAge(0);40 ????????//必须 ?resp.addCookie(cookie); 才可以生效41 ????????resp.addCookie(cookie1);42 ????????//修改43 44 ????????//查询45 46 ????????//获取输出对象47 ????????PrintWriter writer = resp.getWriter();48 ????????//输出信息49 ????????writer.println("你好师姐!");50 51 52 ????}53 }
CookieServlet
 1 package com.day07.web.demo2.controller; 2 ?3 import javax.servlet.ServletException; 4 import javax.servlet.annotation.WebServlet; 5 import javax.servlet.http.Cookie; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 import java.io.IOException;10 import java.io.PrintWriter;11 12 /**13 ?* Created by Administrator on 2017/12/7.14 ?*/15 @WebServlet("/cookie2")16 public class Cookie2Servlet extends HttpServlet {17 ????@Override18 ????public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {19 ????????//请求乱码处理20 ????????req.setCharacterEncoding("utf-8");21 ????????//响应乱码处理22 ????????resp.setContentType("text/html;charset=UTF-8");23 ????????//操作cookie24 25 ????????//删除26 ????????//修改27 28 ????????//查询29 ????????Cookie[] cookies = req.getCookies();30 ????????for (int i=0;i<cookies.length;i++){31 ????????????Cookie cookie = cookies[i];32 ????????????//取key33 ????????????String name = cookie.getName();34 ????????????//取值35 ????????????String value = cookie.getValue();36 ????????????//打印37 ????????????System.out.println(name+"="+value);38 39 ????????????cookie.setValue("zhaoming");40 ????????????resp.addCookie(cookie);41 ????????}42 43 ????????//获取输出对象44 ????????PrintWriter writer = resp.getWriter();45 ????????//输出信息46 ????????writer.println("你好师姐----获取cookie的数据!");47 48 49 ????}50 }
Cookie2Servlet

04_web基础()之cookie操作

原文地址:https://www.cnblogs.com/newAndHui/p/8777916.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved