JSP编程规范.doc_第1页
JSP编程规范.doc_第2页
JSP编程规范.doc_第3页
JSP编程规范.doc_第4页
JSP编程规范.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSP1.X 编程规范Mov翻译 原文标题:Code Conventions for the JavaServer Pages Technology Version 1.x Language编程规范确立的原因:1:增加代码可读性2:减少培训成本3:确定开发小组的规范文档文件名和文件放置位置:File TypeFile SuffixRecommended LocationJSP technology .jsp/ JSP fragment .jsp/ .jspf/WEB-INF/jspf/ cascading style sheet .css/css/JavaScript technology .js/js/HTML page .html/ web resource .gif, .jpg, etc. /images/tag library descriptor .tld/WEB-INF/tld/文件组织1 jsp/jsp fragment文件jsp文件组成1) 开头注释服务器端开头注释注释范例之一比较完整的版本:注(#)可被某些程序识别为说明标识符开始的标志。尽管并不是所有程序都能识别,但是加上也没有害处。当然,上面的开头注释比较复杂,较简单的开头注释范例如下:有些情况下,需要将开头注释说明部分传送到客户端。客户端开头注释范例2) jsp指令两种选择,选择一:选择二选择一和选择二的效果一样,除了选择一会引入两个空行。一般情况下,选择二是推崇的选择,但是当导入多个java包时可能会导致选择二过长。3) tag library directives可选 标签库指令从jsp1.2 开始,JSTL(JSP Standard Tag Library) JSP标准标签库被推荐使用,以减少页面代码中jsp scriptlets中代码的数量,而且使用JSTL的代码更容易读写和维护。4) jsp 声明可选Disparate declaration blocksPreferred declaration block . 右边的声明是推荐的格式,将一个网页的声明写到一个中。其编码规范和普通java程序的编码规范没有区别。5) Html 和 jsp 代码一个jsp页面包含以下几部分:html代码、jsp代码、jsp表达式、scriptlets、JavaBeans指令。TLD Tag library Descriptor 标签库描述符TLD文件必须以一个合适的XML声明和正确的DTD声明开头。例如,一个jsp1.2 TLD文件必须的开头是:这个后面紧跟的才是开头注释部分。上面这些规则对jsp文件和jsp fragment文件都是适用的。除了以上几部分,在文件中还可以包括以下几部分:一个tag library validator 可选declaration of event listeners 可选Declaration of one or more available tags建议在你的TLD文件中包含这些可选的子元素。TLD ElementJSP 1.2 RecommendedSub-elementJSP 1.1 RecommendedSub-elementattribute (JSP 1.2)descriptioninit-param (JSP 1.2)descriptiontagdisplay-name, description, examplename, infotagliburi, display-name, descriptionuri, infovalidator (JSP 1.2)descriptionvariable (JSP 1.2)description关于缩进建议使用4个空格而不是Tab进行缩进,因为不同的编辑器对Tab代表的空格数解释不同。示例一只包含一个缩进: 示例二包含多个缩进的代码:Scripting元素的缩进Scripting元素包括声明、scriptlet、表达式等,当这些元素在页面中占用的地方超过一行时进行换行,换行后的示例如下:jsp html java 混合在一起时的缩进:较好的模式较差的模式:上面两中模式的区别较好的模式即上面那种,脚本语言前空两格,并不影响html语言的缩进,后者都缩进四格,代码没有区别,比较混乱。普通注释jsp注释LineJSP scriptlet with scripting language commentPure JSP commentsingle multiple html注释: . . . .说明html注释的两种情况:1)版本和权限说明 2)Html开发人员用来对代码的注释说明多行注释时需注意的情况PreferredNon-XML compliant 注推荐前一种注释方法JSP声明推荐多行声明而不是单行声明Not recommendedRecommended JSP Scriptlets在可能的情况下,当tag libraries能提供相同的功能,尽量使用tag libraries。这样做的好处:这样写的代码容易读写和维护、使业务逻辑和页面表现相分离、让你的代码更容易向jsp 2.0规范的代码靠拢。举例:customers as an array of Customers % for ( int i=0; i customers as an Enumeration 对于不同数据类型的customers,必须对应不同的scriptlet代码。如果使用Tag library,当customers为不同的数据类型时,代码能提供更高的可扩展性。例如在JSTL中,下面的代码既支持数据类型又支持枚举类型的customers:按照MVC设计模式的思想降低业务逻辑和表现层的强耦合,jsp scriptlets最好不要用来写业务逻辑。尽管可以用jsp scriptlet来传递服务器处理客户请求后返回客户端的数据,但是最好也不要这么做,因为用一个前端的控制器servelet或者是客户tag标签可能会更好。例如,如下代码展示如何将从服务器中取得的客户名字直接在客户端显示,首先是用jsp scriptletjsp 脚本来实现这种方法将业务逻辑层和表现层强耦合,不如下面的代码:对第二种代码的解释:将于数据库的交互委托给tag myTags:dataSource,隐藏了具体实现细节。【总结】总之,jsp scriptletjsp脚本最好不要在jsp页面代码中出现,这样jsp页面代码是独立于scripting语言的,另外,也要避免在jsp页面中写业务逻辑。如果实现比较困难,用value objects(JavaBeans Components)来传递服务器端数据,用jsp scriptlets输出到客户端的数据。在处理服务器端信息的过程中,在可以的情况下,尽量使用customer tags(tag handlers)JSP Expressionsjsp表达式JSP表达式尽量少使用,这种情况和JSP Scriptlets的情况相同。为什么这样说呢,首先看三个例子:eg1: (with explicit java code)eg2: (with JSP tag)eg3: (with JSTLtag)首先,在这三个例子中,JSTL Tag是被推荐使用的。其长度和jsp表达式差不多,比较容易读写和维护,且不依赖于任何java scriptlets。更重要的是,是页面代码更容易的发展为jsp 2.0规范的代码,在jsp 2.0规范中,同样的功能可以用myB来代替。最后,jsp表达式和jsp scriptlets在实现相同功能时,推荐使用JSP表达式。例如: 就要比 好一些。空白空白不仅能提高代码的美观度,还能增强代码的可读和易维护性。提倡在合适的地方正确的使用。空白行在不产生额外输出的情况下,空白行可用来提高代码的易读性。在下面的例子中,有一个因为不正确的使用了空白行,造成在客户端输出时,多输出了一个空白行。JSP statementsHTML output to client Joe Block Joe Block Joe Block空格在JSP Tag和其实体内容之间应该插入一个空格,例如:相对于要好。还有,在jsp注释标签和注释之间最好也能有个空格,当然不仅仅是指在开头注释中使用。命名约定在web开发中使用命名约定可以使你的web组件元素更容易地被识别、分类和整理。在这一部分中,我们将讨论jsp技术中的一些命名规范。jsp文件命名原则首字母小写,驼峰风格。如果在名字中包含动词,推荐使用动词的现在时形式,因为别的形式会使jsp文件的的名字更晦涩难懂。performLogin.jsp 相对 perfom.jsp 要好showAccountDetails.jsp 相对 showingAccountDetails.jsp 要好(因为前者使用的是现在时)标签名称 tag namestag handlers和相关类的类名命名约定如下:DescriptionClass NameXXX tag extra info (extending from javax.servlet.jsp.tagext.TagExtraInfo)XXXTEIXXX tag library validator (extending from javax.servlet.jsp.tagext.TagLibraryValidator)XXXTLVXXX tag handler interface (extending from javax.servlet.jsp.tagext.Tag/IterationTag/BodyTag)XXXTagXXX tag handler implementationXXXTag另外,tag名还要遵循java编程规范的命名规范。为了更好的将tag相关类和其他普通类,tag相关类的包名最好能是tags或者taglib等。例如:com.mycorp.myapp.tags.XXXTagTag前缀名Examp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论