编辑:这个问题是针对我所做的错误观察而提出的。请忽视。
我知道jsp是用来定义可以包含在jsp中的片段的。
除了这个约定之外,服务器(如Tomcat)和用户代理(如firefox、google bot等)处理文件的方式有什么不同吗?
我们的网站有一些通过AJAX加载的弹出窗口/对话框。其中大多数的内容都存储在jsp中,并在url中引用(例如,http://www.domain.com/folder/file.jspf)。最近我们发现,如果弹出窗口是在JSP中,那么它的行为将以以下方式不同:
1) Google会把它作为一个独立的页面索引。
2) jQuery的$(document).ready(function() {alert('this code is executed')});
永远不会运行
允许构造到达jspf文件的URL的唯一方法是将它们放在与普通JSP文件相同的目录中。(这是不允许的,如果你把他们放在/WEB-INF/)因此,当您这样做时,将取决于您正在使用的容器。Tomcat将把页面作为文本文档检索。但是,前端web服务器可以阻止这些url。.jspf文件扩展名是什么?如何编译?
希望能有所帮助。
首先,浏览器既不直接处理JSP文件也不直接处理JSPF文件。
相反,浏览器通过URL请求资源,服务器(在您的示例中是Tomcat)用HTML格式的文档响应。
是的,您请求了一个.jsp
资源,但是服务器编译了这个页面,Tomcat生成了HTML输出到浏览器。
当时,浏览器处理的是一个普通的HTML页面。
我确实看到了通过URL直接访问JSPF文件的潜在问题。片段应该包含在一个特殊的JSP指令:include
中。参见代码约定
Use of Composite View Patterns