Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在没有ajax的情况下将不同的jsp页面组合成一个页面_Java_Jsp_Web - Fatal编程技术网

Java 如何在没有ajax的情况下将不同的jsp页面组合成一个页面

Java 如何在没有ajax的情况下将不同的jsp页面组合成一个页面,java,jsp,web,Java,Jsp,Web,我正在开发一个包含不同页面的网站,这些页面共享一些公共部分,如菜单、页眉和页脚 所以我想做的是只编写一次这些通用组件,并将它们合并到一个页面中 到目前为止,我正在做一些我确信不是最好的方法的事情:我正在生成没有页眉、菜单和页脚的jsp文件(只有一些将承载这些组件的空白div),一旦浏览器加载了页面,我就用ajax检索每个共享组件。但这样做并没有得到优化,因为它迫使浏览器运行多个HTTP请求,只加载一个页面 你知道这样做最好的方法是什么吗?类似于将不同的jsp页面组合成一个页面的方法(在服务器端,

我正在开发一个包含不同页面的网站,这些页面共享一些公共部分,如菜单、页眉和页脚

所以我想做的是只编写一次这些通用组件,并将它们合并到一个页面中

到目前为止,我正在做一些我确信不是最好的方法的事情:我正在生成没有页眉、菜单和页脚的jsp文件(只有一些将承载这些组件的空白div),一旦浏览器加载了页面,我就用ajax检索每个共享组件。但这样做并没有得到优化,因为它迫使浏览器运行多个HTTP请求,只加载一个页面

你知道这样做最好的方法是什么吗?类似于将不同的jsp页面组合成一个页面的方法(在服务器端,避免所有那些ajax调用)。我正在考虑一些帮助我构建它们的页面所使用的骨架

我真的希望把我自己说清楚


非常感谢您抽出时间,您/我们是有史以来最好的社区

您可以使用一个主jsp文件,并在单独的jsp文件中分离页面的不同部分,您也可以将这些内容包含在主jsp文件中(这只是一个示例,但您可能会对如何分割页面感到疯狂)

main.jsp



您不再需要Ajax调用。

在每个JSP文件中,包括页眉、菜单和页脚,如下所示

<%@ include file="header.jsp" %>
<%@ include file="menu.jsp" %>
<!--
Your JSP page content
-->
<%@ include file="footer.jsp" %>


这样,如果您想更改页眉/菜单/页脚中的任何内容,它将位于一个位置。

我还找到了以下解决方案:

<jsp:include page="header.jsp"/>

但您必须注意,因为这两种解决方案具有不同的行为。

下一个

<%@ include file="header.jsp" %>

将命名文件的内容注入到包含标记的JSP中,就像复制和粘贴了标记一样。这是在解析包含文件的内容之前完成的。

第二种表现不同

<jsp:include page="header.jsp"/>

呈现指定页面的结果被注入到标记点处的包含JSP中。这基本上是通过将请求的页面作为单独的呈现请求提交到同一容器中,并获取结果而不是文件的内容来完成的

要了解更多信息,这实际上是这些信息的来源

<jsp:include page="header.jsp"/>