11.cookie和session

1.jsp

  • java server pages(java服务器页面)
  • 本质上jsp就是一个servlet,在html代码中嵌套java代码,
  • 运行在服务器端,处理请求,生成动态的内容.
  • 对应的java和class文件在tomcat目录下的work目录
    后缀名 .jsp

  • 执行流程:

    1.浏览器发送请求,访问jsp页面
    2.服务器接受请求,jspSerlvet会帮我们查找对应的jsp文件
    3.服务器将jsp页面翻译成java文件.
    4.jvm会将java编译成.class文件
    5.服务器运行class文件,生成动态的内容.
    6.将内容发送给服务器,
    7.服务器组成响应信息,发送给浏览器
    8.浏览器接受数据,解析展示
    
  • jsp的脚本:

    <%...%> java程序片段
        生成成jsp的service方法中
    <%=...%> 输出表达式
        生成成jsp的service方法中,相当于在java中调用out.print(..)
    <%!...%> 声明成员
        成员位置.
    

2. 会话技术

  • 当用户打开浏览器的时候,访问不同的资源,知道用户将浏览器关闭,可以认为这是一次会话.

2.1 作用:

  • 因为http协议是一个无状态的协议,它不记录上次访问的内容.用户在访问过程中难免会产生一些数据,
  • 通过会话技术就可以将起保存起来.

    • 例如:

      用户登录
      验证码
      购物车
      访问记录
      .....
      

2.2 分类:

2.2.1 cookie:浏览器端会话技术
  • cookie是由服务器生成,通过response将cookie写回浏览器(set-cookie),保留在浏览器上,下一次访问,浏览器根据一定的规则携带不同的cookie(通过request的头 cookie),我们服务器就可以接受cookie
  • cookie的api:

    new Cookie(String key,String value)
    
  • 写回浏览器:

    response.addCookie(Cookie c)
    
  • 获取cookie:

    Cookie[] request.getCookies()   
    
  • 常用方法:

    getName():获取cookie的key(名称)
    getValue:获取指定cookie的值
    setMaxAge(int 秒):设置cookie在浏览器端存活时间  以秒为单位,若设置成 0:删除该cookie(前提必须路径一致)
    setPath(String path):设置cookie的路径.
        当我们访问的路径中包含此cookie的path,则携带
        默认路径: 
            访问serlvet的路径,从"/项目名称"开始,到最后一个"/"结束
            例如:
                访问的serlvet路径:
                    /day11/a/b/hello
                默认路径为:
                    /day11/a/b
        手动设置路径:以"/项目名"开始,以"/"结尾;
    
注意:
  • cookie不能跨浏览器
  • cookie中不支持中文
2.2.2 session:服务器端会话技术
当我们第一次访问的服务器的时候,服务器获取id,
能获取id
要拿着这个id去服务器中查找有无此session
    若查找到了:直接拿过来时候,将数据保存,需要将当前sessin的id返回给浏览器
    若查找不到:创建一个session,将你的数据保存到这个session中,将当前session的id返回给浏览器
不能获取id
创建一个session,将你的数据保存到这个session中,将当前session的id返回给浏览器
获取一个session:
HttpSession  request.getSession()
域对象:
xxxAttribute
生命周期:
    创建:第一次调用request.getsession()创建
    销毁:
        服务器非正常关闭
        session超时
            默认时间超时:30分钟  web.xml有配置 
            手动设置超时:setMaxInactiveInterval(int 秒) 了解
        手动干掉session
            ★session.invalidate()
存放的私有的数据.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值