InfoQ

News

JSPWeaver removes the first-person penalty from JSP development

Posted by Charles Humble on Feb 05, 2008 08:34 AM

Community
Java
Topics
Dynamic Languages,
Enterprise Architecture
Tags
JBoss,
WebLogic
ZeroTurnaround's JSPWeaver is a real-time interpreter for JSP which aims to remove the first-person penalty encountered when the server creates and compiles the background servlet from the JSP mark-up.

 

Configuring the product is straightforward. You put the jspweaver.jar into your web application's \WEB-INF\lib, and add some basic configuration information to the application's web.xml file to tell it to use the interpreter for *.jsp URLs:

<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>

 

Once the application server is re-started JSP pages will be interpreted on the fly.

The interpreter currently supports JSP 1.2-2.0. The 1.0 release supports the full JSP standard including common syntax, XML syntax and Java scriplets. It is container agnostic and should work with any JSP compliant container although the currently tested containers are:

  • 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

Support for JSP 2.1 is planned for the next release and Jevgeni Kabanov at ZeroTurnaround told InfoQ he expects it to be available in about a month. He also gave us a few more details on how the product works:

"It pretty much parses the JSP (either XML-style or original syntax, two separate parsers) and creates an in-memory representation of the pages, which can be used to render the actual output. Since the parsing is very quick and there is no translation it is much faster than compilation can ever be. We also use a patched version of BeanShell to interpret the embedded Java scriplets."

A free trial version is available from ZeroTurnaround. A license costs $49/seat.

4 comments

Reply

How well does it deal with scriptlets? by Tim Vernum Posted Feb 6, 2008 11:01 PM
Re: How well does it deal with scriptlets? by Jevgeni Kabanov Posted Feb 7, 2008 6:39 AM
Re: How well does it deal with scriptlets? by Jevgeni Kabanov Posted Feb 7, 2008 6:40 AM
Great Job by Khaled Habiburahman Posted Feb 13, 2008 3:38 AM
  1. Back to top

    How well does it deal with scriptlets?

    Feb 6, 2008 11:01 PM by Tim Vernum

    Disclaimer: I wrote what is effectively a competing project, but I don't make any money from it, and I don't have a huge amount of attachment to it Parsing scriptlets in an interpreter is hard. You have conditionals that cross scriptlets, and it's incredibly difficult to support those without converting the whole thing into Java. Does JSPWeaver really do it, or does it just do a "good enough" job (which is all slim does too) Side note: Strictly speaking, JSPWeaver cannot be a standard compliant JSP implementation (not that it claims to be) as the JSP spec requires that pages be converted into servlets. (Uck!)

  2. Back to top

    Re: How well does it deal with scriptlets?

    Feb 7, 2008 6:39 AM by Jevgeni Kabanov

  3. Back to top

    Re: How well does it deal with scriptlets?

    Feb 7, 2008 6:40 AM by Jevgeni Kabanov

    Parsing scriptlets in an interpreter is hard. You have conditionals that cross scriptlets, and it's incredibly difficult to support those without converting the whole thing into Java. Does JSPWeaver really do it, or does it just do a "good enough" job (which is all slim does too)
    Yep, it's hard, and yes we do that. Somehow every time I post here formatting ends up messed up :(

  4. Back to top

    Great Job

    Feb 13, 2008 3:38 AM by Khaled Habiburahman

    Great job, keep it up. I am going to give it a try.

Exclusive Content

Typemock: Past, Present and Future

Eli Lopian of Typemock answers a few questions on Typemock origins and where Typemock is headed.

Agile in Practice: What Is Actually Going On Out There?

Scott Ambler talks about actual data resulting from surveys made during 2006-2008, showing how Agile is perceived and implemented within organizations.

Building Smart Windows Applications

From QCon 2008, Daniel Moth presents on using Visual Studio 2008 and .NET 3.5 to create compelling rich Windows applications.

Joshua Kerievsky about Industrial XP

Joshua Kerievsky, founder of Industrial Logic, talks about Industrial Extreme Programming which extends XP by including practices dealing with management, customers and developers.

Jeff Barr Discusses Amazon Web Services

Amazon Web Services (AWS) Evangelist Jeff Barr discusses SimpleDB, S3, EC2, SQS, cloud computing, how different Amazon services interact, origins of AWS, AWS globalization and the March AWS outage.

More Than Just Spin (Up) : Virtualization for the Enterprise and SaaS

Cloud services have helped bring virtualization to the forefront. Its full power however, also includes other benefits such as high availability, disaster recovery, and rapid provisioning.

Ruby Beyond Rails

John Lam talks about his path to dynamic languages, some of the problems of making IronRuby run fast, and how the DLR helps with implementing languages.

VMware Infrastructure 3 Book Excerpt and Author Interview

VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.