Top Banner

of 28

05_Implementing the Web-Tier With Servlets

May 30, 2018

Download

Documents

suresh1130
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    1/28

    5Copyright 2007, Oracle. All rights reserved.

    Implementing the Web Tier with Servlets

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    2/28

    5-2 Copyright 2007, Oracle. All rights reserved.

    Objectives

    After completing this lesson, you should be able to do

    the following:

    Define the role of servlets in a Java EE application

    Describe the servlet life cycle Describe the request and response architecture

    Implement HTTP servlet methods

    List Java EE servlet mapping techniques

    Handle errors in a servlet Create and run a servlet in JDeveloper

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    3/28

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    4/28

    5-4 Copyright 2007, Oracle. All rights reserved.

    Client

    Server

    Servlet engineJava application,Servlet, JSP,

    or HTML

    About Java Servlets

    A servlet is a Java class that implements the

    servlet interface.

    A servlet runs in the context of a special process

    called a servlet engine. Servlets can be invoked simultaneously by

    multiple clients.

    Request

    Response

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    5/28

    5-5 Copyright 2007, Oracle. All rights reserved.

    ServerClients

    Request 1

    Request 2

    Request 3

    Principal Features of Servlets

    Concurrent requests are possible and common.

    Servlet methods are run in threads.

    Servlet instances are shared by multiple client

    requests.

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    6/28

    5-6 Copyright 2007, Oracle. All rights reserved.

    Load

    Life Cycle of Servlets

    All actions are carried out inside the server.

    After initial setup, the response time is less.

    Initialize

    init()

    Destroy

    destroy()

    Execute

    service()

    1 2 3

    4

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    7/285-7 Copyright 2007, Oracle. All rights reserved.

    Request

    Response

    HTTP Servlets

    HTTP servlets extend the HttpServlet class,which implements the Servlet interface.

    A client makes an HTTP request, which includes a

    method type that: Can be either a GET orPOST method type

    Determines what type of action the servlet performs

    The servlet processes the request and sends back

    a status code and a response.

    HTTP protocolClient Servlet

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    8/285-8 Copyright 2007, Oracle. All rights reserved.

    The servlet overrides the doGet() or thedoPost() method of the HttpServlet class.

    The servlet engine calls the service() method,

    which in turn calls one of the appropriate doXxx()methods.

    These methods take two arguments as input:

    HttpServletRequest

    HttpServletResponse

    Browser

    HttpServlet subclass

    service()

    doGet()

    Inside an HTTP Servlet

    Request

    Response

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    9/285-9 Copyright 2007, Oracle. All rights reserved.

    The doGet() Method

    The most common HTTP request method type

    made to a Web server is GET.

    The service() method in your servlet invokes the

    doGet() method. The service() method isinvoked on your behalf by the Web server and theservlet engine.

    The doGet()method receives two parameters asinput:

    HttpServletRequest HttpServletResponse

    Pass parameters by appending them to the URL:http://www.oracle.com/servlet?param1=value1

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    10/285-10 Copyright 2007, Oracle. All rights reserved.

    The doPost() Method

    The doPost() method can be invoked on a servletfrom an HTML form using the following:

    Theservice()

    method in your servlet invokes the

    doPost() method. The service() method isinvoked by the Web server and the servlet engine.

    The doPost() method receives two parameters asinput:

    HttpServletRequest HttpServletResponse

    Pass parameters using the form field names:

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    11/285-11 Copyright 2007, Oracle. All rights reserved.

    The HttpServletRequest Object

    The HttpServletRequest object encapsulatesthe following information about the client:

    Servlet parameter names and values

    The remote host name that made the request

    The server name that received the request

    Input stream data

    You invoke one of several methods to access the

    information:

    getParameter(String name)

    getRemoteHost()

    getServerName()

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    12/285-12 Copyright 2007, Oracle. All rights reserved.

    The HttpServletResponse Object

    The HttpServletResponse object encapsulatesinformation that the servlet has generated:

    The content length of the reply

    The Multipurpose Internet Mail Extension (MIME)type of the reply

    The output stream

    You invoke one of several methods to produce the

    information:

    setContentLength(int length)

    setContentType(String type)

    sendRedirect()

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    13/285-13 Copyright 2007, Oracle. All rights reserved.

    HttpSession

    The unique identity for the client is an

    HttpSession object.

    The object is created by using the getSession()

    method of the HttpRequest object.

    Any servlet that responds to a client request can

    create this object.

    An object can be potentially shared across severalservlets. (Every servlet within an application can

    identify with this client.)

    HttpSession session = req.getSession(true);

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    14/285-14 Copyright 2007, Oracle. All rights reserved.

    Session Objects

    With session objects, you can:

    Put items into the object (values persist across

    multiple invocations from the same client)

    Access items from the object

    Obtain the session identity

    Find out when the session was last accessed

    Items put in a session object can:

    Implement the Serializable interface

    Be relocated to a different server

    Persist across servlet crashes

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    15/285-15 Copyright 2007, Oracle. All rights reserved.

    Methods for Invoking Servlets

    Invoke servlets from a client by:

    Entering the servlet URL in a browser

    Embedding the servlet URL in an HTML, or a

    JavaServer Page (JSP) page, or another servlet (an

    href link)

    Submitting a form to the servlet (using the actiontag)

    Using URL classes in client Java applications

    Invoke servlets inside the Java EE container bydefining a chain of servlets or JSPs.

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    16/285-16 Copyright 2007, Oracle. All rights reserved.

    Please enter your name. Thank you.

    Handling Input: The Form

    You can use an HTML form and the doPost() methodto modify the HelloWorldservlet.

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    17/285-17 Copyright 2007, Oracle. All rights reserved.

    public class NewHelloWorld extends HttpServlet {public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException{

    res.setContentType("text/html");PrintWriter out = res.getWriter();out.println ("");String name = req.getParameter("firstName");if ((name != null) && (name.length() > 0))

    out.println ("Hello: " + name +" How are you?");

    elseout.println ("Hello Anonymous!");

    out.println ("");}}

    Handling Input: The Servlet

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    18/285-18 Copyright 2007, Oracle. All rights reserved.

    Initialization and Destruction

    Servlets also define the init() and destroy()methods in addition to the service() method.

    init():

    Can be used to retrieve initialization parameters Takes a ServletConfig object as a parameter

    Is invoked when the servlet instance is created

    Is useful for obtaining database connections from a

    connection pool

    destroy(): Takes no arguments

    Is invoked when the servlet is about to be unloaded

    Is useful for releasing resources

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    19/285-19 Copyright 2007, Oracle. All rights reserved.

    Error Handling

    ServletException:

    Is generated to indicate a generic servlet problem

    Is subclassed by UnavailableException toindicate that a servlet is unavailable, either

    temporarily or permanently

    Is handled by the servlet engine in

    implementation-dependent ways

    IOException is generated if there is an input or

    output error while processing the request.

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    20/285-20 Copyright 2007, Oracle. All rights reserved.

    Debugging a Servlet

    Servlets can be debugged in the following ways: Setting breakpoints and using the debugger in

    JDeveloper

    Viewing the source of the generated HTML

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    21/285-21 Copyright 2007, Oracle. All rights reserved.

    JDeveloper Environment

    The Servlet Wizard in JDeveloper makes it easy for you

    to write servlets. The wizard:

    Provides the doGet() and doPost() methodskeletons

    Provides an environment for running the servlet

    within the integrated development environment

    (IDE)

    Dynamically creates the web.xml file for running

    the servlet from the IDE

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    22/285-22 Copyright 2007, Oracle. All rights reserved.

    Servlet Mapping

    Mapping a servlet refers to how a client can

    access a servlet.

    You can map a servlet:

    To any URL that begins with a certain directoryname

    By using the direct URL:

    http://host:port//servlet/.

    By using the mapped URL:http://host:port//

    is the mapping for the Webmodule.

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    23/285-23 Copyright 2007, Oracle. All rights reserved.

    Servlet Mapping in JDeveloper

    JDeveloper provides the standard J2EE model for

    mapping servlets by using the web.xml file:

    MyFirstServletpackage1.HelloWorld

    MyFirstServlet

    /helloworld

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    24/285-24 Copyright 2007, Oracle. All rights reserved.

    Invoking a Servlet

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    25/28

    5-25 Copyright 2007, Oracle. All rights reserved.

    Specifying Java EE Web Module Settings

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    26/28

    5-26 Copyright 2007, Oracle. All rights reserved.

    Summary

    In this lesson, you should have learned how to:

    Describe the servlet life cycle

    Develop and run a servlet in JDeveloper

    Map a servlet in a Java EE server Collect information from a client

    Respond to the client

    Handle errors in a servlet

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    27/28

    5-27 Copyright 2007, Oracle. All rights reserved.

    Practice 8: Overview

    These practices cover the following topics:

    Creating a servlet that invokes the doPost()method and running it from an HTML form

    Creating a servlet that invokes the doGet()method to create an HTML form

  • 8/14/2019 05_Implementing the Web-Tier With Servlets

    28/28