JSP
This presentation is the property of its rightful owner.
Sponsored Links
1 / 21

JSP 页面的组成 PowerPoint PPT Presentation


  • 69 Views
  • Uploaded on
  • Presentation posted in: General

JSP 页面的组成. JSP 页面包括 JSP 元素、注释及 HTML 元素。 JSP 指令:用于将消息传送到 JSP 引擎。 JSP 动作:使用 XML 语法格式的标记来控制 JSP 引擎的各种行为。 JSP 脚本:插入 Java 语言程序代码 。 模板数据 html 表现的静态数据, jsp 不做任何处理。. JSP 页面的组成. JSP 指令 JSP 指令是为 JSP 引擎而设计的。该指令并不直接产生任何可见输出,而只是告诉引擎如何处理其余 JSP 页面。这些指令始终被括在“ <%@ ...%>” 标记中。

Download Presentation

JSP 页面的组成

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Jsp

JSP页面的组成

JSP页面包括JSP元素、注释及HTML元素。

JSP指令:用于将消息传送到JSP引擎。

JSP动作:使用XML语法格式的标记来控制JSP引擎的各种行为。

JSP脚本:插入Java语言程序代码。

模板数据html表现的静态数据,jsp不做任何处理。


Jsp

JSP页面的组成


Jsp

JSP指令

JSP指令是为JSP引擎而设计的。该指令并不直接产生任何可见输出,而只是告诉引擎如何处理其余JSP页面。这些指令始终被括在“<%@ ...%>”标记中。

jsp有3条指令page,taglib,include。两个最重要的指令是page和include。另外,taglib指令很少使用,在用JSP1.1创建自定义标记时可以使用它。


Jsp

几乎在所有的JSP页面顶部都会看到page指令。尽管不是必需的,但page指令可以让你指定:

(1) 到何处查找起支持作用的Java类别:

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

(2) 出现Java运行问题时,通过errorPage将用户引向何处:

<%@ page errorPage="errorPage.jsp" %>


Jsp

1.include指令

include指令用于把其它的文本文件或JSP文件加入到当前的JSP文件中,同时解析这个文件中的JSP语句。

include指令可以把你的内容分成更多可管理的元素。包含的网页可以是一个固定的HTML 页面或更多的JSP内容,形式如:

<%@ include file="filename.jsp" %>

采用include指令,可以实现JSP页面的模块化,使JSP的开发和维护变得非常简单。


Jsp

<[email protected] %>指令将会在JSP编译时插入一个包含文本或代码的文件,当你使用<%@ include %>指令时,这个包含的过程相当于静态的。静态的包含就是指这个被包含的文件将会被插入到JSP文件中去。这个包含的文件可以是JSP文件、HTML文件或文本文件。如果包含的是JSP文件,则这个包含的JSP文件中的代码将会被执行。

  注意,在包含文件中不能使用<html>、</html>、<body>、</body>标记,因为这将会影响在原JSP文件中同样的标记,有时还会导致错误。

  如果这个包含文件被改变,则包含此文件的JSP文件将被重新编译。


Jsp

属性:

  ★ file="relativeURL":包含文件的路径名一般来说是指相对路径,不需要什么端口、协议和域名,如

"error.jsp"、"templates/onlinestore.html"、"/beans/calendar.jsp"

  如果路径以“/”开头,那么这个路径主要是参照JSP应用的上下关系路径;如果路径是以文件名或目录名开头的,那么这个路径就是正在使用的JSP文件的当前路径。


Jsp

  • 例子:include指令(include.jsp)

    • <html>

    • <head><title>An Include Test</title></head>

    • <body bgcolor="white">

    • <font color="blue">

    • The current date and time are

    • <%@ include file="date.jsp" %>

    • </font>

    • </body>

    • </html>

    • 被包含文件date.jsp:

    • <%@ page import="java.util.* " %>

    • <%= (new java.util.Date() ).toLocaleString() %>


Jsp

2.page指令

功能:定义JSP文件中的全局属性。

JSP 语法:

<%@ page

[ language="java" ]

[ extends="package.class" ]

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

[ session="true | false" ]

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

[ autoFlush="true | false" ]

[ info="text" ]

[ errorPage="relativeURL" ]


Jsp

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

  • [ isErrorPage="true | false" ]

  • 例:

    • <%@ page import="java.util.*, java.lang.* " %>

    • <%@ page buffer="5KB" autoFlush="false" %>

    • <%@ page errorPage="error.jsp" %>


Jsp

 相关描述:<%@ page %>指令作用于整个JSP页面,从容器的角度看,每个jsp页面都是一个独立的翻译单元,同一个应用的jsp页面用其自己的page指令指定其翻译时的特性。

可以在一个页面中用多个<% @ page %>指令,但是其中的属性只能用一次。不过也有个例外,那就是import属性。因为import属性和Java中的import语句差不多(参照Java Language),所以就可以多用此属性几次。

无论把<% @ page %>指令放在JSP文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性以及好的编程习惯,最好还是把它放在JSP文件的顶部。


Jsp

属性:

  ★ language="java":声明脚本语言的种类,暂时只能用“java”。

  ★ extends="package.class":标明JSP编译时需要加入Java Class的全名,但是得慎重地使用它,它会限制JSP的编译能力。

  ★ import="{package.class | package.* }, ...":指明需要导入的Java包的列表,这些包就作用于程序段、表达式以及声明。


Jsp

  • 下面的包在JSP编译时已经导入了,所以不需要再指明:

    • java.lang.*

    • javax.servlet.*

    • javax.servlet.jsp.*

    • javax.servlet.http

  •   ★ session="true | false":设定客户是否需要HTTP session。如果设定为true,那么session是有用的。 如果设定为false,那么就不能使用session对象,以及定义了scope=session的<jsp:useBean>元素,这样使用会导致错误。缺省值是true。


  • Jsp

     ★ buffer="none | 8KB | sizekb":buffer的大小被out对象用于处理执行后的JSP对客户浏览器的输出。缺省值是8 KB。

      ★ autoFlush="true | false":设置如果buffer溢出,是否需要强制输出。如果其值被定义为true(缺省值),输出正常,如果它被设置为false,并且这个buffer溢出,就会导致一个意外错误的发生。如果把buffer设置为none,那么就不能把autoFlush设置为false。

      ★ isThreadSafe="true | false":设置JSP文件是否能多线程使用。缺省值是true,也就是说,JSP能够同时处理多个用户的请求。如果设置为false,则一个JSP文件一次只能处理一个请求。


    Jsp

      ★ info="text":一个文本在执行JSP时将会被逐字加入JSP中,能够使用Servlet.GetServletInfo方法取回。

      ★ errorPage="relativeURL":设置处理异常事件的JSP文件。当页面出现一个设有捕获的异常时,指向另一个JSP页面的URL。

      ★ contentType="mimeType [ ;charset=characterSet ]" | "text/html;charset=ISO-8859-1":设置MIME类型。缺省MIME类型是text/html, 缺省字符集为ISO-8859-1。

      ★ isErrorPage="true | false":设置此页是否为出错页。如果被设置为true,则能使用exception对象。


    Jsp

    3.taglib指令

      功能:定义一个标签库及其自定义标签的前缀。

    JSP 语法:

    <%@ tagliburi="URIToTagLibrary" prefix="tagPrefix" %>

    uri:英文全称为Uniform Resource Identifier,其功能是根据标签的前缀对自定义的标签进行惟一的命名。


    Jsp

    • 例:

    • <%@ tagliburi="http://www.jspcentral.com/tags" prefix="c" %>

    • <c:loop>

    • .

    • .

    • </c:loop>

    • 使用jstl

    • Jstl(jsp标准标记库)是一组专门设计的标准标记,用于在jsp中完成一些最常见的编程任务。包括:条件、循环、数据输出、国际化以及xml文档和数据库的使用,最新版本:

    • http://jakarta.apache.org//taglibs/doc/standard-doc/intro.html


    Jsp

      相关描述:

      ★ <% @ taglib %>指令声明此JSP文件使用了自定义的标签,同时引用标签库,还指定了它们的标签的前缀。

      ★ 自定义的标签含有标签和元素之分。因为JSP文件能够转化为XML,所以了解标签和元素之间的联系很重要。

      ★ 标签只不过是一个在意义上被抬高了的标记,是JSP元素的一部分。

      ★ JSP元素是JSP语法的一部分,和XML一样有开始标记和结束标记。元素也可以包含其它的文本、标记、元素。

    例子


    Jsp

    Jsp动作:操作指令

    • JSP编译指令是让JSP容器自动采取的动作,但对于Web开发人员,有些时候想要自己控制JSP页面的运行,这时可以采用JSP中的操作指令。

    • 操作指令包括:

      • jsp:include指令、jsp:forward指令、jsp:param指令、jsp:useBean指令、jsp:setProperty指令和jsp:getProperty指令等。


    Jsp include

    jsp:include指令

    • jsp:include标准动作用于在当前的JSP页面中加入静态和动态的资源。

    • 语法格式为:

      • <jsp:include page=“test.htm”/>

      • jsp:include指令必须以“/”结束,功能和include指令相同。


    Jsp forward

    jsp:forward指令

    • jsp:forward操作指令用于把当前的JSP页面转发到另一个页面上。

    • 基本语法为:

      • “<jsp:forward page=”test2.jsp“/>”,

      • 使用该功能时,浏览器的地址栏中地址不会发生任何变化。


  • Login