java web开发 include与jsp:include总结 - 点滴记忆*记忆点滴
收藏本站

java web开发 include与jsp:include总结

java web 开发中特别是前端,经常为了代码的重用性而将页面拆分成小页面。这时就需要用到嵌套将各小页面整合成符合需求的大页面。现在也有些开源框架如sitemesh 专门帮你构建页面。但jsp 原生的导入方式我们还是需要熟悉。在jsp中常用的导入方式有两种形式,分别是

<%@ include file=” ”%> 指令元素
<jsp:include page=” ” flush=”true”/> 行为元素,标签形式

具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。这里简单总结一下:

<%@ include file=” ”%> 指令元素

    运行时间:在翻译阶段:也就是jsp被转化成servlet的阶段进行的。简单的说a.jap 以指令元素方式引入了b.jsp 的话,在a编译的时候(通常是jsp 第一次被调用),会将b.jsp 整合进来一同编译成一个servlet 文件。

    适合场景:适合一些变动较少页面。因为这种方式引入的页面一变动会需要将引入它的主页面及其本身都重新编译一次。

    页面形式:不需要是完整页面形式,如不需要指定 contentTypecharset等在主页面已经指定的内容。

    优点:相对速度要快点。


<jsp:include page=” ” flush=”true”/> 行为元素,标签形式

    运行时间:在请求处理阶段执行的(此处要对 请求处理阶段进行说明一下,Jsp容器除了上面提到的负责将jsp页面转化成servlet外,还负责调用jsp页面实现类以处理每个请求并产生应答.这 个阶段我们就称为请求处理阶段.请求处理阶段仅执行类文件)。主文件不会将被引入文件代码嵌入,而是生成一句调用指令,如:JspRuntimeLibrary.include(request, response, "b.jsp", out, true);

    适合场景:需要经常变动的页面。

    页面形式:正因为是调用形式要求被引入页有完整的结构,如有contentType等。

    优点: 编译快。


    留下足迹