本文介绍使用JSP include机制改进外观,以及介绍更好的外观和服务器端 include。

一切***实践都根据 JavaServer Pages 技能。要运转任何一种实践,需求在本地机器或测验服务器上设置契合 JSP 的 Web 容器,如 Apache Tomcat。您还需求运用文本修改器或 IDE 编写 JSP 页面代码。请参阅参阅资料,获取 Tomcat 和与 JSP 兼容的 Web 容器和 IDE 的清单的链接。

运用JSP include机制改善外观  JSP include 第1张

更好的外观

为 Web 页面创立共同的规划和布局是保证取得专业化外观的最简略办法之一。您或许看过足够多的网站,知道单个站点中的大部分页面都共用一致的页面头、页面尾以及某种类型的导航栏。在规划杰出的站点上,这些元素将在每个页面上出现相同的布局、内容和功用,而主面板(一般称为内容窗格)会跟着每个视图而改变。

曾经,这种布局简直完全由结构和结构集完成。每段静态内容被放置在一个结构中,而页面的主体内容被放置在中心结构中。结构的费事便是不同的浏览器常常会以不同办法显现它们,使它们的外观不共同。运用结构从内部页面链接外部站点则比想像的愈加困难。原本是想答应用户在不离开站点的情况下检查外部内容,但成果往往不共同。用户终究看到的是整个站点被挤进小得多的结构中,更糟的是,您的站点终究会嵌套在另一个站点结构中。这种紊乱唆使 Web 规划者寻觅一种更佳的解决方案。服务器端 include(server-side include,SSI)便是一种。

服务器端 include

不久前,SSI 仍是用于创立同享内容的***的选项之一。简略的 SSI 伪指令答应您创立包括另一个页面内容(如头和脚注文件)的页面,如下面所示。

  1. SimpleSSItest
  2. ThiscontentisstaticallyinthemainHTMLfile.
  3. ]]>

咱们不久将运用该文件来做一个操练。现在,您应该将它另存为 test-ssi.shtml。在大多数设置中,SSI 文件有必要以 .shtml 结束,这让 Web 服务器知道将它们解析为 SSI 伪指令。下面显现了名为 included.html 的包括文件的内容。

  1. Thiscontentisinanotherfile,included.html
  2. ]]>

当恳求 test-ssi.shtml 时,您将看到该文件的内容以及 included.html 的内容。您能够在任何支撑 SSI 的 Web 容器(如 Apache Tomcat,请参阅参阅资料)上检查这些文件。

从用户视点看,SSI 与结构比较有严重改善,由于在单个文件和从其它被包括文件引进内容的文件之间没有清楚明了的不同。晦气方面便是 SSI 需求一种特定的服务器设置,而 Java 开发人员常常无法运用这种设置。别的,SSI 一般要求被包括内容是静态的,虽然在后面的版别中参加了动态内容包括。

关于在网站或 Web 应用程序中包括不同类型的内容来说,SSI 是可行的解决方案,但它们不是 Java 开发人员的***挑选。这不只由于 JavaServer Pages 技能是代替 SSI 的全 Java 技能,还由于这两种技能不太简略结合在一起。JSP 页以扩展名 .JSP 结束,这表明要使 SSI 伪指令起作用,有必要更改 SSI 装备以解析 JSP 文件(给每个 JSP 页解析增加开支),或许更改 JSP 装备以将 .shtml 扩展名作为 JSP 页处理(这是一个坏主意)。关于 Java 开发人员来说,JSP 技能是***的内容管理解决方案,走运的是,其 include 机制很简略把握。

JSP include

JSP include 伪指令与其 SSI 对等伪指令极端类似。下面是 SSI 伪指令的 JSP 对等伪指令。任何支撑 JSP 的 Web 容器都将处理该 JSP 页的显现(相同,请参阅参阅资料一节,以取得链接)。应该将该文件另存为 test-include.jsp。

  1. JSPincludeelementtest
  2. ThiscontentisstaticallyinthemainJSPfile.
  3. ]]>

include 伪指令使将一致的头文件和脚注文件合并到您的站点变得十分简略。清单 4 显现了具有几个被包括文件的主索引页。

  1. newInstance.com
  2. ]]>

经过检查代码,您将了解有关怎么运用 JSP include 的各种办法。您还应该实验一下该代码,让自己把握其作业原理。

增加动态内容

除了如头、脚注和导航文件之类的静态内容外,清单 4 还包括对 Weblog(/mt-blogs/index.jsp)的调用,这触及动态内容的主题。好像 SSI include 伪指令那样,当 JSP include 机制应用于动态内容时会出现问题。能够经过运用 JSP include 伪指令来引进动态内容,但将无法取得对该内容的更改。这是由于 Web 容器将被包括文件作为原始(包括)页面的一部分读取。容器将成果高速缓存为单个文件,而不是多个 JSP 组件。由于 Web 容器不会针对更改去轮询被包括文件,所以它不会知道有任何更改产生,它将主动显现高速缓存的页面而不是改写的页面。要了解它的作业原理,咱们将做一个简略的操练。首要,将已保存的 included.html 页面更新为下面所示的那样。

  1. Thiscontentisinanotherfile,included.html.

  2. Somenewcontent...
  3. ]]>

接下来,保存这些更改,导航至 test-include.jsp 文件,改写浏览器。您将留意到浏览器中没有显现 included.html 中的新内容。被包括文件的内容在更改产生之前就被高速缓存了,所以它不会显现出来。如果您的站点包括动态内容或或许被频频修正的内容,那么这会是一个问题。走运的是,有一个变通办法。鄙人一个部分中,我将向您演示怎么运用 符号将动态内容参加 Web 页面。在此之前,请参阅参阅资料一节并实验这儿供给的代码,我将在网上与您再见。

【修改引荐】

  1. JSP中根据Session的在线用户统计分析
  2. Servlet和JSP功能优化经验谈
  3. JSP标签库解析
  4. 在JSP Servlet开发中导入事情驱动技能
  5. JSP编程应留意的六个常见问题
转载请说明出处
知优网 » 运用JSP include机制改善外观

发表评论

您需要后才能发表评论