JSP 动作

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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注