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

  • Charles Humble
  • 李剑

2008 年 2 月 25 日

话题:Java语言 & 开发架构

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

Java语言 & 开发架构