jsp 九大内置对象
面试
什么是内置对象
jsp在翻译为servlet代码时,有些对象是默认创建好的吗,这些对象是直接可以在jsp中使用的
page request session application response pageContext out config exception
重点学习
page对象
page对象代表了正在运行的由jsp文件产生的类对象 一般不建议使用
page对象 是指当前jsp程序本身
page 是Object 类型 ,只能用 Object中的方法,这个对象在开发中不建议使用
如果强行使用, 可以强制转换成一个HttpServlet
servlet有几种数据范围:三种 request session servletContext
jsp在servlet在三种数据范围的基础上,jsp的四大域
jsp的四种数据范围
往page存数据 就必须用到pageContext对象 当前页面的上下文
可以向page范围存取数据
findAttribute 依次在 page request session application 数据范围 进行数据的查找
向四种数据范围存入数据
<%
request.setAttribute(“name”,”request”)
session.setAttribute(“name”,”session”)
application.setAttribute(“name”,”request”)
pageContext.setAttribute(“name”,”request”)
%>
取数据
<%=request.getAttribute(“name”)%>
<%=session.getAttribute(“name”)%>
<%=application.getAttribute(“name”)%>
<%=pageContext.getAttribute(“name”)%>
<%Object value=pageContext.findAttribute(“name”);%>
查找name属性<%=value%>
默认会在四个数据范围中找 从小到大
通过EL取得数据
${sessionScope.name}
如果直接写name,默认会调用pageContext.findAttribute(“name”);
还可以通过pageContext获得其他对象
pageContext封装了八个隐含对象 相当于得到了九个内置对象
out对象 jspWrite
内部使用PrintWrite对象来输出文本级数据
通过page指令的buffer属性来调整缓冲区的大小,默认的缓冲区是8kb
向浏览器输出信息, 是jspWribute类型,内部使用PrintWriter实现,拥有独立的缓冲区
out对象的创建,out对象是通过pageContext对象获取的,创建pageContext对象时,需要指定out缓冲区的大小,以及是否自动刷新 flush
通过 page指令中的两个属性 buffer autoflush 设置out缓冲区的大小 ,是否自动flush
out向浏览器输出内容, response.getWriter,向浏览器输出内容,区别是什么
out.println(“aaa”)
response.getWrite.println(“bbb”)
out.print(“ccc”)
为什么是bbb先输出
out.flush 的内容输出到response的缓冲区中
如果加一个 out.flush 刷出