EL表达式和Cookie

EL 表达式

   代替 脚本 => 输出脚本 <%= %>

   格式: ${表达式}

EL表达式可以在4个域中取数据 => 4个内置对象

applicationScope/requestScope/sessionScope/pageScope

从指定域取值:

 ${requestScope.name}<br>
 ${applicationScope.name}<br>

不指定域取值:

 ${name}<br>  => 从小域到大域中查找.显示最先找到的. 

会话技术

话的概念:
                日常生活来讲.会话就是两个人聊天. 聊天的前提,聊天双方需要有记忆力. 在聊的过程中,都是
            基于之前聊的状态,继续往下聊.
                我们javaweb中,浏览器和服务器也可以看作是双方在聊天(请求,响应). 浏览器服务器双方也需要
            有"记忆力",保存之前的聊天状态.服务器和浏览器才可以完成会话.
会话的范围:
            两个从打招呼到两人互相道别.是一次会话.
            打开网站,完成我们想做的需求,到关闭浏览器.是一次会话.

Cookie: 让浏览器能够记录信息.

Session:让服务器端能够记录信息.
  • 基本操作
创建cookid
        Cookie cookie = new Cookie(String key,String value);
    发送cookie
        response.addCookie(cookie);
    获得cookie
            Cookie cookie = null;

            Cookie[] cookies =  request.getCookies();

            if(cookies!=null && cookies.length>0){
                for(Cookie c : cookies ){
                    if(c.getName().equals("remember")){
                        cookie = c;
                    }
                }
            }
  • cookie的细节

1>关于浏览器记住多久.

    默认情况:
        浏览器会在关闭的时候删除cookie(会话结束时)
    手动设置:
        c.setMaxAge(60*60*24*7*2);//告诉浏览器保存2周
        c.setMaxAge(-1);// -1代表 在会话结束时删除cookie(默认情况)
        c.setMaxAge(0);// 通常用于删除已经存在的cookie.使用一个寿命为0的cookie,覆盖要删除的cookie

2>浏览器在什么情况下发送cookie(cookie的路径问题)

*cookie的默认路径就是 发送cookie的动态资源所在的上一级路径.
    *如果 cookie路径是"/day10-cookie", 主机(域)是:localhost . 那么浏览器在访问cookie路径的所有子路径时会携带cookie.
            http:/localhost:8080/day10-cookie/BServlet              会发送
            http:/localhost:8080/day10-cookie/ABC/BCD/CServlet      会发送
            http:/localhost:8080/day12/AServlet                     不会发送
            http:/www.baidu.com/day10-cookie/BServlet               不会发送

3>Cookie路径的设置

默认情况:
        发送Cookie的资源所在路径.  
            例如:  http:/localhost:8080/day9-cookie/CServlet  =>  /day9-cookie
    手动设置:
            c.setPath("/day09-cookie/ABC");

4>cookie的主机(域)设置 (了解)

    默认情况:
        发送Cookie的资源所在主机.
    手动设置:
        //自己当前是什么主机,你就只能设置为什么主机,或者主机名的一部分
        //假设自己的主机是www.baidu.com那么可以如下设置:
        c.setDomain(".baidu.com");

5> cookie删除的问题

    删除cookie原理就是 使用一个寿命为0的cookie 覆盖需要删除的cookie.
    如何覆盖cookie.?
            需要 路径,键,主机 一致,即可覆盖.

6> 使用cookie记录中文键值对问题.

    为什么不能直接使用中文?
        因为http协议中,除正文部分都不得使用Latin码表以外的其他码表.
        所以不管是cookie还是之前的Cotent-disposition.都不能直接使用中文.

    汤姆 => %E3%E5%C2

    1.使用 URLEncoder 对中文进行url编码
    2.在获取cookie时,使用URLDecoder进行解码.
  • input中Value属性

    对于不同的输入类型,value 属性的用法也不同:

    type=”button”, “reset”, “submit” - 定义按钮上的显示的文本
    type=”text”, “password”, “hidden” - 定义输入字段的初始值
    type=”checkbox”, “radio”, “image” - 定义与输入相关联的值

    注释: 和 中必须设置 value 属性。

    注释:value 属性无法与 一同使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值