JSP包含三个指令,include, page, taglib.
1.include
include可以引入其他的页面。类似与c语言的#include将头文件导入到c文件中。
使用:
<body>
<%@ include file="common/header.jsp"%>
<h1>网页主体</h1>
<%@ include file="common/footer.jsp"%>
</body>
他与jsp标签中的<jsp:include>使用类似
<jsp:include>使用:
<body>
<jsp:include page="common/header.jsp"/>
<h1>网页主体</h1>
<jsp:include page="common/footer.jsp"/>
</body>
<%@ include file="common/header.jsp"%>和<jsp:include page="common/header.jsp"/>虽然在功能上是一致的。但是在实现上有一些区别;我们都知道jsp最终是要翻译成java类的。他们两个的区别也就体现在这里。
<%@ include file="common/header.jsp"%>的实现:
out.write("<h1>我是Header</h1>\r\n");
out.write(" <h1>网页主体</h1>\r\n");
out.write("<h1>我是Footer</h1>\r\n");
可以看到这种实现是直接将代码放到了文件中。
<jsp:include page="common/header.jsp"/>的实现:
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "common/header.jsp", out, false);
out.write("<h1>网页主体</h1>\r\n");
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "common/footer.jsp", out, false);
2.page
import 可以导入java中的包,然后在jsp页面中的代码就可以直接使用包中的类了。比如说:
<%@page import="java.util.*" %>
<h1>Date:<%= new Date()%></h1>
其他的都可以根据字面意识进行理解。。。
3、taglib
taglib字面意思就是标签库,其用处就是可以导入一些标签库,比如说jstl标签库,jstl有多个标签库,以核心标签库为例
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
之后就可以在jsp页面中使用jstl标签了。
不过要注意的是,jstl需要有jstl包和standard包的支持,如果使用maven构建项目可以直接导入
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!-- standard标签库-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
不仅需要在项目中导入这两个包,因为web项目是在Tomcat服务器上运行的,所以还需要将这两个包复制到Tomcat的依赖目录中去。