JSP 九大隐式对象

final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
javax.servlet.jsp.JspWriter _jspx_out = null;
javax.servlet.jsp.PageContext _jspx_page_context = null;

还有request response 不常有的excepiton

 

out 通过调用pageContext对象的getOut方法返回的,作用和用法与ServletResponse.getWriter方法返回的PrintWriter对象非常类似。

但是有个缓存问题,只有一下三种条件才会输出:

设置page指令的buffer属性关闭了out对象的缓存功能

out对象的缓存区已满

整个JSP页面已经结束。

比如

<%

out.write(“1”);

response.getWriter.write(“2”);

%>

会先输出2,在输出1,就是因为页面结束前out的缓冲没有满。out满了就会放到response的缓冲区,

而response自己已经把2设置到自己的缓冲区了。

代码:

aaaaaaaa

<%

response.getWriter.write(“2”);

%>

的输出顺序也是一个原理。

 

pageContext对象

代表JSP页面的运行环境。

1,该对象封装了对其他八大隐式对象的引用。该技术用在自定义标签。打造格式良好的JSP。

2,它自身还是一个域对象,可以用来保存数据。

3,该对象封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其他资源,检索其他域对象中的属性等。

以下代码表示pageContext可以从其他域里面取数据。

<%

    request.setAttribute(“data”,”bclajd”);

    String data = (String)pageContext.getAttribute(“data”,PageContext.REQUEST_SCOPE);

%>

代表各个域的常量:PageContext.

APPLICATION_SCOPE

SESSION_SCOPE

REQUESET_SCOPE

PAGE.SCOPE

 

 

pageContext.findAttribute(“data”);

以此从page-request-session-application四个域中查找data。

el表达式的$(data)就是依赖于上面这个方法。

 

pageContext.forward(“/1.jsp”);//跳转

pageContext.include(“/foot.jsp”);//引进页面

posted @ 2013-12-02 15:56  剑握在手  阅读(359)  评论(0编辑  收藏  举报
返回顶部↑