BT

Your opinion matters! Please fill in the InfoQ Survey!

JSPWeaver removes the first-person penalty from JSP development

| by Charles Humble Follow 366 Followers on Feb 05, 2008. Estimated reading time: 1 minute |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

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.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

How well does it deal with scriptlets? 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!)

Re: How well does it deal with scriptlets? by Jevgeni Kabanov

Re: How well does it deal with scriptlets? 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 :(

Great Job by Khaled Habiburahman

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

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

4 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT