属性范围种类
- 上下文范围
- 会话范围
- 请求范围
设置属性
System.out.println("设置属性范围");
getServletContext().setAttribute("name","lhq");
req.getSession().setAttribute("name","lhq");
req.setAttribute("name","lhq");
读取属性
System.out.println("获取属性范围");
System.out.println(getServletContext().getAttribute("name"));
System.out.println(req.getSession().getAttribute("name"));
System.out.println( req.getAttribute("name"));
场景一
设置属性范围
doGet....
service....
获取属性范围
lhq
lhq
null
同一浏览器两次不同的请求,getServletContext()和 getSession()都是有效的
场景二
设置属性范围
doGet....
service....
获取属性范围
lhq
null
null
不同浏览器两次不同的请求,getServletContext()有效,其他没效
场景三
request的属性只能在一次请求中有效。
属性的方法
getAttribute(String name) | 获取属性名为name的值,返回值为Object类型,如果给定名称的属性不存在,则返回null |
---|---|
setAttribute() | 设置属性的“名-值”对,如果传入参数Object为null,则删除给定属性,相当于调用removeAttribute(String name)方法 |
removeAttribute() | 删除给定名称的属性 |
getAttributeNames() | 返回当前有效范围内的全部属性名称,返回类型为枚举值 |