A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 巴拉巴拉x 初级黑马   /  2018-5-21 10:35  /  625 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 巴拉巴拉x 于 2018-5-21 10:37 编辑



Cookie


会话技术



什么是会话技术
  • 用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为一次会话
  • 常见的会话技术
    • Cookie
      • 将数据保存到客户端浏览器
    • Session
      • 将数据保存到服务器

  • 出现的原因
    • ServletContext,是共享的域对象,不能给单个用户存储数据
    • ServletRuquest,域对象范围太小,不能保存多次添加的数据.
    • 由于以上都不能完成指定功能,所以使用Cookie来完成

使用Cookie来保存购物信息
  • 把数据保存到客户端
    • 一次请求会把对象ID带回浏览器,下次请求会带着这次的ID一起去访问另一对象,并把这个对象的ID也带回来,并保存到浏览器客户端.

使用Session保存购物信息
  • 把数据保存到服务器端
    • 客户端访问服务器,服务器会开辟一块区域,而且这块区域有一个地址值,响应的时候会把这个ID保存到浏览器客户端.

Cookie技术的使用
  • 向浏览器保存数据
    • HttpServletResponse类中的一个方法
      • void addCookie(Cookie cookie)

  • 获得浏览器带过来的Cookie
    • cookie.getgetValue(),

jsp的概述


  • 什么是jsp:Java代码 + HTML元素 + JSP内置的东西
    • Java Servlet Pages(Java服务器端页面)
  • 执行过程
    • JSP会被翻译成Servlet,然后再编译成class文件进行执行
  • 创建位置:在WebContent目录下创建
  • jsp的本质其实还是一个Servlet.最终执行的时候还是会被编译成一个java类,然后再编译成.class文件
  • JSP的嵌入Java代码:JSP的脚本元素
    • <%! 代码 ; %> :代码会被编译成成员属性(成员变量或者成员方法),可以定义变量,方法,类
    • <% 代码 ; %> :代码会被编译成Service方法内的代码.变量就会变成局部变量,定义类,内部类,不可以定义方法.
    • <%= 代码 %> :代码最后不能写分号,翻译成service方法内部的out.print(代码),内容.


cookie 的常用API

  • cookie 常用API
    • getName()
    • getValue()
    • setDomain(String name):设置Cookie的有效域名
    • setPath(String path):设置Cookie的有效路径:一般用于删除持久性的cookie.
    • setMaxAge(int maxAge):设置Cookie的有效时间
  • Cookie的分类
    • 会话级别的Cookie:默认,关闭浏览器就会销毁
    • 持久级别的Cookie
      • setMaxAge(int maxAge):把参数设置成0就是销毁,参数是单位是秒


用户数据私有化的过程
  • cookie 私有到私人的电脑上
  • session 在服务器中开辟有一块单独的区域给每个对象,并把这个区域的打开方式保存到客户端.
Cookie存储中文的问题
  • 不能直接存中文
  • 先把中文编码,再存到cookie中
    • URLEncoder.encode(String name, "utf-8"):存入
  • 获取:先获取value的值,再解码
    • URLDecoder.decode(String value,"utf-8")



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马