这些可帮助你写出可重用、易维护的jsp
1) 分离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分离而增强的模块化也使应用的可维护性得到了提高。
2) 将业务逻辑放在JavaBean中
直接包含在jsp中的java代码并不象包含在JavaBean中的java代码那样容易被其他jsp页面理解,通用行为和业务逻辑放在JavaBean中不仅可以被其它jsp,也可以被应用的其它部分使用,这是因为JavaBean仅仅是满足一些基本约定(比如不含参数的构造器,为private类属性设置set/get方法)的java类,也能作为任意其它类使用。值得注意的是,ejb在封装针对应用中所有组件通用的行为和数据时也是有用的。
3) 从标签定制管理器类中分离出常用行为
作为定制标签管理器类的java类实现定制标签,并不象JavaBean,它不能如普通java工具类一样易于使用,而是,定制标签管理器类实现特定的接口或继承提供这些接口基本实现的类。由于它们不易于在jsp外使用,定制标签管理器类应当仅包含那些不能在定制标签之外、jsp之外使用的特定行为。定制标签常常需要针对通用行为和业务逻辑的支撑,并利用提供通用行为的JavaBeans和EJBs
4) 较之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代码应该是明智的。