InfoQ

新闻

JSPWeaver消灭JSP开发中的“一回生”

作者 Charles Humble译者 李剑 发布于 2008年2月25日 上午4时46分

社区
Java
主题
动态语言,
企业架构
标签
JBoss,
WebLogic

ZeroTurnaround的JSPWeaver是一个实时JSP解释器,它旨在消除因为服务器从JSP标记中创建和编译后台servlet而造成的“一回生(译者注:即第一个访问Web应用的JSP页面的人,响应时间会比别人长)”。

这个产品的配置很简洁。把jspweaver.jar放到你的Web应用的\WEB-INF\lib目录下,在web.xml文件中添加几行基本的配置信息,表明将使用这个解释器来处理*.jsp这样的URL:

<servlet> 
    <servlet-name>weaverServlet</servlet-name>
    <servlet-class>com.zeroturnaround.jspweaver.JspInterpretingServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
    <servlet-mapping> 
    <servlet-name>weaverServlet</servlet-name>
    <url-pattern>*.jsp</url-pattern>
</servlet-mapping>

当应用服务器重启后,JSP页面就会在重启的过程中被解释。

这个解释器目前支持JSP 1.2-2.0。它的1.0版本支持完整的JSP标准,包括通用语法、XML语法和Java scriplets等。 它与容器无关,应该可以和任何JSP容器都能协同工作,不过目前经过测试的容器为:

  • BEA Weblogic 8.1SPX,9.X
  • Jakarta Tomcat 4.X,5.X,6.X
  • JBoss 4.X
  • Jetty 5.X
  • Oracle Application Server 9.X,10.X

下一个版本中计划将会支持JSP2.1,来自ZeroTurnaround的Jevgeni Kabanov告诉InfoQ,他期待下个版本在这个月里就会发布。他还提供给我们一些产品如何工作的更多细节:

它可以很好地解析JSP(无论是XML风格的语法还是标准语法,我们有两个解析器),然后在内存中再现页面,这个结果会被用来渲染实际输出的页面。因为解析非常快,而且没有任何翻译过程,所以这种做法比史上任何编译方式都要快得多。我们同时还用了一个打过补丁的BeanShell版本来解析内嵌的Java scriplets。

ZeroTurnaround提供了免费试用版。许可的价格是每席位49美元。

查看英文原文JSPWeaver removes the first-person penalty from JSP development

相关赞助商

InfoQ中文站Java社区,关注企业Java社区的变化与创新,通过新闻、文章、视频访谈和演讲以及迷你书等为中国Java技术社区提供一流资讯。

3 条回复

回复

试用一下JSPWeaver 发表人 丽娟 王 发表于 2008年2月25日 上午5时32分
今天试了一下,感觉没有快多少啊! 发表人 Cheng Zhang 发表于 2008年2月27日 下午6时49分
跟freemark,php应该是同一个原理 发表人 ivan shi 发表于 2008年3月17日 下午10时14分
  1. 返回顶部

    试用一下JSPWeaver

    2008年2月25日 上午5时32分 发表人 丽娟 王

    Tomcat有类似的工具提供,可以将JSP页面编译成类 不过我之前都是结合Ant使用的,而且是在应用编译、打包的过程中来完成 试用一下JSPWeaver~~

  2. 返回顶部

    今天试了一下,感觉没有快多少啊!

    2008年2月27日 下午6时49分 发表人 Cheng Zhang

    今天试了一下,感觉没有快多少啊!

  3. 返回顶部

    跟freemark,php应该是同一个原理

    2008年3月17日 下午10时14分 发表人 ivan shi

    就是在开发过程中用下,真正部署的时候还是建议先编译吧

独家内容

运用Ruby纤程进行异步I/O:NeverBlock和Revactor

Ruby 1.9的纤程(Fibers)和非阻塞I/O越来越收到关注了。我们对来自NeverBlock项目的Mohammad A. Ali和来自Revactor项目的Tone Arcieri进行了访谈。

与杨巍一起探讨OpenSocial

InfoQ中文站有幸与Google中国的产品经理杨巍先生在一起探讨了OpenSocial的相关话题,包括OpenSocial的初衷、构成要素、实现方式、以及要实现它的技术储备等等。

书评:敏捷模式──指向成功的路标

Ryan Cooper对Amr Elssamadisy的新书发表了评价,并认为书中提供了一种为实施敏捷量身定做的框架。本书并没有给出一种人人可用的敏捷方法,而是为读者提供一些模式和工具,用以找出哪些敏捷实践可以最有效地达到该组织机构的特定目标。

构建的可伸缩性和达到的性能:一个虚拟座谈会

这个由业界主要专家们参加的座谈会探究了在使应用程序具备尽可能好的伸缩性及性能的过程中所面临的挑战和思考过程。

OpenSocial的分析与实现

本视频主要对OpenSocial进行了分析,并对实现的方式进行了介绍。其中包括:OpenSocial的开发经验、Container Provider的技术准备、平台的构成要素、具体的规范、以及对未来的展望。

缓存系统MemCached的Java客户端优化历程

Memcached在大型网站被应用得越来越广泛,但是Java客户端并不多,本文作者基于现有的开源客户端进行了封装优化,并翔实记录了这一过程。

超越SOA:动态业务应用的新企业应用框架(2)

在他们文章的第二部分,作者探讨了动态业务应用的架构并介绍了资源容器的概念。他们示范了如何在JEE之上构建这个架构,以及它如何影响实现生产力。

使用ClickOnce细分发布版本

ClickOnce让WinForms应用程序的部署轻而易举。David Cooksey演示了如何在ASP.NET中编写一个HttpHandler来实现对ClickOnce部署的版本细分。