javaweb-JSP指令
2020-12-13 16:38
标签:形式 blog page 也会 web 结果 try turn safe 一、JSP指令简介 JSP指令(directive)是为了JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。 在JSP 2.0规范中共定义了是三个指令: JSP指令基本语法格式: 例如: 如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。 例如: 也可以写作: 二、Page指令 page指令用于定义 JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置,例如: JSP 2.0规范中定义的page指令的完整语法; 2.1、page指令的import属性 在jsp页面中,Jsp引擎会自动导入下面的包 可以在一条page指令的import属性中引入多个类或包,其中的每个包或类之间使用逗号(,)分隔 例如: 上面的语句也可以写为使用多条page指令的impoert属性来分别引入各个包或类 例如: 三、include指令 在Jsp中对于包含有两种语句形式: 1.@incude指令 2. 3.1、@include指令 @include可以包含任意的文件,当然只是把文件的内容包含进去。 include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个Servlet。所以include指令引入通常也称之为静态引入。 语法: ,其中的file属性用于指定被引入文件的路径。路径以"/"开头,表示代表当前web应用。 1.被引入的文件必须遵循JSP语法 2.被引入的文件可以使用任意的拓展名,即时其拓展是html,JSP引擎也会按照jsp页面的方式处理它里面的内容,为了见名知意,JSP规范建议使用.jspf(JSP fragments(片段))作为静态引入文件的扩展名。 3.由于使用include指令将会涉及到2个JSP页面,并会把两个JSP翻译成一个servlet,所以这两个JSP页面的指令不能冲突(除了pageEncoding和导包除外)。 include指令使用范例: 新建head.jspf页面和foot.jspf页面,分别作为jsp页面的头部和尾部,存放于WebRoot下的jsp文件夹中,代码如下: head.jspf代码: foot.jspf代码: 在WebContent文件夹下创建一个includeAll.jsp页面,在IncludeTagTest.jsp页面中使用@include指令引入head.jspf页面和foot.jspf页面,代码如下: 结果: 我们查看一下jsp引擎将includeAll.jsp翻译成IncludeAll_jsp类之后的源代码,找到Tomcat服务器的work\Catalina\localhost\test\org\apache\jsp目录下找到IncludeTagTest_jsp.java,如下图所示: 打开includeAll_jsp.java,代码如下所示: 可以看到,head.jspf和foot.jspf页面的内容都使用out.write输出到浏览器显示了。 使用@include可以包含任意的内容,文件的后缀是什么都无所谓。这种把别的文件内容包含到自身页面的@include语句就叫作静态包含,作用只是把别的页面内容包含进来,属于静态包含。 jsp:include指令为动态包含,如果被包含的页面是JSP,则先处理之后再将结果包含,而如果包含的是非*.jsp文件,则只是把文件内容静态包含进来,功能与@include类似。后面再具体介绍 javaweb-JSP指令 标签:形式 blog page 也会 web 结果 try turn safe 原文地址:https://www.cnblogs.com/sacai/p/11620961.html
1 @ page contentType="text/html; charset=UTF-8""%>
1 @ page contentType="text/html; charset=UTF-8" %>
2 @ page import="java.util.Date" %>
1 @ page contentType="text/html; charset=UTF-8" import="java.util.Date"%>
@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
[ errorPage="relative_url" ]
[ isErrorPage="true | false" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
[ pageEncoding="characterSet | ISO-8859-1" ]
[ isELIgnored="true | false" ]
%>
@page import="java.util.*,java.io.*,java.math.*"%>
1 @page import="java.math.*"%>
2 @page import="java.io.*"%>
3 @page import="java.util.*"%>
@ page language="java" contentType="text/html; charset=UTF-8"%>
h1 style="color: red">页面头部h1>
@ page language="java" pageEncoding="UTF-8"%>
h1 style="color:blue">页面尾部h1>
@ 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>jsp的include指令测试title>
head>
body>
@include file="/jsp/head.jsp" %>
h1>网页主体内容h1>
@include file="/jsp/foot.jsp" %>
body>
html>
package org.apache.jsp.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.util.*;
public final class includeAll_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
private static final javax.servlet.jsp.JspFactory _jspxFactory =
javax.servlet.jsp.JspFactory.getDefaultFactory();
private static java.util.Mapjava.lang.String,java.lang.Long> _jspx_dependants;
static {
_jspx_dependants = new java.util.HashMap
页面头部
\r\n");
out.write("body>\r\n");
out.write("html>");
out.write("\r\n");
out.write("\t网页主体内容
\r\n");
out.write("\t");
out.write("\r\n");
out.write("body>\r\n");
out.write("\t页面尾部
\r\n");
out.write("body>\r\n");
out.write("html>");
out.write("\r\n");
out.write("body>\r\n");
out.write("html>");
} catch (java.lang.Throwable t) {
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
try { out.clearBuffer(); } catch (java.io.IOException e) {}
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
else throw new ServletException(t);
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
}
}3.2、总结@include指令
3.3、jsp:include指令