Introduction of Servlets in java prog.

download Introduction of Servlets in java prog.

of 29

Transcript of Introduction of Servlets in java prog.

  • 7/31/2019 Introduction of Servlets in java prog.

    1/29

    Serv le tsServ le ts

  • 7/31/2019 Introduction of Servlets in java prog.

    2/29

    17

    Exit

    Bill

    ------

    ------

    A Day In A Typical Restaurant

    This system runs smoothly runs with a few customer

    Then the money

    is paid The customer asksfor the bill

    A Waiter Accept the orderand then serves food

    The customer

    leaves the

    restaurant

    A customer entersthe restaurant

  • 7/31/2019 Introduction of Servlets in java prog.

    3/29

    18

    An example - McDonalds a Chain of Restaurants

    Order

    A customer enters

    the restaurant

    Collects the

    items and leavesPays the bill

    He places the order

    He goes to the

    counter...

    Back end Chef

    Food Counter

  • 7/31/2019 Introduction of Servlets in java prog.

    4/29

    19

    A Ty p ical Rest au r an t

    Client

    Places order Passes it

    Sends back the

    processed order

    ServesWaiter Chef

    The restaurant may need to be expanded

    Increased cost

    Greater Investment This can be a solution butincase customers want to

    place orders from a remotelocation, then the web can

    come to rescue

  • 7/31/2019 Introduction of Servlets in java prog.

    5/29

    20

    The W eb Based So lu t ion - New way of doing business - E-commerce

    Web Serverreceives request

    (Waiter)

    Places order HTTP request

    Servlets act

    as Chefs

    Client Browser

    Checks the

    restaurant

    database

    Items are Present

    Requests for Items

    Dish

    Ready

    Information sent back to

    client as an HTTP response

  • 7/31/2019 Introduction of Servlets in java prog.

    6/29

    21

    Serv le ts -de f ined

    Java se rv le t i s a se rve r side app l i ca t ion w r i t t en inj av a lan g u ag e.

    I t dyn am ica l l y genera t ed HTML pages.

    Java v i r t ua l m ach ine and pack age j avax .serv let i sneeded to r un j ava serv let .

  • 7/31/2019 Introduction of Servlets in java prog.

    7/29

    22

    Advan t ages o f Se rv let s

    Loaded in the same

    process space as the

    web server

    Faster than common

    scripting languages

    More secure and almost

    crash proof,no bufferoverflow

    Inexpensive

    Completely protocol

    independent

    Advantages

  • 7/31/2019 Introduction of Servlets in java prog.

    8/29

    23

    Ser v let s I n t r o du ct i on

    A serv le t i s a Java c lass used t o ex t end t he capab i l i t i es o fse rve r s th a t hos t app l i ca t i on s accessed v ia a r equest -r e sp o n se p r o g r a m m i n g m o d el

    Other

    Applications

  • 7/31/2019 Introduction of Servlets in java prog.

    9/29

    24

    Serv l e t s a re no t t i ed t o a speci f i c cl i en t - serv e r p ro t oco l bu tt h e y ar e m o st co m m o n l y u se d w i t h H TTP

    Typ ica l uses fo r HTTP Serv le t s inc lude :

    Read exp l i ci t d a ta sen t by c l i en t ( f o rm da ta )

    Read im p l i ci t da ta sen t by c l i en t ( request headers )

    Genera t e the resu l t s

    Send t he exp l i c i t da t a back t o cl ien t ( HTML)

    Send t he im p l i ci t da ta t o c l ien t ( s ta tus codes and response

    headers ) Manag ing s ta t e i n fo rm a t i on on t op o f t he s ta te less H TTP

    Ser v let s I n t r o du ct i on

  • 7/31/2019 Introduction of Servlets in java prog.

    10/29

    25

    A se r v l et e n g in e p r o v i d es t h e r u n t i m e en v i r o n m e n t i n w h i ch aserv le t ex ecu t es

    The se rv l e t eng ine m anages t he l i f e- cycl e of serv l e t s f romw h e n t h e y ar e f i r s t cr e at e d t h r o u g h t o t h e ir i m m i n i en tdes t ruc t i on

    The serv le t eng in e execu t es w i th in a Java Vi r t ua l Mach in e

    Serv l e t eng ines com e i n t w o f l avou rs : Stand -a l one and Add -on

    A standa lone se rv l e t eng ine i s a f u l l y f u nc t i on i ng w eb

    se rve r w i t h suppo r t f o r serv l et s. Fo r exam p le -

    W ebSpher e , Java Web Serve r and I p lane t

    An add-on se rv le t eng ine i s a p lug - i n t ha t can be addedt o a w e b se r v er t o g i v e i t t h e se r v l et s u p p o r t i t w a s

    pr obab ly never designed t o have . Fo r exam p le -

    Se rv l e tExec and Tom ca t

    Ser v le t En g in e

  • 7/31/2019 Introduction of Servlets in java prog.

    11/29

    26

    Adv an t ages o f u sing Java Serv let s

    Ef f i cien t : t h r eads ins tead o f OS pr ocesses, one ser v le t copy ,pers is tence

    Conv en ien t : l o t s o f h igh l eve l u t i l i t i es

    Pow er fu l : t a l k i n g to se rve r , sha r ing da t a , poo l i ng , pe rs is tence

    Por t ab l e: r u n on v i r t ua l ly a l l opera t i ng syst em s and se rve rsSecu r e : no bu f f e r ove r f l ow s

    I nexpens iv e : i nexpens i ve p l ug - i ns i f se rv l e t suppo r t no tbund l ed

  • 7/31/2019 Introduction of Servlets in java prog.

    12/29

    27

    Basic Serv le t a r ch i t ect u r e

    Ser v le t L i fe cyc le HTTP Ser v let

  • 7/31/2019 Introduction of Servlets in java prog.

    13/29

    28

    Ser v le t Li f e Cy cle

  • 7/31/2019 Introduction of Servlets in java prog.

    14/29

    29

    Ser v le t Li f e Cy cle

    Servlet

    GenericServlet

    HttpServlet

    GenericServlet

  • 7/31/2019 Introduction of Servlets in java prog.

    15/29

    30

    Ser v le t Li f e Cy cle

    i n i t ( ) M ar k s t h e b eg i n n i n g o f a se r v l et s l i f e

    Cal led on ly w hen t he se rv le t i s f i r s t l oaded

    Ta k e s o n e p ar a m e t er , Se r v l et Co n f i g w h i ch h a s t h e se r v l et s st a r t u pcon f i gu r a t i on and i n i t i a l izat i on pa ram e te rs

    D oes no t re tu rn any v a lueserv ice ( )

    Execu ted af t e r t he serv le t s i n i t ( ) m e thod i s execu t ed success fu l ly

    Ta k es t w o p ar a m e t e r s - H t t p Se r v le t Req u est a n dHt tpServ le tResponse

    D oes no t re tu rn any v a lue

    Gener i cSe rv le t s serv i ce( ) m e thod i s abst r act

    HTTPServ le t : Ther e are 2 serv ice m eth ods in t h is c lass . Pub l icserv i ce ( ) m e thod d i spat ches t h e reques t t o t he p ro t ected serv i ce ( )m e t h o d w h i ch i n t u r n s en d s t h e r e qu e st t o t h e d o Ge t ( ) o r d o Po st ( )m e thods de f i ned i n t h e class

    d e s t r o y ( ) M ar k s t h e e n d o f a se r v l et s l i f e

    Cal led on ly w hen t he se rv le t i s un loadeded

    D oes no t re tu rn any v a lue

  • 7/31/2019 Introduction of Servlets in java prog.

    16/29

    31

    HTTP Ser v le t

    The genera l ru les t o be fo l l ow ed w h i l e w r i t i ng a HTTP Serv le t : Ex t end Ht tp Se rv l e t cl ass, w h i ch im p lem en ts t he Se rv l e t

    i n te r f ace

    M u st c al l su p e r .i n i t ( co n f i g ) i n t h e se r v l et s i n i t ( ) m e t h o d , i n

    o r d e r t o s t o r e co n f i g u r a t i o n i n f o r m a t i o n p r o v i d ed b y t h eserv le t con t a ine r , to be accessib le i n t he serv le t fo r l a te ruse . Th i s super ca l l saves t he Serv le t Con f i g ob j ect , w h ich

    w ou l d no t be ava i lab le o th e rw i se .

    Ov er r i de doGe t ( ) - t o hand le GET request s . Ove r r i de

    doPos t ( ) m e th od t o hand le POST requ est s .

    W i t h i n t h e d o Ge t / Po st m e t h o d , u s er ' s r e q u est i srep res en t ed by an H t t pSe rv l e tRequest ob j ect and responset o t he user i s rep r esen t ed by an H t t pServ le t Respon se

    ob j ec t . Th e r e sp o n se ca n b e w r i t t e n t o t h e u se r t h r o u g h Pr i n t W r i t e r

    o b j e ct o b t a i n ed f r o m t h e Ht t p Se r v l et Re sp o n se o b j e ct .

  • 7/31/2019 Introduction of Servlets in java prog.

    17/29

    32

    HTTP Ser v le t

    doGe t ( ) Ca ll ed by t he se rve r ( v i a t he serv i ce m e thod ) t o a l l ow a

    serv le t han dle a GET r equ est Pa r am e t e r s a r e p asse d t o t h e d o Ge t ( ) m e t h o d t h r o u g h t h e

    URL

    There i s a l im i t a t i on o f da ta ( say 255 cha ract e rs) t h a t can besen t t h rou gh GET m e thod

    doPos t ( )

    Ca ll ed by t he se rve r ( v i a t he serv i ce m e thod ) t o a l l ow aser v le t t o h and le a POST r eques t .

    The r equest body con ta i ns t h e pa ram e te rs and va l ues

    POST m e thod doesn t h ave l im i t a t i on on t he am oun t o f da tab e in g s en t t h r o u g h .

  • 7/31/2019 Introduction of Servlets in java prog.

    18/29

    33

    i m p o r t j a v a .i o .* ; i m p o r t j a v a.n e t .* ; i m p o r t j a v a x .s er v l et . * ; i m p o r t j a v a x .se r v le t .h t t p . * ;

    p u b l i c cl ass N ew Se r v l et e x t e n d s H t t p Se r v l et { p ro t ected vo id p r ocessRequest ( H t t pSe rv le tRequest request ,

    H t t pSe rv le tResponse response ) t h r ow s Serv le t Excep t ion , I OExcep t ion

    { r e sp o n se .se t Co n t e n t Ty p e ( " t e x t / h t m l ;ch a r se t = UTF- 8 " ) ; Pr i n t W r i t er o u t = r e sp on se.g et W r i t e r ( ) ; t r y { } f in al l y { o ut .cl ose( ) ; } }

    p ro t ected vo id doGe t ( H t t pSe rv le tRequest request ,H t t pSe rv le tResponse response )

    t h r o w s Se r v l et Ex c ep t i o n , I OEx c ep t i o n { pr ocessReques t ( requ est , response) ; t r y { o u t .p r i n t l n ( " < H TM L> < H EA D> < TI TLE> H el lo Cl ien t ! < / TI TLE> " +

    " < / H EAD> < BODY> H el lo M y Fi r st j a v aCl ien t !< / BODY> < / HTML> " ) ;

    ou t . c l ose ( ) ; } f in al ly { ou t .cl ose ( ) ; } }

  • 7/31/2019 Introduction of Servlets in java prog.

    19/29

    34

    pr o t ect ed vo id doPos t ( H t t pServ le t Reques trequest , H t t pSe rv l e tResponse response )

    t h r o w s Se r v l et Ex c ep t i o n , I OEx c ep t i o n { pr ocessReques t ( requ est , response) ; }

    p u b l i c St r i n g g e t Se r v l et I n f o ( ) { r e t u r n " Sh o r t d e scr i p t i o n " ; } }

  • 7/31/2019 Introduction of Servlets in java prog.

    20/29

    35

    Sign i f i can t En t i t i es i n Serv let s t echn o logy

    Request Response Servletcontext Session & Session Tracking

  • 7/31/2019 Introduction of Servlets in java prog.

    21/29

    36

    Request

    Request ob j ect encapsu la tes al l i n f o rm a t i on f r om th e cl i en t request Request pa ram e te rs a re st r i ngs sen t by t he c li en t t o a se rv le t con ta ine r

    as pa r t o f a reques t

    Wh en th e request i s a Ht t pSe rv le tRequest , t h e a t t r i bu t es a re popu la tedf r o m t h e U RI q u e r y s t r i n g o r p o ssi b l y p o st e d f o r m d a t a

    Param e te rs a re sto r ed by t he serv le t con t a iner as a set o f nam eva lue

    pa i r s The fo l low ing m e thods o f t he Se rv le tRequest i n te r f ace are ava il ab le t o

    access pa ram ete rs : ge tParamete r

    ge tPa rame te rNames

    ge tParamete rVa lues

    A serv le t can access th e headers o f an HTTP requ est th rou gh t hef o l lo w i n g m e t h o d s of t h e H t t p Se r v l et Re q u est i n t e r f a ce : getHeader

    ge tHeaders

    ge tHeaderNames

    Request ob j ect can have a t t r i bu t es associa ted w i t h i t . A t t r i bu t es m aybe se t by a se rv le t t o com m un icate i n fo rm a t i on t o ano t he r serv le t

    At t r i bu t es a re accessed w i t h t h e m e thods o f t he Se rv le tRequesti n te r f ace: g e t A t t r i b u t e

    g e t A t t r i b u t e N a m e s

    s e t A t t r i b u t e

  • 7/31/2019 Introduction of Servlets in java prog.

    22/29

    37

    RequestRequestSample.html

    < h t m l > < h e a d >

    < META HTTP-EQUI V= " Cont en t -Type" CONTENT= " tex t / h t m l ; " >

    < t i t l e > D at a En t r y Pa ge < / t i t l e >

    < / h ead >

    < b o d y >

    < f o r m m e t h o d = " p o st " a c t io n = " Fo r m H a n d le r Se r v le t " >

    < t a b l e ce ll p ad d i n g= " 0 " ce ll sp a ci n g = " 0 " b o r d e r = " 0 " >

    < t r >

    < t d > Pl ea se en t e r y ou r n a m e :< / t d >

    < t d > < i np ut t y pe= " t e x t " n am e = " en t er ed Valu e" / > < / t d > < / t r >

    < t r >

    < t d > < i n pu t n am e = " o pt i o ns" t y p e= " c h eck b ox " v al u e= " g r ad u at e " / >

    g r ad u at e < / t d >

    < / t r >

    < t r >

    < t d > < i n pu t n am e = " o p t io n s" t y p e= " ch eck b o x " v al u e= " p o st - g r ad u at e " / >p o st - g r ad u at e < / t d >

    < / t r >

    < t r > < t d > < i np ut n a m e= " o p t io ns" t y p e= " c heck b ox " v al ue= " d oct r at e " / >

    doct rat e < / t d>

    < / t r >

    < t r > < t d > < / t d > < t d > < in pu t t y pe= " s ub m it " v alu e= " Su bm i t " >< / t d>

    < / t r >

    < / t ab le>

    < / f o r m > < / body > < / h t m l>

  • 7/31/2019 Introduction of Servlets in java prog.

    23/29

    38

    eques t :FormHand le rServ le t .java

    import javax.servlet.*;import javax.servlet.http.*;

    import java.io.*;

    public class RequestSample extends HttpServlet {

    public void doGet(HttpServletRequest objRequest,

    HttpServletResponse objResponse)

    throws IOException, ServletException {

    doPost(objRequest, objResponse);

    }

  • 7/31/2019 Introduction of Servlets in java prog.

    24/29

    39

    public void doPost(HttpServletRequest Request,

    HttpServletResponse Response)

    throws IOException, ServletException {

    objResponse.setContentType("text/html");

    PrintWriter out = Response.getWriter(); String enteredValue;

    // gets all the selected options from the client browser

    String[] selectedOptions =request.getParameterValues("options");

    // gets the enteredValue fields value enteredValue = request.getParameter("enteredValue");

    PrintWriter printWriter;

    try

    { // get a printwriter from the HttpServletResponse objectsref.

    printWriter = response.getWriter();

  • 7/31/2019 Introduction of Servlets in java prog.

    25/29

    40

    // return on the HttpServletResponse objects ref. requested values printWriter.println("

    "); printWriter.print("You entered: "); printWriter.print(enteredValue); printWriter.print("

    "); printWriter.println("

    "); printWriter.print("The following options were selected:");

    printWriter.println("
    ");

    if (selectedOptions != null) { for (int i=0;i< selectedOptions.length;i++) {

    printWriter.print(selectedOptions[i]); printWriter.println("
    "); } } else { printWriter.println("None");

    } printWriter.println("

    "); } catch (IOException e) { e.printStackTrace();

    } } }

  • 7/31/2019 Introduction of Servlets in java prog.

    26/29

    41

    Response

    Respon se ob j ect encapsu la t es a l l i n fo r m at ion t o be re tu rn edf r o m t h e se r v er t o t h e cl ie n t

    I n f o r m a t i o n is t r a n sm i t t e d f r o m t h e se r v er t o t h e cl ie n t e i t h e rby HTTP headers o r t he m essage body o f t he r equest i n HTTPpro toco l

    A serv le t can se t h eaders o f an HTTP response v ia the f o l l ow ingm e t h o d s o f t h e H t t p Se r v l et Re sp o n se i n t e r f a ce :

    setHeader

    addHeader

    se t He ad e r m e t h o d se t s a h ea d er w i t h a g i v en n a m e an d v a l u e. I fa p rev iou s header ex is ts , i t i s rep laced by t he new header

    a d d He ad e r m et h o d a d d s a h e ad e r v a lu e t o t h e se t o f h e a de r sw i t h a g i ven nam e . I f t he re a re no headers a l ready associa tedw i t h t h e g i v en n a m e , t h i s m e t h o d w i l l cr e at e a n ew se t

  • 7/31/2019 Introduction of Servlets in java prog.

    27/29

    42

    Response H t t pSe rv le tResponse supp l i es a num ber o f m e thods f o r speci f y i ng

    co m m o n h e ad e r s

    se t Co n t en t Ty p e m et h o d

    Sets th e Con t en t -Type header t ha t speci f i es th e MI ME t ype o f t hed o cu m e n t t h a t s er v l e t i s g oi n g t o o u t p u t

    D ef a u l t MI M E t y p e f o r se r v l et s i s t e x t / p l ai n , b u t t h e y u su a l l ye x p li ci t l y sp eci f y t e x t / h t m l

    Example: response.setContentType("text/html")

    MI ME ( Mu l t i -Pu rp ose I n t e rne t Ma i l Ex t ensions ) w as o r i g i na l l yd e v el o p ed t o a l l o w I n t e r n e t e m a il t o c o n t a in s o m e t h i n g o t h e rth an j u s t sim p le ASCI I cha racte rs

    W hen a se rve r sends a f i l e to a c l ien t app l i cat ion , i t speci f i es theMI ME t y pe i n t h e header and t h e b row ser ei t he r d i sp lays i t w i t hi t s bu i l t i n p laye rs or p lug - i ns

    a d d Co o k i e m e t h o d s et s a co o k i e g et W r i t e r / g et Ou t p u t St r e am - Ret r i ev es an o u t p u t s t r eam t o s en d

    da ta t o t he cl i en t

    To se n d ch a r a ct e r d a t a , u s e t h e Pr i n t W r i t e r r e t u r n e d b y t h er e sp o n se 's g et W r i t e r m et h o d

    To send b ina ry da ta in a MI ME body r esponse , use theSe r v l et O u t p u t St r ea m r e t u r n e d b y g et O u t p u t St r e am

  • 7/31/2019 Introduction of Servlets in java prog.

    28/29

    43

    Response

    SampleResponseSample.java

    import java.io.*;

    import javax.servlet.*;

    import javax.servlet.http.*;

    public class ResponseSample extends HttpServlet {

    public void doGet (HttpServletRequest req, HttpServletResponse res)

    throws ServletException, IOException

    {

    ServletOutputStream out = res.getOutputStream();res.setContentType("text/html");

    out.println(" ResponseSample Output

    ");

    out.println(" ResponseSample Output ");

    out.println("

    This is output from ResponseSample.");

    out.println("");

    out.close();

    }

    }

  • 7/31/2019 Introduction of Servlets in java prog.

    29/29

    44

    Exerc ise

    1 . W r i t e a ser v l et w i t h d o Get a n d d oPo st m et h o d s t o p r o cess t h ef o l l ow i n g h t m l f o r m el em en t s :

    " Em a il - Tex t Fi el d

    " N am e Tex t Fie ld

    Sex - Ch eck b o x"Company -Tex tF i e l d

    " St r e et - Tex t Fi el d

    " Ci t y - Tex t Fie l d

    " St at e - Dr op d ow n" Zip co de - Tex t Fie ld

    " Cou n t r y - Tex t Fie ld

    " Ph on e - Tex t Fie ld

    d o Ge t m e t h o d h a n d l es t h e in i t i a l in v o ca t i o n o f t h e se r v l et . I tr e sp o n d s w i t h a f o r m , t h a t w i l l u se t h e " POST" m e t h o d t o su b m i t

    da ta .

    d o Po st m e t h o d r e sp o n d s t o t h e " POST" q u e r y f r o m t h e or i g i n al

    f o r m s u p p l i ed b y t h e d o Ge t ( ) m e t h o d