1 PageContext对象;
是jsp技术最重要的一个对象,代表jsp页面的运行环境。
这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象,可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其它资源、检索其它域对象中的属性等。
2 通过pageContext获得其他对象
getException方法返回exception隐式对象
getPage方法返回page隐式对象
getRequest方法返回request隐式对象
getResponse方法返回response隐式对象
getServletConfig方法返回config隐式对象
getServletContext方法返回application隐式对象
getSession方法返回session隐式对象
getOut方法返回out隐式对象
pageContext封装其它8大内置对象的意义,思考:如果在编程过程中,把pageContext对象传递给一个普通java对象,那么这个java对象将具有什么功能?
3 pageContext作为域对象
pageContext对象的方法
public voidsetAttribute(java.lang.Stringname,java.lang.Objectvalue)
publicjava.lang.ObjectgetAttribute(java.lang.Stringname)
public voidremoveAttribute(java.lang.Stringname)
pageContext对象中还封装了访问其它域的方法
publicjava.lang.ObjectgetAttribute(java.lang.Stringname,intscope)
public void setAttribute(java.lang.Stringname,java.lang.Objectvalue,intscope)
publicvoidremoveAttribute(java.lang.Stringname,intscope)
代表各个域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE
findAttribute方法 (*重点,查找各个域中的属性)
4
引入和跳到其他资源
PageContext类中定义啦一个forword方法和两个include方法分别来简述和替代ReauestDispatcher.forword方法和include方法。
方法接受资源如果以“/”开头,“/”daibiao 代表当前web应用
5 jsp常用标签
A <jsp:include>标签
B <jsp:forword>标签
C <jsp:param>标签
<Jsp:include>标签
<jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。
语法:
<jsp:includepage="relativeURL | <%=expression%>" flush="true|false"/>
page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。
5
<jsp:include>与include指令的比较
<jsp:include>标签是动态引入,<jsp:include>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。
而include指令是静态引入,涉及到的2个JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并。
不管是<jsp:include>标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要出现重复的HTML全局架构标签,否则输出给客户端的内容将会是一个格式混乱的HTML文档。
<pageContext.include></pageContext.include和<jsp:includepage=”/index.jsp”></jsp:include>都是动态标签
6 映射jsp
<servlet>
<servlet-name>SimpleJspServlet</servlet-name>
<jsp-file>/jsp/simple.jsp</jsp-file>
<load-on-startup>1</load-on-startup>
</servlet>
……
<servlet-mapping>
<servlet-name>SimpleJspServlet</servlet-name>
<url-pattern>/xxx/yyy.html</url-pattern>
</servlet-mapping>
7 如何查找jsp页面的错误
JSP页面中的JSP语法格式有问题,导致其不能被翻译成Servlet源文件,JSP引擎将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息。
JSP页面中的JSP语法格式没有问题,但被翻译成的Servlet源文件中出现了Java语法问题,导致JSP页面翻译成的Servlet源文件不能通过编译,JSP引擎也将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息。
JSP页面翻译成的Servlet程序在运行时出现异常,这与普通Java程序的运行时错误完全一样,Java虚拟机将提示错误发生在Servlet源文件中的位置(行和列)以及相关信息。
8
web开发接触到的4个域对象
• pageContext(称之为page域)
• request(称之为request域)
• session(称)之为session域)
• servletContext(称之为application域