Jsp学习第四帖

原创 2006年06月07日 17:27:00
 
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样式表来控制诸如字体格式、尺寸,表特征等项目。象模版一样,样式表允许开发者在一处改变,这些改变会立刻映射到所有外观页面,从而促进可维护性和给用户一致的外观。

相关文章推荐

javaee学习之路(十五)JSP编程总结

1.1 Tip:如何查找JSP页面中的错误   JSP页面中的JSP语法格式有问题,导致其不能被翻译成Servlet源文件,JSP引擎将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息...

JSP学习笔记三之response对象和request对象

接着上一篇,我们接着讲JSP中的内置隐式对象。这篇博客介绍的是request和response对象。 A. request对象      request对象是javax.servlet...

Spring Boot学习总结(2)——Spring Boot整合Jsp

怎么使用jsp上面起了疑问,查阅了多方资料,找到过其他人的博客的描述,也找到了spring在github上的给出的例子,看完后稍微改动后成功 整合jsp,于是决定将整合过程记载下来。 无论使用的是...

JSP学习笔记之内置对象

JSP中的内置对象一共有9个,此内置对象不需要经过实例化就可以使用。 pageContext:  javax.servlet.jsp.PageContext request: javax.serv...

JSP浏览商品信息项目学习笔记

这个项目是我在慕课网上看到的,《JAVA遇见HTML--JSP基础篇》,项目并不是我原创,但因为要写的是我的学习笔记,所以标了原创。 项目很简单,就是显示商品信息,然后点击商品详情的时候在右边显示...

JSP的学习(6)——九大隐式对象及其out对象

本篇将介绍JSP中的九大隐式对象,并重点介绍其中的out对象。   我们在之前的博客《JSP的学习(1)——基础知识与底层原理》一文中已经知道,JSP最终要被翻译和转换成Servlet,在转换后的S...

javaweb学习总结(二十七)——jsp简单标签开发案例和打包

一、开发标签库 1.1、开发防盗链标签   1、编写标签处理器类:RefererTag.java 1 package me.gacl.web.simpletag; 2 3 imp...

Java Web学习(6):认识JSP

一JSP简介         JSP全名为Java Server Pages,中文名叫Java服务器页面,其根本是一个简化的Servlet设计,它是由Sun  Microsystems公司倡导、许...

ZTree 增删修改(jsp/servlet)学习系列之一---前期准备

前言 前段时间做毕业设计用到了目录树结构,所以顺便学习了Z-Tree这个插件,官网给的api很详细,但是全是前端上的操作,没有具体在服务器实现的实例,网上也是基本没有学习实例。于是自己就琢磨学习一番,...

JavaWeb基础---一些基本的概念

1.学习jsp技术之前我们要了解两个概念,什么是B/S模式,什么是C/S模式?他们的区别在哪?还有好处在哪? 我觉得很多的时候多一些对问题的问号会好很多,以前我总是别人说什么重要我就去学什么,根本不知...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Jsp学习第四帖
举报原因:
原因补充:

(最多只允许输入30个字)