jsp包括action标记和jsp include指令之间的区别

时间:2016-08-31 12:40:19

标签: jsp-tags

我发现在更改包含文件时,如果我使用include动作标记,那么更改将反映在包含jsp中。但是如果我使用include指令,则更改不会反映在包含jsp。

但是,我发现无论是否使用include action tag或include指令,更改都会反映在jsp中。

请使用程序向我显示差异。

1 个答案:

答案 0 :(得分:0)

指令的内容在转换阶段构成主JSP的一部分,即,当JSP被编译到等效的servlet中时。因此,使用指令componnet包含的jsp内容在转换时合并到父jsp中,只发生一次。这个include指令主要用于解决页眉和页脚,这些页眉和页脚主要是静态的,不会经常更改。

另一方面,include动作标签用于包含动态内容,即,您可以选择将参数发送到该标签可以处理和显示的标签。这与页眉和页脚一次又一次显示相同内容不同。

main.jsp中

<jsp:include page="included.jsp"> 
    <jsp:param name="message" value="World" /> 
</jsp:include>

Included.jsp

<html>
<head>
</head>
<body>
<h2>Hello <%=request.getParameter("message") %></h2>
</body>
</html>

您使用的服务器也是如此。从Tomcat7开始,事情发生了变化,如果包含的jsp(通过任何机制)被更改,主jsp也将编译。 这个link有更多细节。