JSP基本指令

来源:互联网 发布:mp3编辑软件 编辑:程序博客网 时间:2024/04/30 09:20

JSP简介

1.1 JSP 4种基本语法

  • 注释
    <!-- HMTL注释  -->    <%-- JSP注释,不会被发到浏览器端  --%>
  • 声明
    <%! 声明变量和方法  %>
  • 输出表达式
    <%=  表达式,注意没有分号  %>
  • JSP脚本
    <%  Java代码   %>

1.2 编译指令

编译指令的语法: <%@ 指令名 属性名="属性值" .. %>

  • page指令
  1. import属性:page指令中唯一容许在同一文档出现多次的属性。属性的值以逗号隔开。指定jsp页面转换成servlet应该输入的包。也就是说用来导入包。

  2. language属性:
    用于指定在脚本元素中使用的脚本语言,默认java。在jsp2.0规范中,只能是java。

  3. contentType和pageEncodeing属性:

    • contentType属性设置发送到客户端文档的响应报头的MIME类型和字符编码,多个使用;号分开。pageEncodeing属性只用于更改字符编码。
    • servlet默认MIME是text/plain,jsp默认MIME是text/html。
  4. session属性:控制页面是否参与会话

    • 默认true。 对于高流量网站,设置false可以节省大量服务器内存。
    • 设置false表示不自动创建新会话,在jsp页面转换为servlet时,这时对变量session的访问导致错误。
    • 设置为false并不是禁用会话跟踪,它只是阻止jsp页面为不拥有会话的用户创建新会话。
    • 对于不需要会话跟踪的页面那就设置为false;当设置为false时session对象是不可访问的。
  5. isELlgnored属性:
    定义在jsp页面中是否执行或忽略EL表达式。true表示忽略,false表示执行。
    默认值依赖于web.xml的版本。

  6. buffer和autoFlush属性:

    • buffer属性指定out对象(JspWriter)使用的缓冲区大小,以Kb为单位,默认8KB。none表示不使用缓冲区。
    • autoFlush属性控制当缓冲区满了后,是自动清空输出缓冲区(默认true),还是在缓冲区溢出后抛出异常(false)。
  7. info属性:
    定义一个可以在servlet中通过getServletInfo方法获取的字符串。

  8. errorPage和isErrorPage属性:指定页面专用的错误页面。

    • errorPage属性用来指定一个jsp页面,由该页面来处理当前页面中抛出但没有捕获的任何异常。指定的页面可以通过exception变量访问异常信息。只能够在错误处理页面中使用错误对象exception。错误页面应该放在WEB-INF目录下面,只让服务器访问,也不会生成转发的调用,客户端只能看到最初的请求页面URL,看不到错误页面的URL。
    • isErrorPage属性表示当前页是否可以作为其他jsp页面的错误页面。true或false。
  9. isThreadSafe属性:采用显式的同步来代替该方法。
    控制由jsp页面生成的servlet是否允许并发访问(默认true允许)。

  10. extends属性:避免使用。 指定JSP页面生成的servlet的超类。

  • include指令
    基本语法:<%@ include file="relativeURLSpec" %>
    将页面融合进来,形成一个页面。源代码会合并。
    因为原文件和被包含文件可以互相访问彼此定义的变量和方法,所以要避免变量和方法在命名上的问题。

1.3 7个动作指令

  • forward指令
    将页面响应转发到另外的页面。
    如果有参数,会当做请求发出去。
    原地址栏不会改变
    forward转发请求时,客户端的请求参数不会丢失
    forward并没有重新向新页面发送请求
    依然是一次请求
    完全替换原来页面的内容
1. <jsp:forward page="{relativeURLI<%=expression%>}"/>2. <jsp:forward page="{relativeURL|<%=expression%>}">    {jsp:param..../>}   </jsp:forward>
  • include指令
    仅仅将被导入页面的body内容插入本页面。
    动态导入只是使用一个include方法来插入目标页面的内容。
    原始地址栏不变
1. <jsp:include page="{relativeURLI<%=expression%>}" flush=true"/>2. <jsp:include page="{relativeURLI<%=expression%>}" flush="true"   <jsp:param name="parameterName" value="patameterValue"l>        </jsp:include>
  • userBean, setProperty, getProperty指令
    userBean用于在JSP页面中初始化一个Java实例,setProperty用于为JavaBean实例的属性设置值;getProperty用于输出JavaBean实例的属性值。
<jsp:useBean id="name" class="classname" scope="pageIrequestIsessionIapplication"/>id 属性是JavaBean的实例名, class属性确定JavaBean的实现类。其中 scope属性用于确定JavaBean实例的生存范围,该范围有以下四个值。page: 该 JavaBean 实例仅在该页面有效。request: 该 JavaBean 实例在本次请求有效。session: 该 JavaBean 实例在本次 session 内有效。application: 该 JavaBean 实例在本应用内一直有效。<jsp:setProperty name="BeanName" proterty="propertyName" value="value"/>其中 name 属性确定需要设定JavaBean 的实例名; property属性确定需要设置的属性名; value属性则确定需要设置的属性值。<jsp:setProperty name="BeanName" proterty="propertyName" />其中 name'属性确定需要输出的JavaBean 的实例名; property属性确定需要输出的属性名。
0 0
原创粉丝点击