首页 > 代码库 > JSP静态导入与动态导入

JSP静态导入与动态导入

JSP静态导入(JSP指令标记include)

        JSP页面第一次被请求时,会被JSP引擎转译成Servlet的Java文件,然后再被编译成字节码文件执行。JSP指令标记为JSP页面转译提供整个页面的相关信息。

        include指令用于在JSP页面静态插入一个文件,被插入的文件可以是JSP页面、HTML页面、文本文件或一段Java代码。使用了include指令的JSP页面在转换成Java文件时,将被插入的文件在当前JSP页面出来该指令的位置做整体的插入,合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。因此,必须保证插入文件后形成的新的JSP页面符合JSP语法和逻辑规则。include指令的使用格式为:

<%@ page include file="文件的URL" %>
       插入文件可以使用绝对路径和相对路径,一般要使用相对路径。相对路径是相对于当前页面所在目录的路径,例如,当前网页所在目录是Web服务根目录,被插入的文件在根目录下的text文件中,文件名为head.txt,相对路径的使用格式如下:
<%@ page include file="text/head.txt" %>
       当被插入的文件被修改后,JSP引擎会重新将当前的JSP页面和修改后的被嵌入的文件合并成一个新的JSP页面,然后转译、编译成新的Java字节文件供客户访问。

      使用include指令可以实现代码的复用,提高代码的使用效率。例如,页面一般都需要一个标题栏、导航栏、页脚等,用户可以将标题栏等写成单独的文件,每个JSP页面都可以在适当的位置用include指令插入标题栏、导航栏、页脚等文件,这样就极大地提高了代码的复用和效率,使代码更便于修改。

      值得注意的是,被插入的文件是文本文件时需注意在文件的开始部分指明文件的相关信息,这样方便JSP页面和被嵌入的文件合并生成一个新的JSP页面不至于出现乱码等问题。例如(head.txt):

<%@ page contentType="text/html;charset=GB2312"%>
<h1> ..头部信息..</h1>
<div> ... </div>



JSP动态导入(jsp:include动作标记)

     include动作标记用来在JSP页面中动态包含一个文件,如果被包含的页面是JSP页面,则先处理之后再将结果包含,而如果包含的是非*.jsp文件,则只是把文件内容静态包含进来。包含页面程序与被包含页面程序是彼此独立的,互补影响。jsp:include标记的一般使用格式为:

<jsp:include page="文件的URL" />
或
<jsp:include page="文件的URL">
       <jsp:param 子标记/>
</jsp:include>



JSP动态导入与静态导入的区别:

       1、处理时间和方式不同:include指令标记插入的文件在页面转译时就合并到一起了,被包含文件与当前页面组合而成的新页面必须符合JSP的语法和逻辑规则,由于是提前合并编译,所以执行速度快;而jsp:include动作标记是被包含文件语法和逻辑独立于当前页面,单独被JSP引擎编译,当前页面执行时再将被包含文件的运行结果传送给客户端,由于是执行页面时处理包含文件,所以执行速度慢,但可以利用param子标记传递参数,使用更灵活。

        2、适用情况不同:静态导入适合导入不会经常变化的资源例如html文件,而动态导入适合一个时常变化的资源例如JSP文件。




JSP静态导入与动态导入