JSP ---[注释,指令,静态包含,动态包含]

Posted 小智RE0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP ---[注释,指令,静态包含,动态包含]相关的知识,希望对你有一定的参考价值。



JSP包括 jsp指令, 网页内容,java代码

编写java代码时的语法为

<% 中间写入代码 %>

注释


  • 可以使用html中的注释(注释的内容在客户端浏览器中看不到,但是通过查看HTML源码可以看到这些内容).
<!--需要注释的内容-->
  • 隐藏注释(这是jsp 自己的注释,一般建议使用这种,用隐藏注释标记的字符会在JSP编译时被忽略掉;即使查看HTML源码,也看不到)
语法  <%--  需要注释的内容--%>  
  • 还可以使用单行注释
 <%
    //可使用单行注释;
  %>
  • 也可以使用多行注释
<%
    /*
    * 也可以使用多行注释;
    * */
  %>
  • 文档注释
    案例
<%!
    int i=0;
    /**
     * 当然,也可以使用文档注释;
     * @param a 参数a;
     */
    public static void test(int a){
      a++;
      System.out.println("<h4>"+a+"</h4>");
    }
    %>

调用此方法时;


在一个jsp文件分别使用< ! - - - - ><% - - - - %>两种

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<h1>学习 JSP 显示</h1>

<!--可以使用HTML中的网页注释标签,但是不安全;注释的内容在客户端浏览器中看不到,但是通过查看HTML源码可以看到这些内容-->

<%--隐藏注释:这是jsp 自己的注释,一般建议使用这种,用隐藏注释标记的字符会在JSP编译时被忽略掉;即使查看HTML源码,也看不到--%>
</body>
</html>

启动Tomcat;
查看浏览器页面;

右键查看网页源代码


查看jsp编译后的Java文件;<% - - - - %>在编译时就不存在,完全隐藏了.


指令元素


JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。
指令以<%@标记开始,以%>标记结束

<%@ 指令名 {属性名=" 值 "} %>

一个指令可能有多种属性

三种指令注释
<%@ page … %>定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include … %>包含其他文件
<%@ taglib … %>引入标签库的定义

Page指令


Page指令为容器提供当前页面的使用说明, page指令是最为复杂的一个指令,一个JSP页面可以包含多个page指令。

属性注释
page指令默认属性
Language定义语言类型,默认是Java
contentType定义响应内容的编码格式,
pageEncoding属性用来设置JSP文件的页面编码格式
import导入要使用的Java类(可以使用逗号同时引入多个包,也可以在一个JSP文件中多次使用import; import是page指令中唯一可以在一个JSP文件中多次出现的属性,其他属性在一个JSP文件中只能出现一次。
buffer指定out对象使用缓冲区的大小
autoFlush控制out对象的缓存区
errorPage指定当前的JSP页面在发生异常时需要转向的错误处理页面
isErrorPage指定当前页面是否可以作为另一个JSP页面的错误处理页面
extends指定servlet从哪一个类继承
info定义JSP页面的描述信息
isThreadSafe指定对JSP页面的访问是否为线程安全
session指定JSP页面是否使用session
isELIgnored指定是否执行EL表达式
isScriptingEnabled确定脚本元素能否被使用

案例,使用几个page的属性;

<%-- import属性可以使用逗号同时引入多个包,也能在一个JSP文件中多次使用import;
 import是page指令中唯一可以在一个JSP文件中多次出现的属性,其他属性在一个JSP文件中只能出现一次。 --%>
<%@ page import="java.util.ArrayList ,java.util.Date" %>
<%@ page import="java.util.Random" %>
<%--contentType:响应内容的格式 ; language:语言类型,默认是Java ; pageEncoding:设置JSP文件的页面编码格式 --%>
<%@ page contentType="text/html;charset=UTF-8" language="java"  pageEncoding="UTF-8" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    Date date=new Date();
    out.print("<h3>"+"时间为:"+date+"</h3>");
    Random random=new Random();
    out.print("<h3>"+"随机数为:"+random.nextInt(10)+"</h3>");
    ArrayList<String> arrayList=new ArrayList<>();
                      arrayList.add("qqq");
                      arrayList.add("www");
                      arrayList.add("eee");
                      arrayList.add("rrr");
                      out.print("集合为:"+arrayList);
%>
</body>
</html>


Include指令


JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。

语法: <%@ include file=“文件的相对地址” %>

静态包含 ; 动态包含

静态包含指的是在编译期间,把包含的页面也编译到当前页面的Java文件中,也就是编译时就将2个jsp文件合2为1;

例如: <%@include file=“copyright.jsp”%>

动态包含:在jsp页面中动态包含另一个资源;在运行期间;访问被包含的页面,并将响应结果同包含页面的响应结果合并,生成最终响应。

<jsp:include page=“被包含页面()” flush=“true或者false”/>
这个被包含页面作为一个相对路径,或是代表相对路径的表达式
flush:默认为 false。在简单页面中,该属性不纳入考虑



分别查看静态包含和动态包含的情况;

(1)静态包含

  • 在 staticjsp04.jsp 中静态包含 jsp04.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>静态包含</title>
</head>
<body>
<%--静态包含;在编译期间直接编译另一个页面--%>
<%@include file="jsp04.jsp" %>
<br/>
当前的页面:staticjsp04.jsp
</body>
</html>
  • 另一个jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>另一个页面</title>
</head>
<body>
           另一个页面:jsp04.jsp
</body>
</html>

启动服务器;

  • 查看 staticjsp04.jsp 编译后的 Java文件
  • (注意到其中对于jsp04.jsp也进行了编译)

  • 而且此时jsp04.jsp自身没有独立编译


(2)动态包含

  • 在dynamicjsp04.jsp 中动态包含jsp04.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>动态包含</title>
</head>
<body>
<%--动态包含 : 两个页面独立编译;在运行时,将响应结果合并--%>
<jsp:include page="jsp04.jsp" />

当前的页面: dynamicjsp04.jsp
</body>
</html>
  • jsp04.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>另一个页面</title>
</head>
<body>
           另一个页面:jsp04.jsp
</body>
</html>
  • 启动服务器,

  • 查看dynamicjsp04.jsp 编译后的 Java文件
  • (注意到它仅编译了自己的内容,对于jsp04.jsp,调用了指令)

  • 此时jsp04.jsp自身已经独立编译.’


以上是关于JSP ---[注释,指令,静态包含,动态包含]的主要内容,如果未能解决你的问题,请参考以下文章

19 jsp——jsp的转发标签

JSP_动作和隐式对象

JSP系列:JSP进阶-EL表达式和JSP标签

jsp的标签

在jsp页面中如何获取另一个jsp页面提交的信息

jsp中将一个jsp引入另一个jsp指定位置