JSP技术(二)

JSP隐式对象

public void _jspService(HttpServletRequest request,

                     HttpServletResponseresponse)

              throwsjava.io.IOException, ServletException

{

       JspFactory_jspxFactory = null;

       PageContextpageContext = null;

       HttpSession session = null;

       ServletContextapplication = null;

       ServletConfigconfig = null;

       JspWriterout=null;

       Objectpage = this;

       ...

       ...

       Throwable exception =

              org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);

       if(exception != null) {

              response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

       }

九大隐式对象

request response  pageContext  session application  config  out page  exception

out隐式对象

l      out隐式对象用于向客户端发送文本数据。

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

l      JSP页面中的out隐式对象的类型为JspWriter,JspWriter相当于一种带缓存功能的PrintWriter,设置JSP页面的page指令的buffer属性可以调整它的缓存大小,甚至关闭它的缓存。

l      只有向out对象中写入了内容,且满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,并通过该方法返回的PrintWriter对象将out对象的缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中:

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

ü      out对象的缓冲区已满

ü      整个JSP页面结束

out隐式对象工作原理

 

JSP指令

l      JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。在JSP2.0规范中共定义了三个指令:

•        page指令

•        Include指令

•        taglib指令

JSP指令简介

l      JSP指令的基本语法格式:

       <%@指令 属性名="值" %>

       举例:<%@ pagecontentType="text/html;charset=gb2312"%>

l      如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。

       例如:

              <%@page contentType="text/html;charset=gb2312"%>

              <%@page import="java.util.Date"%>

       也可以写作:

       <%@page contentType="text/html;charset=gb2312"import="java.util.Date"%>

Page指令

l      page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。

l      JSP 2.0规范中定义的page指令的完整语法:

<%@ page

       [language="java" ]

       [extends="package.class" ]

       [import="{package.class | package.*},..." ]

       [session="true | false" ]

       [buffer="none | 8kb | sizekb" ]

       [autoFlush="true | false" ]

       [isThreadSafe="true | false" ]

       [info="text" ]

       [errorPage="relative_url" ]

       [isErrorPage="true | false" ]

       [contentType="mimeType [ ;charset=characterSet ]"| "text/html ; charset=ISO-8859-1" ]

       [pageEncoding="characterSet | ISO-8859-1" ]

       [isELIgnored="true | false" ]

%>

include指令

l      include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入。

l      语法:

       <%@include file="relativeURL"%>

       其中的file属性用于指定被引入文件的路径。路径以“/”开头,表示代表当前web应用。

l      细节:

ü      被引入的文件必须遵循JSP语法。

ü      被引入的文件可以使用任意的扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容,为了见明知意,JSP规范建议使用.jspf(JSP fragments)作为静态引入文件的扩展名。

ü      由于使用include指令将会涉及到2个JSP页面,并会把2个JSP翻译成一个servlet,所以这2个JSP页面的指令不能冲突(除了pageEncoding和导包除外)。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值