http://wiki4.caucho.com/Java_EE_Tutorial_covering_JSP_2.2,_and_Servlets_3.0
This tutorial focuses on using Servlet's and JSP the right way. Servlet and JSP have evolved over the years, and now there is often more than one way to do things. For example, this tutorial uses EL and JSTL not JSP scriptlets, it uses JSPs in a Model 2/MVC style not in a model 1 style, etc. Consider it a tutorial that focuses only on the best practices and not the legacy ways to do things.
There are other tutorials on this subject, but this tutorial is going to be different in that it is going to put all code into github, and you can follow along with Eclipse. Also instead of focusing on JSF, we are going to focus on JSP and Servlets as the main view technology.
Java EE, JSP and Servlets have added a lot of features that are in other frameworks, making those other frameworks less relevant then they were before Java EE garnered these extra abilities. Even is you decide to use JSF, Struts, Stripes, Spring MVC, JSF, etc., this tutorial should help you have a better understanding of the JSP/Servlets core that they build on.
We are going to start by building a simple bookstore. We will progressively add more features to the bookstore and as we do we will use more of Java EE/CDI, JSP and Servlets.
For this tutorial, I am going to use Resin 4.0.x, but you could use any Java EE 6 Web Profile compliant application server.
1. Java
EE
Servlet
Tutorial
First Cookbook- Getting started with Model 2: Servlet and JSP
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
3. Cookbook:
Intro
to
Serlvets
and
JSP
• This cookbook in the Java EE Servlet tutorial covers
building a simple listing in JSP and Servlets.
• This tutorial is part of Java EE Tutorial covering
JSP_2.2, and Servlets 3.0.
• The WIKI and step by step detailed instructions live
here:
• http://wiki4.caucho.com/
Building_a_simple_listing_in_JSP
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
4. About
tutorial
• Very
liEle
knowledge
of
HTML,
Java
and
JSP
is
assumed
• HTML
and
Java
not
covered
length,
but
pointers
in
the
right
direc8on
• Focus
is
Java
Servlets
and
JSP
(Java
Server
Pages)
• Use
whatever
IDE
you
would
like,
but
direc8ons
focus
on
Eclipse
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
5. App
you
are
building
Sorting
Remove
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
6. Sidebar:
Why
Eclipse?
• Best?
No
not
really,
best
is
IntelliJ
• Eclipse
is
free
and
supports
Java
EE
well
• NetBeans
and
JDeveloper
are
from
Oracle,
they
are
good
too
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
7. Running
tutorial
app
in
Eclipse
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
8. Windows?
Try
Linux...
• Java
is
write
once
run
anywhere,
so
you
can
develop
Java
anywhere
• Most
companies
deploy
Java
on
some
flavor
of
Linux
• You
can
use
Windows
for
development,
but...
• Probably
a
good
idea
to
get
familiar
with
produc8on
deployment
environment
anyway
• If
you
are
a
Windows
or
OSX
users,
I
suggest
installing
Ubuntu
(hEp://
www.ubuntu.com/)
or
CentOS
on
VMWare
or
Virtual
Box
and
making
that
your
main
development
environment
• You
can
make
this
tutorial
work
for
you
on
OSX
and
Windows,
but
might
be
beEer
just
to
go
with
a
fric8onless
approach.
This
way
you
can
focus
on
the
concepts
instead
of
the
configura8on
woes
• Cloud
deployment
for
the
most
part
==
Linux
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
9. Outline
• 1 Optional: Getting started Eclipse Java EE IDE
• 2 Resources
• 3 What is going to be in the project
• 4 Creating model and Repository objects for books
• 4.1 Book model class
• 4.2 Are you new to Java?
• 4.3 BookRepository interface
• 5 Servlets / JSP
• 5.1 Servlet Background
• 5.2 Creating your first Servlet
• 5.2.1 BookListServlet listing
• 5.2.2 Java EE / Servlets scopes (page, request, conversation, session, application)
• 6 Creating your first JSP
• 6.1 Templates/JSTL versus Java scriptlets
• 6.1.1 /WEB-INF/pages/book-list.jsp listing
• 6.1.2 HTML background
• 6.1.3 JSTL c:forEach
• 7 Setting up CDI
• 7.1 CDI META-INF/beans.xml
• 8 Deploying with Eclipse
• 9 Deploying from the command line
• 10 Cookbooks and Tutorials
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
10. Using
Eclipse
to
setup
Web
Project
• First go here to get Eclipse for Java EE: Install Guide for Eclipse for Java EE Indigo or higher.
• Screenshots to follows, but here is the basic steps to installing Eclipse and Java EE development
environment in one go
• Using Eclipse Indigo or higher
Install Resin (lightweight, fast, easy to use Java EE 6 Web Profile server) plugin:
1. Go to File menu -> New Project -> Dynamic Web Project
2. In New Dynamic Web Project Dialog-> New Runtime...
3. In New Runtime Dialog -> Download Additional Server Adapters -> Select Resin (Java EE Web Profile)
4.0.x
4. (Click Next and Ok until it installs Resin runtime)
5. (Eclipse needs to restart)
Setup new Web Project in Eclipse
1. File -> New Project -> Dynamic Web Project
2. In New Dynamic Web Project Dialog-> New Runtime...->Select Resin->Check create local server checkbox
3. Step 2 of New Runtime...->Click Download and Install (you only have to do this once)
4. Fill out project name etc. (bookstore).
5. (Click Next and Ok until you are done)
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
11. Install
Java
EE
6
Web
Profile
• Go
to
File
menu
-‐>
New
Project
-‐>
Dynamic
Web
Project
• In
New
Dynamic
Web
Project
Dialog-‐>
New
Run8me...
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
12. Crea8ng
a
new
web
project
• Click
OK
and
Finish
and
Restart
to
restart
Eclipse
• Crea8ng
a
new
Web
Project
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
13. Crea8ng
a
simple
Book
lis8ng
for
our
bookstore
• Create
a
new
Java
class
as
follows:
• Eclipse:
Right
Click
"Java
Resources"
in
Project
Explorer
-‐>
New
-‐>
Class
-‐>
Package
com.bookstore
-‐>
Class
Name
-‐>
Book
(That
is
the
last
8me
I
will
tell
you
how
to
create
a
class
in
Eclipse.)
• Add
8tle,
descrip8on,
price,
pubDate
and
id
proper8es,
and
the
toString
and
cloneMe
methods
as
follows:
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
14. Are
you
new
to
Java?
• If
you
are
new
to
Java
and
the
Book
class
seems
foreign
to
you,
• Read
up
on
Java
a
bit
Official
Java
tutorial.
• Read
the
first
three
trails
(Ge>ng
Started,
Learning
the
Java
Language
and
EssenBal
Java
Classes),
• Skip
ahead
to
Java
Beans.
Skimming
is
ok.
• If
you
have
programmed
before,
most
things
you
will
pick
up
on
your
own.
• Then
come
back
here
:)
• Reminder:
The
methods
public
String
getId()
and
public
void
setId(String
id)
would
define
a
property
called
id
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
15. Repository
Interface
• First
step
in
tutorial
not
going
to
actually
talk
to
a
database
or
use
JDBC
• For
now,
just
using
collec8on
API
• Repository
object
encapsulates
how
an
object
gets
persisted,
queried
and
updated
(CRUD
opera8ons)
• Let’s
define
an
interface
for
our
CRUD
opera8ons
• Later
we
use
JDBC/RDBMS
(MySQL),
JTA/RDBMS,
JCache,
MongoDB,
etc.
instead
of
collec8on
API
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
16. BookRepository
(DAO
like
object)
• Eclipse:
Right
Click
"Java
Resources"
in
Project
Explorer
-‐>
New
-‐>
Interface
-‐>
Package
=
com.bookstore
-‐>
Class
Name
=
Book
-‐>
Click
Finish
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
17. BookRepositoryImpl
1
of
4
• Actual
BookRepositoryImpl
just
uses
Java
collec8on
to
store
in
memory
(skim
don’t
read)
Set’s
up
some
test
data
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
18. BookRepositoryImpl
2
of
4
• Helper
methods
to
define
test
data,
add
method
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
19. BookRepositoryImpl
3
of
4
• Interface
implementa8ons
using
collec8ons
API
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
20. BookRepositoryImpl
4
of
4
• listBooks
and
removeBooks
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
21. BookRepositoryImpl
wrap
up
• This
BookRepositoryImpl
really
basic
class.
• Largely
based
on
the
collec8ons
API
• You
can
find
out
more
informa8on
about
the
Java
collec8ons
API
at
this
tutorial
trail.
• A
full
discussion
of
collec8on
API
out
of
scope
for
cookbook
• JDBC
cookbook
coming
up
in
this
tutorial
series
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
22. @Applica8onScoped
• One
interesBng
thing
is
BookRepositoryImpl
uses
@Applica2onScoped
annotaBon
• AnnotaBons
allow
you
to
add
meta-‐data
to
Java
objects.
(To
learn
more
see
this
annotaBons
tutorial)
•
Applica2onScoped
specifies
a
bean
is
applicaBon
scoped
• Scoping
defines
a
lifecycle
• how
long
an
object
will
be
around
• ApplicaBonScoped
means
it
will
be
around
for
the
complete
lifecycle
of
the
Web
ApplicaBon
• This annotations has slightly different meanings depending on whether it is used with EJBs or Servlets. This annotation is part of the CDI support
added to Java EE 6 to handle Java Dependency Injection. To learn more about CDI go see this tutorial Java Dependency Injection and this one part 2
both written by the same author that is writing this tutorial now. :)
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
23. @Applica8onScoped
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
24. Model
done,
now
controller
• Now
that
we
have
a
model
• Book,
BookRepository
• Lets
define
our
web
controller
• Servlet
controller
• and
view
• JSPs
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
25. Servlet
Background
• A
servlet
is
a
Java
class
that
handles
HTTP
requests
• A
Java
web
applica8on
consists
of
one
or
more
servlet
bundled
together
with
any
JSPs
and
Java
classes
it
needs
into
a
war
file
(Web
Applica8on
Archive
file).
• Servlets
run
inside
of
a
container
(like
Caucho's
Resin)
• End
users
typically
use
a
Java
Web
Applica8on
through
a
web
browser
like
Apple
Safari,
Google
Chrome,
Mozilla
FireFox
or
Internet
Explorer
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
26. Crea8ng
your
first
Servlet
• Eclipse:
Right
Click
"Java
Resources"
in
Project
Explorer
-‐>
New
-‐>
Servlet
-‐>
Package
=
com.bookstore.web
-‐>
Class
Name
=
BookListServlet
-‐>
Click
Next
-‐>
Remove
URL
mapping,
create
new
mapping
/book/
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
27. Crea8ng
your
first
Servlet
(part
2)
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
28. BookListServlet
• Note:
This
applica8on
uses
the
REST
style
URL
mappings
• URLs
that
end
in
/
imply
you
are
working
with
a
list
•
(like
a
directory
of
files).
• URI
/book/
implies
a
collecBon
of
books
• Perfect
since
we
want
to
show
a
list
of
books
• Modify
generated
Servlet
to
only
handle
the
doGet
method
• Change
doGet
method
to
forward
to
a
JSP
that
we
have
not
created
yet
that
lives
in
WEB-‐INF
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
29. BookListServlet
• Looks
up
books
using
bookRepo
(injected
with
@Inject
CDI)
• Then
forward
to
book-‐list.jsp
to
render
book
lis8ng
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
30. Why
JSP
is
in
WEB-‐INF
• WEB-‐INF
is
a
meta
directory
folder
for
war
files.
• JSPs
in
WEB-‐INF
folder
can
never
be
loaded
directly
from
a
browser
• This
allows
us
to
force
all
JSPs
to
first
go
through
our
Servlet
8er
(controllers)
which
is
essen8al
for
a
model
2
architecture
(a
form
of
MVC
tailored
for
HTTP
applica8ons),
• We
use
model
2
throughout
the
tutorial
•
Consider
pumng
JSPs
in
WEB-‐INF
a
best
prac8ce.
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
31. @WebServlet
annota8on
(BookListServlet)
• @WebServlet("/book/")
allow
us
to
map
this
Servlet
to
handle
requests
for
the
URI
/
book/
• @WebServlet
annota8on
is
a
new
feature
of
Servlets
3.0
• Avoids
a
lot
of
XML
configura8on
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
32. @Inject
(BookListServlet)
• Servlet
uses
repository
model
object
to
look
up
a
list
of
BookRepository
books.
• Java
dependency
injec8on
used
to
inject
BookRepository
into
the
Servlet
• @Inject
etc.
added
in
Java
EE
6
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
33. doGet
(BookListServlet)
• Servlet
is
controller
in
model
2
• Controller
talks
to
the
model
(BookRepository
to
get
a
list
of
Book),
• doGet
method
gets
called
when
somebody
loads
the
page
from
the
browser
and
corresponds
to
HTTP
GET
• doGet
method
uses
the
request
object
(HEpServletRequest
request)
to
put
the
list
of
books
into
request
scope
using
setAEribute
as
follows:
request.setAttribute puts books into request scope.
But what is a scope?
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
34. Understanding
scopes
• Servlets
and
Java
EE
have
various
scopes
• page,
request,
conversa8on,
session,
applica8on
• Page
scope
(10
to
200
milliseconds)
• Request
scope
is
around
for
one
HTTP
request
(1/2
second
to
several
seconds)
• Session
scope
is
around
for
the
en8re
user
session
(5
minutes
to
90
minutes)
• Conversa8on
scope
is
around
for
one
workflow
(user
registra8on,
shopping
cart,
etc.).
• Applica8on
scope
is
around
un8l
web
app
shuts
down
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
35. Background
on
JSP
• JSP
pages
are
also
Servlets
• JSP
is
a
templa8ng
language
to
define
Servlets
that
allows
you
to
focus
on
the
HTML
instead
of
the
Java
code
• JSP
is
like
a
Servlet
turned
inside
out
• Essen8ally
a
JSP
page
is
translated
and
compiled
into
a
servlets
• JSP
is
similar
to
ASP
and
PHP
in
concept
and
scope
• ASP
predates
JSP
and
early
JSP
and
ASP
use
a
lot
of
the
same
concepts
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
36. JSP
scriptlets
versus
Templates
• JSP
allows
mixing
Java
code
and
HTML
(called
Java
scriptlets),
but
don’t
• JSP
adopted
more
of
a
classic
templa8ng
approach
like
• Freemarker,
Velocity
and
Smarty
(PHP
based
templaBng)
• Don’t
allow
mixing
the
programming
language
with
the
templaBng
language
• Allows
the
templaBng
language
to
be
a
simple
view
logic
language,
• Keeps
the
templates
smaller
and
more
readable.
• JSP
uses
JSTL
and
the
Unified
EL
to
accomplish
things
that
Smarty,
Freemarker
and
Velocity
accomplish
• Using
JSTL/EL
instead
of
Java
scriptlets
approach
is
a
best
prac8ce
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
37. Crea8ng
a
JSP
in
Eclipse
Create a folder under WebContent/WEB-INF called pages
Right click WebContent/WEB-INF/pages, then select New->JSP File
use the file name book-list.jsp
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
38. Modify
book-‐list.jsp
to
match
the
following
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
39. book-‐list.jsp
page
direc8ve
• Let's
break
this
down
some.
• First
setup
page
using
JSP
page
direc8ve:
• page
direc8ve
sayshow
we
want
the
characters
encoded
and
what
the
mime
type
of
the
page
is.
Consider
it
boiler
plate
for
now
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
40. Using
JSTL
core
library
• Next
we
import
the
JSTL
core
library,
under
the
tag
c
as
follows:
HTML background
Most of the page is boiler plate and simple HTML. If you are new to
HTML, try this HTML tutorial. Then come back here.
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
41. Using
JSTL
core
c:forEach
• Using
c:forEach
to
iterate
through
the
books
in
request
scope
! <c:forEach var="book" items="${books}">
! ! <tr>
! ! ! <td>${book.title}</td>
! ! ! <td>${book.description}</td>
! ! ! <td>${book.price}</td>
! ! ! <td>${book.pubDate}</td>
! ! </tr>
! </c:forEach>
Syntax like${books}, ${book.title}, ${book.price}
${book.pubDate} is Unified EL. EL is expression language
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
42. JSTL
c:forEach
• Where
did
the
books
come
from?
• ${books}
is
the
same
books
that
we
put
into
request
scope
in
the
//BookListServlet.doGet method
! ! request.setAttribute("books", bookRepo.listBooks());
!
! <c:forEach var="book" items="${books}">
! ! <tr>
! ! ! <td>${book.title}</td>
! ! ! <td>${book.description}</td>
! ! ! <td>${book.price}</td>
! ! ! <td>${book.pubDate}</td>
! ! </tr>
! </c:forEach>
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
43. Semng
up
Java
Dependency
Injec8on
• To
setup
Java
Dependency
Injec8on
(CDI),
you
need
to
create
a
beans.xml
file
• beans.xml
need
to
go
into
META-‐INF
• META-‐INF
is
a
special
directory
for
jar
files
and
Java
classpath
entries
to
hold
•
beans.xml
can
be
completely
blank
or
just
empty
$ pwd
~/workspace/javaee-tutorial/bookstore/src/META-INF
$ touch beans.xml
To get Eclipse to quit complaining about the blank file not having the right format, fill it as follows:
META-INF/beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/
beans_1_0.xsd">
</beans>
Note: the @Inject Java dependency injection will not work without this file.
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
44. Deploying
applica8on
with
Eclipse
• Deploying
with
Eclipse
• Right
click
the
BookListServlet
in
the
Project
Explorer
• Choose
Run
As-‐>Run
On
Server...
• "Select
Manually
Define
a
New
Server"
• Choose
Resin-‐>Resin
4.0
from
the
Server
List
• Click
"Download
addi8onal
Server
adapters”
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
45. Deploying
applica8on
with
Eclipse
• Right
click
BookListServlet
in
project
explorer
then
choose
Run
-‐>
Run
On
Server
• Select
Resin
then
Click
Next-‐>
then
click
“Download
and
Install”
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
46. Applica8on
Running
in
Eclipse
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
47. Applica8on
Running
in
FireFox
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
48. Deploying
from
the
command
line
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12
49. End
of
first
cookbook
in
tutorial
• Cook
books
and
Tutorials
• Building
a
simple
lis8ng
in
JSP:
covers
model
2,
Servlets,
JSP
intro.
<You
just
finished
this
one>
• Java
EE
Servlet
tutorial
:
Adding
create,
update
and
delete
to
the
bookstore
lisBng:
covers
more
interacBons.
• Java
EE
Servlet
tutorial
:
Using
JSPs
to
create
header,
footer
area,
forma>ng,
and
basic
CSS
for
bookstore.
• Java
EE
Servlet
tutorial
:
Adding
MySQL
and
JDBC
to
bookstore
example.Java
EE
Servlet
tutorial
:
Adding
validaBon
and
JSP
tag
files
to
bookstore
example.
• Java
EE
Servlet
tutorial
:
Adding
I18N
support
to
bookstore
example.
• Java
EE
Servlet
tutorial
:
Load
tesBng
and
health
monitoring
using
bookstore
example.
• Java
EE
Servlet
tutorial
:
Se>ng
up
clustering
and
session
replicaBon.
• Java
EE
Servlet
tutorial
:
Se>ng
up
security
for
bookstore
example.
• Java
EE
Servlet
tutorial
:
File
uploads
for
bookstore
example.
• Java
EE
Servlet
tutorial
:
Using
JPA
for
bookstore
example.
• Java
EE
Servlet
tutorial
:
Using
JCache
for
bookstore
example.
Caucho
Home
|
Contact
Us
|
Caucho
Blog
|
Wiki
|
Applica8on
Server
Thursday, May 3, 12