3

编辑:这个问题是针对我所做的错误观察而提出的。请忽略。

我知道 JSPF 用于定义可以包含在 JSP 中的片段。

除了这个约定之外,服务器(例如 Tomcat)或用户代理(例如 firefox、google bot 等)处理文件的方式是否存在差异?

我们的网站有一些通过 AJAX 加载的弹出窗口/对话框。其中大部分内容存储在 JSPF 中,并在 url 中引用(例如, http: //www.domain.com/folder/file.jspf)。最近我们发现,如果弹出窗口位于 JSP 内部,它的行为会在以下方面有所不同:

1) 谷歌会将其作为独立页面进行索引。
2) jQuery$(document).ready(function() {alert('this code is executed')});永远不会运行。

4

2 回答 2

2

首先,浏览器既不直接处理 JSP 也不直接处理 JSPF 文件。

相反,浏览器通过 URL 请求资源,服务器(在您的情况下为 Tomcat)以 HTML 格式的文档进行响应。

是的,您请求了.jsp资源,但是服务器编译了页面并且 Tomcat 生成了 HTML 输出到浏览器。

那时,浏览器处理的是一个纯 HTML 页面。

我确实看到了通过 URL 直接访问 JSPF 文件的潜在问题。片段应该包含在一个特殊的 JSP 指令中:include. 参见Use of Composite View Patterns代码约定

于 2015-09-18T10:15:08.763 回答
2

允许构造 URL 以到达 jspf 文件的唯一方法是将它们放在与普通 JSP 文件相同的目录中。(如果您将它们放在 /WEB-INF/ 中,则不允许这样做)因此,当您这样做时,将取决于您使用的容器。Tomcat 将检索该页面作为文本文档。但是,前端 Web 服务器可以阻止这些 URL。 什么是 .jspf 文件扩展名?如何编译它?

希望能帮助到你。

于 2015-09-22T15:02:24.850 回答