`
jiangduxi
  • 浏览: 444797 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JSP语法详解三

阅读更多

 JSP include指令

   include指令通知容器将当前JSP页面中内嵌的、在指定位置上的资源内容包含。被包含的文件内容可以被JSP解析,这种解析发生在编译期间。include指令如下:

 <%@ include file="filename"%>

其中filename为要包含的文件名。需要注意的是,一经编译,内容不可变,如果要改变filename的内容,必须重新编译JSP文件。但是它的执行效率高。

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

 例如:

<meta http-equiv="Content-Type" content="text/html;charset=gb2312">

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

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

<%@ include file="body.html"%>

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

include指令将在JSP编译时插入一个包含文件或代码的文件,当你使用include指令时,这个包含的过程就是静态的。静态的包含就是指这个被包含的文件将会被插入到JSP文件中去,这个包含的文件可以是JSP'文件、HTML文件、文本文件、inc文件等。如果包含的文件中包含可执行代码,那么这个包含的文件中的代码将会被执行。

  如果你仅仅是用include来包含一个静态文件,那么这个包含的文件所执行的结果将会插入到JSP文件中放<%@ include%>地方。一旦包含文件被执行,那么主JSP文件的过程将会被恢复,继续执行下一行。

   由于使用了include指令,可以把一个复杂的JSP页面分成若干简单的部分,这样大大增加了JSP页面的管理行。当要对页面进行更改时,只需要更改对应的部分就可以了。在通常情况下把页面分成多个区。

 

需要注意的是,JSP还有另外一种包含其他文件的方法:

<jsp: include page=""/>

比较两种include指令的异同

 

<%@ include file="..........."%>  编译时包含,静态对象,JSP引擎将对所包含的文件进行语法分析

<jsp include page=""/> 运行时包含,静态和动态对象,JSP引擎将不对所包含的文件进行语法分析

 

 

taglib指令

  这个指令允许页面使用者自定义标签。首先用户要开发标签库,为标签库编写.tld配置文件,然后在JSP页面里使用自定义标签。这样容器使用这个标签库确定在遇到定制标签时要怎么做。由于使用了标签,增加了代码的重用程度,比如可以把一些需要迭代显示的内容做成一个标签,在每次需要迭代显示时,就使用这个标签。使用标签也使页面容易维护。

  在JSP规范里,标签库得到了不断的加强,最新的JSP2.0规范中增加了JSTL标签库。JSP的标签库在页面里的定义如下:

<%@ taglib uri="taglibURI" prefix="tagPrefix"%>

 uri用来表示标签描述符,也就是告诉容器怎么找到标签描述文件和标签库。tagPrefix定义了在JSP页面里要引用这个标签时的前缀,这些前缀不可以使:jsp、jspx、java、javax、sun、Servlet和sunw

 

例如:

<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core%>

<html>

  <head><title>JSTL: Conditional Support--Simple Conditional Execution Example</title></head>

  <body bgcolor="#FFFFFFFF">

    <h3>Simple Conditional Execution</h3>

    <%session.setAttribute("test","hellking");%>

    <h4>test tag:</h4>

    <c: if test="${sessionScope.test=='hellking'}">

         ${seesionScope.test}<br>

   </c:if>

 </body>

</html>

 

在上面的例子中<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core%>声明了使用的taglib,它的prefix为“c”,那么在后面的代码中使用“<c:”标识使用标签。

 

表达式语言

   表达式语言是JSP2.0新增加的技术,通过表达式语言,可以简化JSP开发,是代码整洁。表达式使用“${}”来表示,例如

<c: if test="${sessionScope.test=='hellking'}">

         ${seesionScope.test}<br>

   </c:if>

${sessionScope.test}就是表达式,它相当于Session.getAttribute(“test”)的值。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics