zoukankan      html  css  js  c++  java
  • JSP核心(二)-三大指令

    JSP  指令(directive)
      JSP 指令的作用是为当前页面做一些基本的属性设置,为当前的页面的运行提供基本的环境。
        根据功能的不同,JSP 中包含三类指令:

          page 指令,即页面指令;

          include 指令,即包含指令;

          taglib 指令,即标签库指令。

      无论哪种指令,其使用的语法格式均为如下形式:

      

       如: page指令

      


     一、page指令

      page 指令用于设置当前 JSP 页面的相关信息。一个 JSP 文件中可以包含多个 page 指令。
      常用的 page 指令的属性意义及用法如下:

    1 ) pageEncoding  属性
      pageEncoding 属性用于设置当前 JSP 页面所使用的字符编码格式。即,用户在浏览器中通过右击查看编码所看到的编码格式。

      

       其被 JSP 翻译引擎翻译到 Servlet 中的语句,是_jspService()方法中的 setContentType()。

       

    2 ) contentType  属性

      contentType 属性用于设置当前 JSP 页面呈现于用户浏览器中的内容类型,通常为”text/html”类型,即 html 格式的文本。

      若在 JSP 页面中设置如下:

      

       对应 JSP 翻译引擎翻译过的 Servlet 中的语句,则为_jspService()方法中的如下语句:

      

       但,若直接通过 contentType 属性指定内容类型与字符编码:

      

      则生成的 Servlet 语句仍为:

      

       所以,当内容类型为”text/html”时,使用 pageEncoding 属性与 contentType 属性效果是相同的。

      只有当内容类型不为”text/html”时,才专门使用 contentType 属性指定。在指定字符编码时,这两个属性一般不同时使用

     3 ) import  属性
      import 属性,用于完成在 JSP 页面中导入指定的类。其被 JSP 引擎翻译为 Servlet 中的import 语句。

      例如,

      

      结果:

      

      

       

      在 Servlet 中被翻译为了:

      

       若要导入多个类,则在 import 属性值中可使用逗号将这些类分隔

      

       在 Servlet 中将被翻译为多个 import 语句:

      

     (4 ) errorPage  属性
      errorPage 属性用于指定,当前页面运行过程中发生异常时所要跳转到的页面。

      

       需要注意的是,该属性会被翻译到 Servlet 的_jspService()方法中,即这里出现的路径是一个后台路径,而非前台路径。所以这里指定的发生异常后所要跳转的页面,需要使用以斜杠开头的后台路径。

      

      

      发生错误时,会跳转到    指定的 error.jsp中

    (5 ) isErrorPage  属性
      若一个页面中指定了发生异常后所要跳转的页面,将会出现一个问题:异常信息被隐藏了。

      在控制台看不到异常信息,在所跳转的页面中也看不到异常信息。这对于程序员来说,不是件好事,没有足够的信息提示。
      此时,一般是希望当异常发生后,在所要跳转的页面中能够给出相应的异常信息。

      而异常信息是封装在异常对象 exception 中的。也就是说,我们需要在所要跳转的页面中能够获取到异常对象。此时,就需要将这个所要跳转的页面指定为“错误处理页面”。
      当一个页面的 page 指令中设置 isErrorPage 的值为 true 时,表明当前页面为一个“错误处理页面”。默认 isErrorPage 的值为 false。

      

      一旦一个页面 page 指令的 isErrorPage 属性被指定为了 true,查看 JSP 页面所翻译为的Servlet 则会发现:

      在_jspService()方法中,多出了一个变量 exception。这就是内置对象exception,可以在 JSP 的 Java 代码块、表达式块中直接使用的内置对象。

      

    (6 ) session属性

      session 属性用于指定当前页面中是否可以直接使用内置对象 session。默认为 true,可以使用。

      查看JSP翻译为的Servlet,可以看到session的创建,使用的是无参方法getSession()。
      该方法的功能是,若当前具有 session,则使用当前的 session;若当前没有 session,则会新建一个 session。即 session 对象肯定不为 null。

      

       但,有些情况下,我们希望的仅仅是获取到之前已经存在的 session,若之前没有 session,则并不需要创建 session,即让 session 为 null。

      显示使用默认的 session 属性为 true 已经无法满足需求了。此时,就需要将 session 属性设置为 false,即不使用内置对象 session,而是在JSP 页面的代码块中使用 request 的带参 getSession()方法。
              HttpSession session = request.getSession(false);

      若设置 session 属性的值为 false,查看生成的 Servlet 代码,会发现根本就没有出现内置对象 session。

      


    二、include 指令


    三、taglib 指令


  • 相关阅读:
    json数组去重
    java socket API
    java网络编程精解demo1---读取用户控制台的输入的数据并显示
    【CodeForces 489A】SwapSort
    【CSU 1556】Pseudoprime numbers
    【CodeForces 472A】Design Tutorial: Learn from Math
    【CodeForces 605A】BUPT 2015 newbie practice #2 div2-E
    【UVALive 3905】BUPT 2015 newbie practice #2 div2-D-3905
    【HDU 4925】BUPT 2015 newbie practice #2 div2-C-HDU 4925 Apple Tree
    【UVA 401】BUPT 2015 newbie practice #2 div2-B-Palindromes
  • 原文地址:https://www.cnblogs.com/penguin1024/p/12170962.html
Copyright © 2011-2022 走看看