EL 表达式
代替 脚本 => 输出脚本 <%= %>
格式: ${表达式}
EL表达式可以在4个域中取数据 => 4个内置对象
applicationScope/requestScope/sessionScope/pageScope
从指定域取值:
${requestScope.name}<br>
${applicationScope.name}<br>
不指定域取值:
${name}<br> => 从小域到大域中查找.显示最先找到的.
会话技术
话的概念:
日常生活来讲.会话就是两个人聊天. 聊天的前提,聊天双方需要有记忆力. 在聊的过程中,都是
基于之前聊的状态,继续往下聊.
我们javaweb中,浏览器和服务器也可以看作是双方在聊天(请求,响应). 浏览器服务器双方也需要
有"记忆力",保存之前的聊天状态.服务器和浏览器才可以完成会话.
会话的范围:
两个从打招呼到两人互相道别.是一次会话.
打开网站,完成我们想做的需求,到关闭浏览器.是一次会话.
Cookie: 让浏览器能够记录信息.
Session:让服务器端能够记录信息.
cookie 浏览器端记录信息的技术
- 基本操作
创建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 属性无法与 一同使用。