Post on 04-Apr-2018
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