`
canonical
  • 浏览: 367012 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[导入]jsp tag的七宗罪

阅读更多
一个技术的成功,在于最终占据了某个概念。当我们应用到此概念的时候,首先想到的就是这个技术实现,久而久之,形成一个自我证明的过程。而有些技术却是在 其位无能谋其政,实在是让人不得不为它扼腕叹息呀。jsp tag正是这样一种技术。有些人认为jsp tag只是jsp的一种扩展,只是一种syntax suger, 这正反映了此技术所面临的一种困境。这里指出一些jsp tag的设计缺陷,并无贬低这种技术的意图,只是希望抛砖引玉,引发大家对这种技术改进的探讨。
引用:
jsp tag是服务器端的扩展标签机制,它是一系列java服务器端技术的基础。但其设计之初的几个重大缺陷已经使得这种技术不堪重负。  

对比dotNet平台我们可以知道,需要一种后台标签机制,jsp tag是唯一的标准(JSF等机制都依赖于此),可它的设计给所有希望基于它开发的开发人员造成了巨大的困扰。实际上我对这个技术感到很失望,当然我们提 出了相应的替代方案。在我们的开发框架中使用的是重新设计的一套与网络无关的xml动态标签机制。我的观点是基于jsp tag技术,无法开发出与dotNet的便捷程度相当的服务端技术,所以这是它作为标准的罪过。jsp tag不应该是jsp的补充,它搭上了xml这条大船,应该去走自己的路,而不应该成为应用上的鸡肋。
引用:
1. jsp tag与jsp 模型紧密绑定,使得业务逻辑很难抽象到tag中。而且脱离了jsp环境,在jsp tag上的技术投资将一无是处。  

这里说业务逻辑可能是有些不妥,容易引起误解。因为我的工作做在中间件层,所以我的原意是基于jsp tag开发一系列的扩展技术,比如缓存等。我们的xml标签技术是与jsp模型无关的,在前台用于界面渲染,在后台用于工作流描述。而且很方便的就可以与 其它xml技术结合,比如集成ant。

引用:
2. jsp tag的编码逻辑非常繁琐, 特别是写loop和容器类标签的时候。在2.0之前不支持从tag本身产生tag更是应用上的主要障碍。  

这绝对是个重大问题,试问多少人自己去开发jsp tag呢,多半是用用别人的成品。编制困难其实就是否定了界面元素的重用。很多人推崇Tapestry, 其实如果jsp tag技术方便一点,何必建立一个完全不同的模型呢。

引用:
3. 使用将xml标签的属性直接映射到对象属性的方法造成tag对象是有状态的,不得不通过丑陋的pool机制来解决性能问题。
而且性能问题直接限制了大量小标签的使用。  

这是一个现实的困难,一个系统设计师必须考虑。

引用:
4. jsp tag是一种完全动态化的设计,大量可以在编译期进行的优化都无法进行,基本上所有的运算都是在运行期发生,限制了性能的提高。  

我们的xml标签技术是先编译再运行的,加上无状态设计,在性能上可以得到控制。我的朋友hotman_x是个C++和js高手,在他的强烈要求下,我们的xml标签还增加了一个多次编译的机制。

引用:

5. 虽然最近的版本已经支持xml格式,但对于xslt等的集成很不到位,例如现在无法使用xslt对jsp文件进行界面布局。

最简单的
<web:template src="test.tpl" xslt="layout.xslt" />
<web:mytag xdecorator="face.xslt">
...
</web:mytag>

引用:
6. jsp tag要求使用自定义标签名,而无法对已经存在的html标签进行enhance, 造成无法方便的在可视化编辑器中进行编辑。  

Tapestry就认为它比较好。我们的xml标签机制也支持属性扩展。

引用:
7. EL表达式竟然不支持调用对象函数

很多人因此觉得OGNL比较好。我们的机制中是对EL做了一定的增强。我不喜欢OGNL, 过于复杂了。

分享到:
评论

相关推荐

    jsp tag接口图

    JSP标签库是一组预定义的标签,它们可以像JavaBeans一样被导入到JSP页面中,提供了一种声明式编程方式,使得开发者可以将业务逻辑与展示层分离。在JSP 2.0及以上版本中,我们通常使用JSP标准标签库(JSTL)和自定义...

    birt jsp tag

    BIRT中JSP Tag的使用 BIRT从2.2开始(最好采用2.2M6及以后版本),提供JSP tag的支持。 现在主要提供了以下5个JSP Tag: 1. viewer --------- 对应 frameset/run 模式,基于Ajax 2. report ---------- 对应 preview...

    jsp tag标签的使用

    在JSP中,tag标签是实现页面逻辑和视图分离的重要手段,提高了代码的可重用性和可维护性。本文将详细介绍JSP的tag标签及其使用方法。** 首先,我们要理解JSP中的tag标签分为两种类型:标准标签库(JSTL, JavaServer...

    jsp 导入 excel的例子

    本例子将介绍如何在JSP中利用POI库来实现Excel数据的导入功能。 首先,我们需要在项目中引入Apache POI的相关依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache.poi ...

    JSP2.0 Tag 使用

    在JSP2.0技术规范中,引入了一种新的标签机制,被称为Tag Files(标签文件),其主要目标是为了解决传统JSP页面中脚本元素的使用问题,提供一个更为简洁和高效的方式来进行页面动态内容的添加。开发者可以利用标签...

    javascript合并压缩的jsp tag实现

    JavaScript 合并压缩的 JSP Tag 实现是一个常见的前端优化技术,主要目的是为了减少网络请求次数,提升网页加载速度。在网页开发中,通常会有多份 JavaScript 文件,每份文件都对应一个网络请求,这会增加页面加载...

    jsp实现增加、查询和excel数据导入数据库中

    在JSP中,可以使用EL(Expression Language)表达式或者JSTL(JavaServer Pages Standard Tag Library)标签库来简化查询操作。用户可以通过表单输入多个查询条件,这些条件会被传递到后台,结合SQL的`WHERE`子句...

    一个很简单的jsp新闻网站(tag文件和jsp链接)

    一个很简单的jsp新闻网站(tag文件和jsp链接)一个很简单的jsp新闻网站(tag文件和jsp链接)一个很简单的jsp新闻网站(tag文件和jsp链接)一个很简单的jsp新闻网站(tag文件和jsp链接)一个很简单的jsp新闻网站(tag...

    jsp-api.jar 在使用jsp时导入的jar包

    导入这个jar包是为了确保JSP的正常运行,因为它包含了运行JSP所需的编译和执行支持。 **标签解析:**"jar" 和 "java" 这两个标签强调了该资源与Java平台的可执行文件格式(jar)以及Java编程语言相关。"jar" 文件是...

    JSP数据导入导出

    本文将详细探讨JSP如何实现数据的导入与导出功能,特别是与Excel文件的交互。 首先,我们来看JSP数据导入。通常,数据导入涉及到从Excel文件中读取数据并将其存储到数据库。这需要使用Java的API,如Apache POI库,...

    jsp中include指令静态导入和动态导入的区别详解.docx

    JSP 中 Include 指令静态导入和动态导入的区别详解 JSP 中的 Include 指令可以实现静态导入和动态导入两种方式。静态导入和动态导入是 JSP 中 Include 指令的两种不同的实现方式,它们之间有着明显的区别。 静态...

    dbform jsp tag框架

    "dbform jsp tag框架"是一个专为Java Web开发者设计的高效工具,它利用JSP标签(tag)技术,简化了界面与业务逻辑的交互,从而加速了开发进程。这个框架特别适合构建数据密集型的应用,如表单提交、列表展示等常见...

    eclipse写jsp时需要导入的jar包

    eclipse写jsp时需要导入的jar包,commons-lang3-3.6.jar,jsptest-jsp21-0.19.jar,jtidy-r938.jar,junit4-4.8.2.jar,log4j-1.2.17.jar

    jsp导入jstl需要的jar包

    在JavaServer Pages (JSP) 开发中,JavaServer Pages Standard Tag Library (JSTL) 是一个非常重要的库,它提供了各种预定义的标签来简化页面逻辑,使代码更加清晰和易于维护。JSTL 包含了多个核心功能模块,如...

    jsp导入导出excel文件

    在Java Web开发中,JSP(JavaServer Pages)经常用于创建动态网页,而与之配合进行Excel文件导入导出的功能则常使用Apache POI库。Apache POI是Apache软件基金会的一个开源项目,提供了处理Microsoft Office格式文件...

    Manning - JSP Tag Libraries.pdf

    《Manning - JSP Tag Libraries》这本书深入探讨了JavaServer Pages (JSP) 标签库这一核心主题,对于理解并有效利用JSP技术进行Web开发具有极高的价值。标签库是JSP中一种强大的工具,它允许开发者通过自定义的标签...

    jstl.jar (JSP Standard Tag Library)

    JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库

    JSP 标准标记库(JSP Standard Tag Library,JSTL)

    JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。

    jsp导入word数据的典范

    5. 在JSP页面中,通过EL(Expression Language)或JSTL(JavaServer Pages Standard Tag Library)标签,将数据绑定到表单元素。 例如,你可能会有一个名为`Risk`的Java类,用于封装从Word文档中提取的风险信息,...

    超级封装的.tag标签分页、超级简化jsp内的分页代码、eclipse源码

    本资源提供了一种高效且简洁的分页解决方案,利用.tag标签技术来封装分页逻辑,使得在JSP页面中的实现变得简单易懂。 首先,我们来详细了解一下`.tag`标签。`.tag`文件是JSP标准标签库(JSTL)的一部分,用于创建...

Global site tag (gtag.js) - Google Analytics