Day9
cookie&session
1. jsp
(1) jsp就是servlet,最终会被编译成servlet,放到tomcat的work目录。
(2) jsp在什么时候编译成servlet:在访问jsp时候会编译成servlet
(3) jsp的组成:html+java代码+jsp自身的一些东西
(4) jsp里面嵌入java代码的三种方式
a) <%! %> : 在里面定义变量,这个变量是成员变量
b) <%= %> :表示向页面输出内容(固定值、变量)
c) <% %> :编译成servlet之后,代码生成在service方法里面
2. el表达式
(1) 作用:获取域对象里面的值,不能使用在html中,使用在jsp中
(2) 写法:${设置的名称}
(3) 其他的问题:
a) 使用el表达式获取的域对象名称不存在
i. 如果使用传统方式获取域对象的值不存在,返回null,容易造成空指针异常
ii. 使用el表达式获取的域对象名称不存在,返回空字符串 "",不会造成空指针异常
b) 如果分别向多个域对象里面设置值,名称都相同
i. 使用el表达式获取的值是域范围小的里面的值
ii. ${requestScope.msg } ,${applicationScope.msg}
3. cookie
(1) 会话管理的简介
打开浏览器,进行网页的浏览,到关闭浏览器的过程,称为一次会话
(2) 会话技术用两种技术
cookie技术:客户端的技术
session技术:服务器端的技术
(3) cookie的api
a) Cookie[] getCookies() :得到所有的cookie
b) addCookie(Cookie cookie) :把cookie返回到浏览器中(回写)
c) new Cookie(java.lang.Stringname, java.lang.String value) 两个参数:第一个参数是cookie名称,第二个参数是值
d) getName() :得到cookie的名称
e) getValue() :得到cookie的值
f) setMaxAge(int expiry) :设置cookie的有效时长
g) setPath(java.lang.String uri) :设置cookie的有效路径. 比如通过setPath方法设置了一个路径,在浏览器的地址栏输入一个地址,如果这个地址包含设置的路径,才会携带cookie信息过来.
(4) 使用注意事项
a) cookie大小有限制
b) 创建cookie时候至少两部分内容,一个name,一个value
c) 在默认的情况下,cookie是一个会话级别cookie
4. session
(1) session是服务器端的技术
(2) 创建session:使用request里面getSession()创建session对象,名称:HttpSession
(3) 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象), 一个浏览器独占一个session对象(默认情况下)
(4) session域对象:
a) session域对象,范围是一次会话,存值和取值
b) 存值的方法:setAttribute(java.lang.String name, java.lang.Object value)
取值的方法:getAttribute(java.lang.String name)