专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » include:JSP实战:使用JSP include机制改进外观 »正文

include:JSP实战:使用JSP include机制改进外观

来源: 发布时间:星期四, 2008年12月18日 浏览:17次 评论:0
JSP 最佳实战系列 本系列文章并不打算完整地介绍 JSP 技术也不打算作为如何构建特殊类型应用指南相反系列文章中每个部分都集中讨论用 JSP 技术编程个方面将它分成很小片段有关 JSP 技术更广泛介绍或者对如何将它用于特殊结果更深入研究请参阅参考资料部分 您将需要什么 本系列文章中所有最佳实战都基于 JavaServer Pages 技术要运行任何种实战需要在本地机器或测试服务器上设置符合 JSP Web 容器如 Apache Tomcat您还需要使用文本编辑器或 IDE 编写 JSP 页面代码请参阅参考资料获取 Tomcat 和和 JSP 兼容 Web 容器和 IDE 清单链接 更好外观 为 Web 页面创建设计和布局是确保获得专业化外观最容易思路方法的您或许看过足够多网站WebSite知道单个站点中大部分页面都共用统页面头、页面尾以及某种类型导航栏在设计良好站点上这些元素将在每个页面上呈现相同布局、内容和功能而主面板(通常称为内容窗格)会随着每个视图而变化 以前这种布局几乎完全由框架和框架集实现每段静态内容被放置在个框架中而页面主体内容被放置在中间框架中框架麻烦就是区别浏览器常常会以区别方式显示它们使它们外观不使用框架从内部页面链接外部站点则比想像更加困难原本是想允许用户在不离开站点情况下查看外部内容但结果往往不用户最终看到是整个站点被挤进小得多框架中更糟站点最终会嵌套在另个站点框架中这种混乱驱使 Web 设计者寻找种更佳解决方案服务器端 (server-side SSI)就是 服务器端 不久前SSI 还是用于创建共享内容最受欢迎选项的简单 SSI 伪指令允许您创建包含另个页面内容(如头和脚注文件)页面如清单 1 中所示 清单 1. 正使用 SSI <![CDATA[ <html> <head> <title>Simple SSI test</title> </head> <body> This content is ally in the HTML file.<br /> <!--# virtual="d.html" --> </body> </html> ]]> 我们不久将使用该文件来做个练习目前您应该将它另存为 test-ssi.shtml在大多数设置中SSI 文件必须以 .shtml 结尾这让 Web 服务器知道将它们解析为 SSI 伪指令清单 2 显示了名为 d.html 包含文件内容 清单 2. 包含内容 <![CDATA[ This content is in another file, d.html ]]> 当请求 test-ssi.shtml 时您将看到该文件内容以及 d.html 内容您可以在任何支持 SSI Web 容器(如 Apache Tomcat请参阅参考资料)上查看这些文件 从用户角度看SSI 和框架相比有重大改进在单个文件和从其它被包含文件引进内容文件的间没有显而易见差别不利方面就是 SSI 需要种特定服务器设置而 Java 开发人员常常无法使用这种设置另外SSI 通常要求被包含内容是静态尽管在后面版本中加入了动态内容包含 对于在网站WebSite或 Web 应用中包含区别类型内容来说SSI 是可行解决方案但它们不是 Java 开发人员最佳选择这不仅 JavaServer Pages 技术是替代 SSI 全 Java 技术这两种技术不太容易结合在JSP 页以扩展名 .jsp 结尾这表示要使 SSI 伪指令起作用必须更改 SSI 配置以解析 JSP 文件(给每个 JSP 页解析增加开销)或者更改 JSP 配置以将 .shtml 扩展名作为 JSP 页处理(这是个坏主意)对于 Java 开发人员来说JSP 技术是最好内容管理解决方案幸运 机制很容易掌握 JSP JSP 伪指令和其 SSI 对等伪指令极其相似清单 3 显示了清单 1 所示 SSI 伪指令 JSP 对等伪指令任何支持 JSP Web 容器都将处理该 JSP 页显示(同样请参阅参考资料以获得链接)应该将该文件另存为 test-.jsp 清单 3. JSP 伪指令 <![CDATA[ <%@ page language="java" contentType="text/html" %> <html> <head> <title>JSP element test</title> </head> <body> This content is ally in the JSP file.<br /> <%@ file="d.html" %> </body> </html> ]]> 伪指令使将统头文件和脚注文件合并到您站点变得非常容易清单 4 显示了具有几个被包含文件主索引页 清单 4. 主索引页 JSP 伪指令 <![CDATA[ <%@ page language="java" contentType="text/html" %> <html> <head> <title>Instance.com</title> <meta http-equiv="Content-Type" content="text/html; char=iso-8859-1" /> <link href="/styles/default.css" rel="stylesheet" type="text/css" /> </head> <body> <%@ file="header.jsp" %> <%@ file="navigation.jsp" %> <%@ file="bookshelf.jsp" %> <%@ file="/mt-blogs/index.jsp" %> <%@ file="footer.jsp" %> </body> </html> ]]> 通过查看代码您将了解有关如何使用 JSP 各种思路方法您还应该试验下该代码让自己掌握其工作原理 添加动态内容 除了如头、脚注和导航文件的类静态内容外清单 4 还包括对 Weblog(/mt-blogs/index.jsp)这涉及动态内容主题如同 SSI 伪指令那样当 JSP 机制应用于动态内容时会出现问题可以通过使用 JSP 伪指令来引入动态内容但将无法获得对该内容更改这是 Web 容器将被包含文件作为原始(包含)页面部分读取容器将结果高速缓存Cache为单个文件而不是多个 JSP 组件 Web 容器不会针对更改去轮询被包含文件所以它不会知道有任何更改发生它将自动显示高速缓存Cache页面而不是刷新页面要了解它工作原理我们将做个简单练习首先将已保存 d.html 页面更新为清单 5 中所示那样 清单 5. 修改包含内容 <![CDATA[ This content is in another file, d.html. <br /> Some content... ]]> 接下来保存这些更改导航至 test-.jsp 文件刷新浏览器您将注意到浏览器中没有显示 d.html 中新内容被包含文件内容在更改发生的前就被高速缓存Cache了所以它不会显示出来如果您站点包含动态内容或可能被频繁修改内容那么这会是个问题幸运个变通思路方法在下个部分中我将向您演示如何使用 标记将动态内容加入 Web 页面在此的前请参考参考资料节并试验这里提供代码我将在网上和您再见 参考资料 要完成本系列文章中练习将需要和 JSP 兼容 Web 容器如 Apache Tomcat 您可能还想要研究如何使用符合 JSP IDE您可以从下面几个 IDE 中选择: JUnit NetBeans Eclipse 有关 JSP 技术基本详细信息最好办法是阅读 JSP 规范标准 有关 JSP 技术指导性介绍请尝试阅读教程“JSP 技术入门” developerWorks 也提供了许多有关 JSP 及其相关技术定深度文章包括下列文章: 摘自 Professional JSP(2001 年 2 月)“JSP architecture”是有关 JavaServer Pages 技术极佳初级读本 “JSP 标记库:着意设计更好可用性”(2001 年 12 月)研究了 JSP 定制标记库工具该工具允许您开发自己用于描述 Web 页面组件标记 “利用 JSP 代码管理您图像”(2002 年 11 月)讨论了许多本部分 JSP 最佳实战中提供概念 ? 但集中讨论基于图像内容 Mark Kolb 撰写 JavaServer Pages Standard Tag Library 系列文章(共 4部分)为本系列文章所包含最佳实战提供了些后端理论至本次截稿时间仅发表了 3篇文章:JSTL 入门:表达式语言(2003 年 2 月)介绍了 JSTL 和表达式语言(Expression Language);JSTL 入门:探讨 core(2003 年 3 月)通过讨论流控制和 URL 管理更进步研究核心库;以及 Part 3, Presentation is everything(2003 年 4 月)集中讨论了用于国际化 fmt 标记使用 Hans Bergsten JavaServer Pages(O´Reilly & Associates2002 年)是学习 JSP 技术不可缺少参考资料 developerWorks 上“Ten JSP technology books compared”有点儿过时(2001 年 6 月)但它仍出色地评论了非常有用 JSP 标题 如果您喜欢 JSP 最佳实战也可以参考 developerWorks 上 EJB best practices 系列文章 JSP 技术基于 Java Servlet 技术通过阅读 Jason Hunter 撰写 Java Servlet Programming(O´Reilly & Associates2002 年)学习有关 Servlet 更多知识 请参阅 developerWorks Java 技术教程页面从 developerWorks 获取免费 Java 技术教程完整列表 在 developerWorks Java 技术专区可以找到数百篇有关 Java 编程各个方面文章(包括有关 JSP 技术更多文章)
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: