Servlets 3

Embed Size (px)

Citation preview

  • 8/8/2019 Servlets 3

    1/25

    3

    SERVLETS

  • 8/8/2019 Servlets 3

    2/25

    The hierarchy

    Servlet, Generic servlet, HTTP Servlet

  • 8/8/2019 Servlets 3

    3/25

    All servlets must implement the Servlet

    interface

    Methods:

    init() service()

    destroy()

    getServletConfig()

    getServletInfo()

    Servlet Interface

  • 8/8/2019 Servlets 3

    4/25

    Abstract classthat implements

    Servlet and ServletConfig

    GenericServlet Class

  • 8/8/2019 Servlets 3

    5/25

    Abstract classthat extends GenericServletClassto provide a framework for the HTTP Protocol

    doGet(HttpServletRequest req,

    Htt

    pServletR

    esp

    on

    se re

    sp)

    doPost(HttpServletRequest req,

    HttpServletResponse resp)

    getLastModified((HttpServletRequest req)

    HttpServlet Class

  • 8/8/2019 Servlets 3

    6/25

    1. Subclassoff HttpServlet

    2. Override doGet(....) method

    3. HttpServletRequest

    getParameter("paramName")

    4. HttpServletResponse

    setContentType

    get PrintWriter

    send textto client via PrintWriter

    5. Don't use instance variables

    5 Simple Steps for Java Servlets

  • 8/8/2019 Servlets 3

    7/25

    Single instance created

    init() method called

    You can override init() in your subclassof HttpServlet

    to dosome initial code....

    init() is NOT called again on further requests

    Servlet Lifecycle

    (Creation)

  • 8/8/2019 Servlets 3

    8/25

    On each request, the server spawns a new thread and calls

    service()

    service() checks HTTP requesttype and calls appropriate

    doXXXX(Get, Post, Put...)

    Servlet Lifecycle

    (Service Method)

  • 8/8/2019 Servlets 3

    9/25

    called in response to an HTTP GET and an HTTP

    POST

    In doGetMethod the parameters are appended tothe

    URL and sent along with header informationIn doPost, parameters are sent in separate line in the

    body

    doGet() & doPost()

  • 8/8/2019 Servlets 3

    10/25

    public void doGet(HttpServletRequest req, HttpServletResponse resp){

    doPost(req,resp);}

    public void doPost(HttpServletRequest req, HttpServletResponse resp){

    //processthe incoming request}

    We can call one method from the

    other

  • 8/8/2019 Servlets 3

    11/25

    For some reason (servlet idle, etc) the server may

    wantto remove the servlet from memory

    destroy() allows you to close DB connections, wrap

    up, etc...

    Servlet Lifecycle

    (Destroy Method)

  • 8/8/2019 Servlets 3

    12/25

    The Connection interface establishes a

    connection (session) with a specific

    database.Within the contextof a

    Connection, SQLstatements are

    executed and results are returned.

    Connection interface

  • 8/8/2019 Servlets 3

    13/25

    Connection myConnection;

    myConnection =DriverManager.getConnection("jdbc:odbc:

    orcldb", "stduser", "stduser");

    e.g.

  • 8/8/2019 Servlets 3

    14/25

    The Statement interface creates an object

    that is used to execute a static SQL

    statement and obtain the results produced

    by it.

    Statement Interface

  • 8/8/2019 Servlets 3

    15/25

    Statement stmt =

    myConnection.createStatement();

    e.g.

  • 8/8/2019 Servlets 3

    16/25

    The ResultSet interface provides accessto

    a table of data.AResultSetobject is

    usually generatedby executing a

    Statement.

    ResultSet interface

  • 8/8/2019 Servlets 3

    17/25

    ResultSet rs = stmt.executeQuery("select *

    from student_semester_result;");

    e.g.

  • 8/8/2019 Servlets 3

    18/25

    A SQLstatement is precompiled and

    stored in a PreparedStatement object.

    Thisobject can thenbe used to efficiently

    execute thisstatement multiple times.

    Interface PreparedStatement

  • 8/8/2019 Servlets 3

    19/25

    PreparedStatement pst = myConnection.prepareStatement("Select * from emp_sal"

    );

    ResultSet rs = pst.executeQuery();

    e.g.

  • 8/8/2019 Servlets 3

    20/25

    Returns a resultsetobject using the

    specified statementor prepared statement

    object and SQL SELECT statement.

    Execute Query

  • 8/8/2019 Servlets 3

    21/25

    rs = stmt.executeQuery( "select * from

    names" );

    e.g.

  • 8/8/2019 Servlets 3

    22/25

    Using the specified statementor prepared

    statementobject and SQL INSERT,

    UPDATE or DELETE statement.

    Returns:

    Integer - the number of rows updated.

    Execute Update

  • 8/8/2019 Servlets 3

    23/25

    stmt = "delete from names where

    last_name = 'smith'"

    if stmt.executeUpdate( stmt ) = 0 then

    break

    end

    e.g.

  • 8/8/2019 Servlets 3

    24/25

    See the StdMgmtServlet.java file

    Example

  • 8/8/2019 Servlets 3

    25/25

    Cookies and Privacy

    Sessions

    Next..