1、沈阳航空工业 学院毕业设计(论文) 0 Jsp最佳实践 Jsp 技术是 servlet 技术的扩展,结合 html、 java 代码于一个文件。 Java servlet技术关注于利用 PrintWriter.println()语句产生 html 输出的 java 类, Jsp 将这个概念抽象到一个更高的层次。使用 jsp, web 开发者可以写静态的 html 和将 java 代码片段加入到需要动态产生的页面中,从而,这种灵活的技术使简单 web 应用的快速开发成为可能。然而它能被滥用,从而形成难以维护、重用和改进的不必要的复杂的应用软件。 遵循以下提示的技巧可以避免这种不必要的复杂应用。
2、1、 分离 html和 java 2、 将业务逻辑放在 javaBean 中 3、 从标签定制管理器类中分离出常用行为 4、 较之 java 代码在 jsps 中,更倾向于 html 在 java 管理器类中 5、 使用适当的包含机制 6、 使用 jsp 模版机制 7、 使用 CSS 样式表 8、 使用 MVC 模式 9、 使用有效的标签定制库。 10、 尽可能多使用 jsp 注释 11、 遵循 html最佳实践 12、 利用 jsp 异常机制 这些可帮助你写出可重用、易维护的 jsp 一、分离 html和 java 将一个 web 页的所有必须的 java、 html 代码放入一个 jsp
3、文件中是诱人的。这种方法使初学者定位相关联的代码和理解它们如何相互作用变的容易。然而,当应用变的更加复杂、开发者变的更加棘手时,这样方式将变的更加繁重和昂贵。 沈阳航空工业 学院毕业设计(论文) 1 结合 html 和 java 在同一的代码来源使程序变的非常不可读。为增强可读性,很多开发者使用缩排格式,但是混合 html 和 java 片段的文件使有益的缩排格式变的极其难以维护。 许多 web 开发方法和机制强调 html 和 java 代码的分离,从而不同的开发者可以将精力集中在他们擅长的方面。适当地将 java 代码和包括 jsp 标签、定制标签在内的 html 分离,可以使 web 设
4、计者、 html 编写者工作在 html(表述)方面,而 java开发者工作在应用的逻辑处理部分。当 Java 开发者实现 jsp 定制标签后的行为时关注的是业务逻辑, web 设计者则象使用普通 html 标签一样使用这些定制标签。 二、将业务逻辑放在 JavaBean中 直接包含在 jsp中的 java代码并不象包含在 JavaBean中的 java代码那样容易被其他 jsp 页面理解,通用行为和业务逻辑放在 JavaBean 中不仅可以被其它 jsp,也可以被应用的其它部分使用,这是因为 JavaBean仅仅是满足一些 基本约定(比如不含参数的构造器,为 private 类属性设置 se
5、t/get 方法)的 java 类,也能作为任意其它类使用。值得注意的是, ejb 在封装针对应用中所有组件通用的行为和数据时也是有用的。 三、从标签定制管理器类中分离出常用行为 作为定制标签管理器类的 java 类实现定制标签,并不象 JavaBean,它不能如普通 java 工具类一样易于使用,而是,定制标签管理器类实现特定的接口或继承提供这些接口基本实现的类。由于它们不易于在 jsp 外使用,定制标签管理器类应当仅包含那些不能在定制标签之外、 jsp 之外使用的特定行 为。定制标签常常需要针对通用行为和业务逻辑的支撑,并利用提供通用行为的 JavaBeans 和 EJBs 四、较之 ja
6、va 代码在 jsp 中,更倾向于 html 在 java 管理器类中 有时从 java 中分离 html、 jsp 标签和如定制标签的 html 会需要不必要的令人费解的代码,基于此,你要么将 java 片段和表述放入 jsp 中,要么将 html 代码放入 java标签管理器类。 较之看到在 jsp 中作为脚本的 java,我更愿意看到在 java 类中的一小部分 html代码。由于定制标签管理器针对它们所实现的定制标签是特定的(同时也不能在 jsp之外使用),放入一些 html 代码不会有什么麻烦, SUN 的 J2EE蓝皮书对此有更深入的讨论。 沈阳航空工业 学院毕业设计(论文) 2
7、对此标准也有例外:如果在 jsp 中包含一行或两行 java 代码片段和在 java 管理器类中包含许多行 html 代码解决的问题一样,那么允许在 jsp 中存在 java 代码应该是明智的。 五、使用适当的包含机制 包含机制在代码重用方面是少有的好的设计。从多个页面中分离出通用的 jsp和 html代码放入一个文件可以提高可维护性(仅需要在一处改变)和可重用性。 有两种包含机制缩小了代码冗余促进了代码重用。为确保能够使用适当的包含机制,理 解它们二者间的不同是重要的。除非我可以证明需要 include 动作是正当的,一般地情况下我使用 include 指令。在蓝皮书“ web 层”部分中的
8、第七个问题,对理解两种包含机制的不同和确定在一特定情况使用哪一种提供了很好的资源。 六、使用 jsp 模版机制 一个模版机制允许一个公用的文件来控制 web 页、 jsp、页面布局。于是,当你想改变页面布局时,你仅仅需要修改一个文件,所有其它的页面将反映出页面布局的改变。这不仅是使代码更加具有可维护性,页面布局模版机制对那些看到所有应用软件页面都协调一致的用户来说,使 web 页面显得更加美观和友好。 七、使用 CSS 样式表 正如模版可以使开发者将页面布局控制放于一处,样式表可以使开发者将外观控制放于一处。我使用 CSS 样式表来控制诸如字体格式、尺寸,表特征等项目。象模版一样,样式表允许开
9、发者在一处改变,这些改变会立刻映射到所有外 观页面,从而促进可维护性和给用户一致的外观。 八、使用 MVC 设计模式 当然、其它设计模式可以在 jsp 中有效的使用,而我经常使用模型 ?视图 ?控制器( MVC)的体系机构。 MVC 可以使应用的开发的建立、测试、维护、改进变得更为容易。在 jsp 术语中, MVC 体系结构的现实经常被作为 Model2(来自早期的 jsp规范 )提起。 J2EE蓝皮书的例子就是基于 MVC 模式的。 九、使用有效的标签定制库 当标签库可以容易、有 效地使用在多种用途时,开发者为什么还要为重复开发、担心测试、调试 而花费时间呢?一些卖方以免费或单独购买的方式
10、为他们的客户提沈阳航空工业 学院毕业设计(论文) 3 供定制标签。但是很多定制标签库可以在网上找到,这些资源为找到一个潜在的有用的标签库提供一个很好的起点。 当然这些第三方标签库有时候含有 bug,自许多开发者在他们的应用开发中使用、测试这些标签时,绝大多数这样的问题极有可能被发现,同时很多定制标签是开源的,你可以根据自己的需要修改它们。 我发现花时间广泛了解定制标签是值得的,因为这些标签库通常提供了大多数web 应用的通用功能,而学习这些标签只需要很少的时间投资,重用已有、有效的定制标签可以节约编写、调试、测试自己的定制标签的时间。正如以上所说,许 多标签库是开源,由于这些原因,我可以很容易
11、的使通用的行为适应我特定项目的情况。 十、尽可能多使用 jsp 注释 适当的注释好象是对软件开发者的挑战。 Jsp 或其它代码理应包含注释以描述复杂特别的功能、页面用途和其它基本信息。 由于 jsp 允许开发者将 java、 jsp 标签、 html 标签混合在一个页面中,所以就有了多种注释 jsp 页面的方法,开发者应谨慎地考虑使用哪一种注释方式。 Html 注释在经由 jsp 编译而成的 html 源代码中是可见的,同时浏览器是我们很容易地看到这些。另一方面, jsp 注释并不放在由 jsp 编译过程创建的 html 文档中,这些注释不能作为页面源代码的一部分通过浏览器看到。 Java 注
12、释也可以出现在 jsp 文件中的java 程序段中,它在浏览器中也是不可见的。但是,在 jsp 中包含 java 注释违反了分离 java、 html 代码的原则。 注释通常是对写或维护代码的开发者才有意义的。因此,除非有非得需要在浏览器中显示出来得情况,应该使用 jsp 注释。 十一、遵循 html 最佳实践 当 java 从 jsp 中分解出放入 javaBean 和定制标签管理器中时, jsp 大部分由 jsp标签(包括定制标签)和 html 标签组成。遵循和 html 开发有关 的最佳实践方法以使 jsp 更易于理解和维护。 十二、使用 jsp 异常机制 对调试代码的开发者来说,一个抛
13、出的异常堆栈痕迹是极其重要的,而和软件使用者共享一个完整的异常堆栈信息是极其少有的。冗长的堆栈信息是不美观的,沈阳航空工业 学院毕业设计(论文) 4 同时由于暴漏了不必要释放的信息而增加了安全风险。 Jsp 允许开发者在代码中捕获和处理异常。 除堆栈痕迹外的异常信息更为有用。 Jsp 能使用一个 session 变量保存当前正在执行的页面和操作的信息。接着,若一个异常产生,异常页面将被调用,它将同时访问抛出的异常信息和产生异常的起始页面的信息。异常页面可以使用 接下来的在javaBean 或 ejb 中的 java 代码将完全的异常信息、会话信息、异常的日期时间信息存入数据库中。 减少可见的错误信息打印到屏幕同时提高安全性。异常页面仅仅打印出简单的错误信息和可能的鉴别码,而能使开发出在数据库中找到更详细的异常信息。因为美观和安全的理由,我更愿意将绝大部分的异常信息保存进数据库或平面文件而非全部打印到屏幕上。这样同时可以使异常持续存在,甚至是在用户退出应用程序时。注意,在开发期间为了正常的测试和调试,您应当在屏幕上打印出全部的异常信息。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。