黑马程序员技术交流社区

标题: 【石家庄校区】Cookie [打印本页]

作者: 奔跑的蜗牛006    时间: 2018-5-21 15:24
标题: 【石家庄校区】Cookie
Cookie:会话

例子:打电话拨打,接通后可以说很多句话,说完后挂断;
案例一用户的上次访问时间(yyyy-MM-dd)用户数据私有化的过程---(保存购物车信息):
    ServletContext(共用区域,保存的数据可能会跑别人那)和request(只有一次请求,保存不了数据,只能保存最后一次的数据),所以只能使用会话技术;
会话技术:
    用户打开浏览器,访问很多页面,访问完以后关闭浏览器;称为一次会话;
常见的会话技术:
    Cookie :把数据保存在客户端浏览器(来回都携带着ID,可以更新浏览器保存的旧数据)
    Session:把数据保存在服务端.(它是一把钥匙,去服务端打开保存数据的那块区域)
Cookie的使用:
    (HttpServletResponse)向浏览器保存数据:      
        void addCookie(Cookie cookie);
    (HttpServletRequest)获得浏览器带过来的Cookie:
        Cookie[] getCookies();
创建一个Cookie对象:
    Cookie(String name,String value);
携带ID带过来--服务端--Cookie写回浏览器--接收请求Cookie(request.getCookies());        
静态HTML无法满足(if,while),所以使用JSP;
JSP:
    java服务器端的页面;动态网页开发技术;
    一开始SUN公司Servlet技术进行动态网页开发,由于Servelt在动态网页中输出表单太麻烦.所以使用JSP
JSP的执行过程:
    JSP = java代码 + HTML元素 + JSP内置东西
    JSP也会翻译成Servlet,编译成class
修改JSP编码为UTF-8;Window里;在WebContent里新建jsp文件;
访问JSP路径:
    会在Tomcat路径中的work文件中生成一个文件,包含class文件
在JSP中写java代码方式:
    <%! %>: !会被翻译成类中的成员部分,定义变量,方法,类;Servlet是单例的,线程不安全,所以不常用;
     <%  %>: 会翻译到类的Service方法内部的(局部)内容,定义变量,类,代码块(for,while),不显示
     <%= %>: 会翻译成Service方法内部的out.print()括号里的内容,所以<>内不加分号;会在页面显示
Cookie常用API
会话级别的Cookie:
    默认的Cookie,关闭浏览器Cookie就会销毁
持久级别的Cookie:
    可以设置COOkie的有效时间,关闭浏览器后还会存在,手动销毁持久性Cookie.setMaxAge(0)--前提是有效路径必须一致,单位是秒.
    setPath("工程名");设置Cookie的有效路径,为了删除持久性的Cookie
    setMaxAge(int age)单位是秒;60*60

例二:记录用户的商品浏览记录面试题:ArrayList的底层是数组,为什么它的长度可变?Cookie存储中文的问题:
String value = aa.getValue();
String a = URLDecoder.decode(value,"UTF-8");//%%343--"老谭"
String value = URLEncoder.encode("老谭","UTF-8");//"老谭"---%dfs@32%







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2