JSP 动作
JSP 动作利用 XML 语法格式的标记来控制 Servlet 引擎的行为。利用 JSP 动作可以动态地插入文件、重用 JavaBean 组件、把用户重定向到另外的页面、为 Java 插件生成 HTML 代码。
JSP 动作包括:
jsp:include:在页面被请求的时候引入一个文件。jsp:useBean:寻找或者实例化一个 JavaBean。jsp:setProperty:设置 JavaBean 的属性。jsp:getProperty:输出某个 JavaBean 的属性。jsp:forward:把请求转到一个新的页面。jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记。
jsp:include 动作
向当前页面加入另一文件的方法。该动作把指定文件插入正在生成的页面。其语法如下:
<jsp:include page="relative URL" flush="true" />Code language: HTML, XML (xml)
前面已经介绍过 include 指令,它是在 JSP 文件被转换成 Servlet 的时候引入文件,而这里的 jsp:include 动作不同,插入文件的时间是在页面被请求的时候。jsp:include 动作的文件引入时间决定了它的效率要稍微差一点,而且被引用文件不能包含某些 JSP 代码(例如不能设置 HTTP 头),但它的灵活性却要好得多。
下面我们看一个例子。首先是 head.html,内容如下:
<h1>这里是头部内容</h1>Code language: HTML, XML (xml)
然后是 foot.html,内容如下:
<h2>底部内容</h2>Code language: HTML, XML (xml)
然后是 JSP 里面去引入这两个文件:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="head.html"></jsp:include>
<%
out.println("hello world 你好世界!");
%>
<jsp:include page="foot.html"></jsp:include>
</body>
</html>Code language: HTML, XML (xml)
解析后的 Servlet 代码
执行结果对应的 Java 代码如下:
out.write(" ");
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "head.html", out, true);
out.write(" \r\n");
out.write(" 正文部分\r\n");
out.write(" ");
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "foot.html", out, true);Code language: CSS (css)
Previous: include 指令与动作
Next: useBean 动作