PageContext pageContext
pageContext:jsp的域对象 但不是servlet的域对象
作用:也可以用来存储数据,但存储的数据只在当前页面有效,还不如一个变量好使
1 可以获取其他八大内置对象(了解)
GJL(request,response,out,application,page,exception,...)
{
request调用
response调用
...
}
GJL(PageContext pcon)
{
pcon.request调用
pcon.response调用
}
2 可以从别的作用域中查找数据(了解)
findAttribute("key")
作用:依次从作用域范围最小的开始查找 一直到最大的
如果都找不到 返回null
pageContext 4
作用范围:当前jsp页面
request 3
作用范围:请求转发中使用
session 2
作用范围:一次会话
ServletContext 1
作用范围:整个服务器不关闭
findAttribute方法的底层:
if(pageContext.getAttribute("msg")!=null)
{
return pageContext.getAttribute("msg");
}else if(request.getAttribute("msg")!=null)
{
return request.getAttribute("msg");
}else if(session.getAttribute("msg")!=null)
{
return session.getAttribute("msg");
}else if(ServletContext.getAttribute("msg")!=null)
{
return ServletContext.getAttribute("msg");
}else
{
return null;
}
3 pageContext可以操作其他作用域(了解)
request.setAttribute("msg", "aaa");
pageContext.setAttribute("msg", "aaa",PageContext.REQUEST_SCOPE);
参数:
PageContext.REQUEST_SCOPE request域
PageContext.SESSION_SCOPE session域
PageContext.PAGE_SCOPE pageContext域
PageContext.APPLICATION_SCOPE ServletContext域
总结域对象:
域对象:可以用来存储数据的对象,而存储的数据有一定的作用范围
作用:可以在多个servlet/jsp中进行数据的传递和共享
servlet:
request
session
ServletContext
-----------xxxAttribute方法
request
创建:请求一次 创建一次
销毁:响应结束 立刻销毁
作用范围:请求转发中request中的数据是可以共享的
session
创建:第一访问到request.getSession()
销毁:3种
1 主动销毁 invalidate()
2 默认销毁 30分钟
3 服务器非正常关闭销毁 服务器正常关闭session不销毁
作用范围:一次会话中使用的都是同一个对象
ServletContext:
创建:服务器启动的时候,只为当前项目创建唯一的一个
销毁:服务器正常关闭
作用范围:整个服务器所有人都是用的是同一个
jsp: 除了以上的3个是一样的,还多了一个自己的叫pageContext
pageContext:
创建:访问当前页面创建
销毁:关闭当前页面等待回收
作用范围:只在当前页面有效果
jsp的动作标签(了解)
jsp提供了一些标签,可以拿过来直接用
总结:
1 什么是jsp (重点)
能写java代码的html页面 由html代码+jsp代码+java代码组成 扩展名.jsp
jsp本质上还是一个servlet (jsp的整个执行流程原理)
2 jsp的作用 (重点)
一句话:接收servlet产生的数据(list,map,javabean,数组..),用来展示
3 jsp的知识点:
1 脚本
可以写java代码 <% %> <%= %> <%! %>
2 注释
给程序员做提示 可以写3种注释 <%-- --%> // /* */ /** */
3 指定
可以写多个,可以出现任意位置
page:设置当前页面的一些属性
支持的语言 编码 导包 错误页面 是否使用session
自动生成即可 单是注意修改模板
include指令
静态包含
作用:用来包含其它jsp页面内容的
将被包含页面的内容全都整合到一个页面中(demo5.jsp)生成
tablib指令
作用:引入第三方的标签(jstl)
4 jsp的内置对象 (面试题)
知道每个内置对象是谁,知道类型是谁
5 jsp的域对象总结(重点)
6 jsp的动作标签(了解)