Jython for Java Programmers
This book will help Java developers to increase application development and deployment, thus optimizing their overall efficiency.
A brief introduction is provided that shows the differences between Java and Jython, important to include so that the reader will have a better understanding of why their union is beneficial.
The remainder of the book teaches, through examples, how to use Jython. Intended for an experienced Java developer, this book assumes you understand the fundamentals to programming (i.e. loop statements, if.then, etc.). So, page space is focused on utilizing Jython with Java by covering the following: extending Python with java classes, modules, compiling, interpreters, design integration, etc.
www.newriders.com contains all code and applications developed in the book.
Chapter 12: Server-Side Web
Programming
Where does Jython fit into web development? The answer is wherever Java fits.
Jython especially fits those Java venues where people desire faster development
and increased flexibility. Server-side Java web programming is primarily
implemented as Servlets and Java Server Pages (JSP); therefore, Jython's
primary implementation is Servlets and JSP. This isn't the entire story.
Java's enterprise packages (j2ee) figures prominently in developing web
applications. EJB's, JNDI, JDBC and more are integral to most Java web
applications, and Jython is equally effective with all those technologies;
however, the primary focus of this chapter is Servlets and JSP.
There are also places where Jython does not fit. CPython is a very popular
language for implementing CGI scripts, but Jython is not. In CGI, a web server
receives a request, starts a process to respond, and shuts down that sub-process
when the response is completed. It is possible to use Jython in this manner, but
it is not a good way. The startup time of the JVM itself makes this a poor
choice. Servlets and JSP on the other hand, are persistentthey remain in
memory between web requests.
There are many advantages to using Jython for web programming. High-quality
Servlet containers are readily available and near ubiquitously deployed. Java
Servlet applications can benefit from Jython's flexibility and high-level
language characteristics, and you get to leverage all that Java's and
Jython's libraries have to offer. Some of the many quality Servlet
containers include WebLogic, WebSphere, Tomcat, Jigsaw, Resin, and Jetty. The
number of organizations that have deployed such containers is astounding, which
makes Jython immediately usable in a huge percentage of situations.
What you can expect in this chapter is Servlets and JSP written with Jython.
The basic topics include setting up a Servlet container, the basic Servlet
classes, implementing cookies, sessions and database connections, and using
Jython with JSP pages. The slightly more advanced topic of creating your own
Jython Servlet mappings appears after the basics. Implementation-specific topics
appear toward the end of this chapter, and they include topics such as
templates, XML, Cocoon, IBM's Bean Scripting Framework, and Enterprise Java
Beans.
Jython Servlet Containers
Jython works with any compliant Java Servlet container, and there are a great
many of these from which to choose. This chapter uses Tomcat, which is the
reference implementation of the Servlet and Java Server Page specifications.
Some of the popular and freely available Servlet containers are Tomcat from
Apache's Jakarta project, Apache's JServ, the Jigsaw web server from
the W3C and Jetty from Mort Bay Consulting. Following is a brief description of
each of these tools.
Jakarta's Tomcat is the reference implementation of the Servlet
and Java Server Pages specifications, and the server used in this chapter.
Tomcat is available at
http://jakarta.apache.org/
and the stable release version as of the writing of this chapter is 3.2.3. This
version of Tomcat supports the 2.2 Servlet and 1.1 JSP specifications. By the
time you read this, Tomcat 4.0 will have been released, which implements the 2.3
Servlet and 1.2 JSP specifications. All Jython Servlets in this chapter were
tested with Tomcat 3.2.3. All examples should work with any Servlet 2.2/JSP
1.1-compliant container available according to Sun's "Write Once, Run
Anywhere" motto. The Tomcat distribution includes the Servlet and JSP
classes that are required for this chapter, so there are no additional downloads
required.
Apache JServ is a Servlet (version 2.0) engine created for Apache and
is commonly deployed. This is an easy means of using Servlets with Jython and
may be a good choice if your current development already employs JServ as many
do. Information about Apache and JServ can be found at
http://java.apache.org/.
JServ requires the accompanying Java Servlet Development Kit 2.0 available
separately at
http://java.sun.com/products/
servlet/index.html. Java Server Pages require an external module that
is currently located at http://java.apache.org/jserv/.
Jigsaw is the W3C's experimental web server. The term
"experimental" may be misleading because it is more mature than that
label indicates. Jigsaw is a fully HTTP/1.1-compliant web server and caching
proxy server written entirely in Java. Jigsaw also supports the Servlet 2.2
specification and Java Server Pages 1.1. Jigsaw is available at
http://www.w3.org/Jigsaw/
and includes the required Servlet and JSP files.
Jetty is a compact and efficient Java web server that supports the
Servlet 2.2 and JSP 1.1 specifications, supports HTTP 1.1, includes SSL support,
and easily integrates with EJB servers such as JBoss. Jetty is available at
http://jetty.mortbay.com/.
The documentation for these tools is extensive, so installation guidelines
for these should be gleaned from their respective web sites.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|