JSP有三大指令,page,include,taglib
(一)JSP指令的静态包含和动态包含
JSP 中有两种包含:
静态包含:<%@ include file=" 被包含页面 "%> (使用 include指令)
动态包含:<jsp:include page=" 被包含页面 "></ jsp:include>
静态包含:
目录树:
a.jsp:(作用是在浏览器打印 THIS IS AAAAAAA)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
<title>Insert title here</title>
</head>
<body>
<h1>THIS IS AAAAAAA</h1>
</body>
</html>
b.jsp:(作用是在浏览器打印 THIS IS BBBBBB)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
<title>Insert title here</title>
</head>
<body>
<h1>THIS IS BBBBB</h1>
</body>
</html>
text.jsp
<%@ include file="/a.jsp" %>
<%@ include file="/b.jsp" %>
访问text.jsp:
*静态包含是 把所包含的文件合并到一起,如上例,就是把 a.jsp,b.jsp 和 text.jsp合并在一起。
特别作用:可以在一个 JSP(如叫 a.jsp)文件中,定义一些变量,或是引入一些公用的css,js文件。然后其他JSP文件可以通过静态包含 a.jsp 使共有的文件或变量一次性导入,而不用每次都敲。
动态包含:
text.jsp:(a.jsp 与 b.jsp 与上相同)
<jsp:include page="a.jsp"></jsp:include>
<jsp:include page="b.jsp"></jsp:include>
效果跟静态包含相同。
静态包含和动态包含的区别:
静态包含是把不同的 jsp 文件,编译成一个 java 文件。
即静态包含在转换成java文件时,将包含文件的内容“复制”到主体文件,然后作为一个整体编译。最终编译出一个 java 文件。
另外,静态包含发生在 :JSP -> JAVA 文件阶段
静态包含在两个文件中不允许有相同的变量,动态包含允许。
而动态包含
则是有多少个 jsp 文件,就编译出多少个java文件。
动态包含是将各个 jsp文件分别转换,分别编译。最终编译出多个 java 文件。
动态包含发生在:执行class文件阶段,动态加入。
(二)taglib指令的使用:
taglib 指定用于使用第三方的标签。
标签就是,如:<jsp:include....> 就是 jsp 的标签
如:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
uri 是第三方标签所在位置
prefix 为标签前缀
就可以使用标签:
<c:out value=“....”></c:out>