servlets and java server pages n.
Skip this Video
Loading SlideShow in 5 Seconds..
Servlets and Java Server Pages PowerPoint Presentation
Download Presentation
Servlets and Java Server Pages

Loading in 2 Seconds...

  share
play fullscreen
1 / 31
Download Presentation

Servlets and Java Server Pages - PowerPoint PPT Presentation

kirsten
235 Views
Download Presentation

Servlets and Java Server Pages

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Servlets and Java Server Pages Object-Oriented Programming V22.0470 Written by: Haytham Allos (Instructor) New York University (NYU)

  2. Static content • Web Server delivers contents of a file (html) 2. Web Server reads file from disk 1. Browser sends request to Web Server Web Server browser 3. Web Server sends HTML to Browser

  3. Dynamic Content • CGI(Common Gateway Interface)program generates HTML that is returned to Browser 2. Web Server loads CGI program from disk 1. Browser sends request to Web Server Web Server browser 3. Web Server starts CGI program CGI Program 5. Web Server sends HTML to Browser 4. CGI program generates and returns HTML Server User Computer

  4. CGI has issues • performance • Web Server must create new process for each request, limits scalability • maintenance • presentation and business logic tightly coupled

  5. Alternatives • FastCGI - persistent process • mod_perl - perl interpreter embedded in Apache web server • Server Extensions - Netscape(NSAPI), Microsoft(ISAPI) • Active Server Pages

  6. Java Servlets • replaces CGI • a Java program • runs in Servlet Container or Engine • generates dynamic content(HTML, XML) • now part of J2EE architecture • good performance

  7. Java Servlets Continued... • Advantages • generally faster, more efficient than CGI • runs as a thread not an OS process • Convenience - Java API’s • secure - does not run in a shell • portable, vendor independent

  8. Java Servlet Diagram • Extends Web Server 3. Servlet Engine runs the servlet Servlet Container 1. Browser sends request to Web Server 2. Web Server sends request to Servlet Engine Servlet Web Server TopLink 6. Web Server sends HTML to Browser browser Servlet DB jdbc Servlet 5. Servlet generates and returns HTML 4. Servlet can access database

  9. Simple Servlet public class HelloWorld extends HttpServlet { public void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response. setContentType(" text/ html"); PrintWriter out = response. getWriter(); out. println( "< HTML>" ); out. println( "< HEAD>< TITLE> Hello World</ TITLE></ HEAD>”); out. println( "< BODY>”); out. println( "< H1> Hello World</ H1>”); out. println( "</ BODY></ HTML>"); } }

  10. Servlet Issues • servlet generating HTML results in presentation and business logic tightly coupled with accompanying maintenance issues.

  11. Java Server Pages(JSP) • Built on Servlet technology • simplified way to create pages containing dynamically generated content. • converted into servlet, compiled and run as a normal servlet • timestamp checked at specified interval, regenerated if necessary.

  12. Java Server Pages(JSP) continued... • jsp page contains • directives, comments, fixed template data (HTML, XML), jsp expression or tags, scriptlets

  13. Java Server Pages(JSP) continued... • Can be invoked from a browser via URL or from a Servlet • Java code can be in the jsp source • keep simple • Java code can be in a Java Bean • separates User Interface from Business Logic • Used via UseBean tag

  14. Java Server Page Diagram jsp 3. JSP Engine generates servlet 4. Servlet Container runs the JSP (Servlet) 1. Browser sends request to Web Server 2. Web Server sends request to Servlet Engine Servlet Container JSP Engine Servlet Web Server Servlet source code Java Bean TopLink browser Servlet DB Java Compiler jdbc Servlet JSP (Servlet) 6. JSP(Servlet) returns HTML 6. Web Server sends HTML to Browser 5. JSP interacts with Java Bean(s) and/or Servlets

  15. Simple Java Server Page <HTML> <BODY> Hello World. You are using a computer called <% request.getRemoteHost() %>! </BODY> </HTML>

  16. MVC Architecture • Model: data (java bean) • View: presentation / user interface (jsp) • Controller: directs things / traffic cop (servlet) Servlet(controller) Browser 1 2 instantiate request DB 3 JSP(View) Java Bean(Model) 5 4 response Servlet Container

  17. J2EE Architecture

  18. Servlet/JSP specifications • Servlet 2.0 JSP 1.0 • Servlet 2.2 JSP 1.1 • Servlet 2.3 JSP 1.2 • Draft stage • J2EE

  19. Resources • http://java.sun.com/products/jsp • http://java.sun.com/products/servlet • Books • O’Reilly - http://www.ora.com/ • Prentice Hall - http://vig.prenhall.com/ • Addison-Wesley - http://www.aw.com

  20. Servlet/JSP Fundamentals • Servlets like any other Java class, except: • Must extend HttpServlet • Must contain a doPost or doGet method • Come equipped to handle the laborious points of http • Http requests and responses are made into Java objects • Best alternative to traditional CGI

  21. Servlet/JSP Fundamentals • Anatomy of a Servlet • Optional init method, executes the first time a servlet is invoked • doGet/doPost methods execute when request is made • method signature accepts http request and response as parameters • Optional destroy method • www.servlets.com Samples

  22. Servlet/JSP Fundamentals • One instance of Servlet for each Servlet name • Same instance serves all requests to that name • Instance members persist across all requests to that name. • Local /block variables in doPost & doGet are unique to each request

  23. JSP as presentation model Servlet Performs the hard work Helper objects Persistent “bean” objects DB Connections, etc App logic Simple calls to bean properties Client request JSP Unsuccessful results JSP Successful results Subsequent client request Presentation No servlet need if bean still set

  24. JSP alternatives • JSP can still result in unwieldy code creeping into HTML • Most HTML editors don’t like it • JSP:Taglibs and other “templating” programs may help. • Much depends on how HTML documents are produced and what business logic you are presenting

  25. In Depth Examples • Encapsulation of SQL calls • List results and view thread detail • Post reply and add to favorites • Set all bean properties w/ request • Edit users • Query central

  26. Pitfalls, surprises, and work-arounds • HTTP works via requests and responses. Client caching of responses poses a problem. • Guard against evil use of the “back” button • Don’t assume everyone’s client will respond properly to the “defaults” • Guard against easy spoofs of any GET request which alters data.