技巧心得:Jsp最佳实践
Jsp技术是servlet技术的扩展,结合html、java代码于一个文件。Java servlet技术关注于利用PrintWriter.println()语句产生html输出的java类,Jsp将这个概念抽象到一个更高的层次。使用jsp,web开发者可以写静态的html和将java代码片段加入到需要动态产生的页面中,从而,这种灵活的技术使简单web应用的快速开发成为可能。然而它能被滥用,从而形成难以维护、重用和改进的不必要的复杂的应用软件。
遵循以下提示的技巧可以避免这种不必要的复杂应用。
1、 分离html和java
2、 将业务逻辑放在javaBean中
3、 从标签定制管理器类中分离出常用行为
4、 较之java代码在jsps中,更倾向于html在java管理器类中
5、 使用适当的包含机制
6、 使用jsp模版机制
7、 使用CSS样式表
8、 使用MVC模式
9、 使用有效的标签定制库。
10、 确定适当的xml依从度
11、 尽可能多使用jsp注释
12、 遵循html最佳实践
13、 利用jsp异常机制
这些可帮助你写出可重用、易维护的jsp
一、分离html和java
将一个web页的所有必须的java、html代码放入一个jsp文件中是诱人的。这种方法使初学者定位相关联的代码和理解它们如何相互作用变的容易。然而,当应用变的更加复杂、开发者变的更加棘手时,这样方式将变的更加繁重和昂贵。
结合html和java在同一的代码来源使程序变的非常不可读。为增强可读性,很多开发者使用缩排格式,但是混合html和java片段的文件使有益的缩排格式变的极其难以维护。
许多web开发方法和机制强调html和java代码的分离,从而不同的开发者可以将精力集中在他们擅长的方面。适当地将java代码和包括jsp标签、定制标签在内的html分离,可以使web设计者、html编写者工作在html(表述)方面,而java开发者工作在应用的逻辑处理部分。当Java开发者实现jsp定制标签后的行为时关注的是业务逻辑,web设计者则象使用普通html标签一样使用这些定制标签。
适当地将java代码从html中分离的应用会更为可重用,因为java组件并不约束于特定浏览器,同时可以运用到应用软件的其他部分。与此同时,源起于java/html分离而增强的模块化也使应用的可维护性得到了提高。
二、将业务逻辑放在JavaBean中
直接包含在jsp中的java代码并不象包含在JavaBean中的java代码那样容易被其他jsp页面理解,通用行为和业务逻辑放在JavaBean中不仅可以被其它jsp,也可以被应用的其它部分使用,这是因为JavaBean仅仅是满足一些基本约定(比如不含参数的构造器,为private类属性设置set/get方法)的java类,也能作为任意其它类使用。值得注意的是,ejb在封装针对应用中所有组件通用的行为和数据时也是有用的。
三、从标签定制管理器类中分离出常用行为
作为定制标签管理器类的java实现定制标签,并不象JavaBean,它不能如普通java工具类一样易于使用,而是,定制标签管理器类实现特定的接口或继承提供这些接口基本实现的类。由于它们不易于在jsp外使用,定制标签管理器类应当仅包含那些不能在定制标签之外、jsp之外使用的特定行为。定制标签常常需要针对通用行为和业务逻辑的支撑,并利用提供通用行为的JavaBeans和EJBs
四、较之java代码在jsp中,更倾向于html在java管理器类中
有时从java中分离html、jsp标签和如定制标签的html会需要不必要的令人费解的代码,基于此,你要么将java片段和表述放入jsp中,要么将html代码放入java标签管理器类。
较之看到在jsp中作为脚本的java,我更愿意看到在java类中的一小部分html代码。由于定制标签管理器针对它们所实现的定制标签是特定的(同时也不能在jsp之外使用),放入一些html代码不会有什么麻烦,SUN的J2EE蓝皮书对此有更深入的讨论。
对此标准也有例外:如果在jsp中包含一行或两行java代码片段和在java管理器类中包含许多行html代码解决的问题一样,那么允许在jsp中存在java代码应该是明智的。
五、使用适当的包含机制
包含机制在代码重用方面是少有的好的设计。从多个页面中分离出通用的jsp和html代码放入一个文件可以提高可维护性(仅需要在一处改变)和可重用性。
有两种包含机制缩小了代码冗余促进了代码重用。为确保能够使用适当的包含机制,理解它们二者间的不同是重要的。除非我可以证明需要include 动作是正当的,一般地情况下我使用include指令。在蓝皮书“web 层”部分中的第七个问题,对理解两种包含机制的不同和确定在一特定情况使用哪一种提供了很好的资源。
六、使用jsp模版机制
一个模版机制允许一个公用的文件来控制web页、jsp、页面布局。于是,当你想改变页面布局时,你仅仅需要修改一个文件,所有其它的页面将反映出页面布局的改变。这不仅是使代码更加具有可维护性,页面布局模版机制对那些看到所有应用软件页面都协调一致的用户来说,使web页面显得更加美观和友好。
我使用作为一种模版机制的Structs的定制标签模版库,David Geary的文章《JSP Templates》对考虑在你的jsp中使用模版机制提供一个很好的起点。
七、使用CSS样式表
正如模版可以使开发者将页面布局控制放于一处,样式表可以使开发者将外观控制放于一处。我使用CSS样式表来控制诸如字体格式、尺寸,表特征等项目。象模版一样,样式表允许开发者在一处改变,这些改变会立刻映射到所有外观页面,从而促进可维护性和给用户一致的外观。
上一篇:J2EE建议的学习路线
下一篇:技巧心得:对比C++和Java