Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java EE Servlet JSP Tutorial- Cookbook 1


Published on,_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.

Published in: Technology, Education
  • Be the first to comment

Java EE Servlet JSP Tutorial- Cookbook 1

  1. 1. Java  EE  Servlet  Tutorial First Cookbook- Getting started with Model 2: Servlet and JSP Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  2. 2. Open%Source,%Reliable%and%Lightweight% Java%EE%Applica;on%Server% RESIN PRO Web Profile Health System Cloud SupportThursday, May 3, 12
  3. 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: • Building_a_simple_listing_in_JSP Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  4. 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  ServerThursday, May 3, 12
  5. 5. App  you  are  building Sorting Remove Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  6. 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  ServerThursday, May 3, 12
  7. 7. Running  tutorial  app  in  Eclipse Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  8. 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://  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  ServerThursday, May 3, 12
  9. 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  ServerThursday, May 3, 12
  10. 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  ServerThursday, May 3, 12
  11. 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  ServerThursday, May 3, 12
  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  ServerThursday, May 3, 12
  13. 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  ServerThursday, May 3, 12
  14. 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  ServerThursday, May 3, 12
  15. 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  ServerThursday, May 3, 12
  16. 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  ServerThursday, May 3, 12
  17. 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  ServerThursday, May 3, 12
  18. 18. BookRepositoryImpl  2  of  4 • Helper  methods  to  define  test  data,  add  method Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  19. 19. BookRepositoryImpl  3  of  4 • Interface  implementa8ons  using  collec8ons  API Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  20. 20. BookRepositoryImpl  4  of  4 • listBooks  and  removeBooks Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  21. 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  ServerThursday, May 3, 12
  22. 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  ServerThursday, May 3, 12
  23. 23. @Applica8onScoped Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  24. 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  ServerThursday, May 3, 12
  25. 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  Cauchos  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  ServerThursday, May 3, 12
  26. 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  ServerThursday, May 3, 12
  27. 27. Crea8ng  your  first  Servlet  (part  2) Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  28. 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  ServerThursday, May 3, 12
  29. 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  ServerThursday, May 3, 12
  30. 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  ServerThursday, May 3, 12
  31. 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  ServerThursday, May 3, 12
  32. 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  ServerThursday, May 3, 12
  33. 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  ServerThursday, May 3, 12
  34. 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  ServerThursday, May 3, 12
  35. 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  ServerThursday, May 3, 12
  36. 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  ServerThursday, May 3, 12
  37. 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  ServerThursday, May 3, 12
  38. 38. Modify  book-­‐list.jsp  to  match  the  following Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  39. 39. book-­‐list.jsp  page  direc8ve • Lets  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  ServerThursday, May 3, 12
  40. 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  ServerThursday, May 3, 12
  41. 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  ServerThursday, May 3, 12
  42. 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  ServerThursday, May 3, 12
  43. 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="" xmlns:xsi="" xsi:schemaLocation=" 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  ServerThursday, May 3, 12
  44. 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  ServerThursday, May 3, 12
  45. 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  ServerThursday, May 3, 12
  46. 46. Applica8on  Running  in  Eclipse Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  47. 47. Applica8on  Running  in  FireFox Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  48. 48. Deploying  from  the  command  line Caucho  Home    |    Contact  Us    |    Caucho  Blog    |    Wiki    |  Applica8on  ServerThursday, May 3, 12
  49. 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  ServerThursday, May 3, 12