0% found this document useful (0 votes)
698 views268 pages

Shekar Struts

Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
698 views268 pages

Shekar Struts

Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 268
Shelear str S atya TECHNOLOGIES MANOJ XEROX Gayarti nager, Behind-Huda-Ameer pet SOFT WARE. INSTITUTES MATERIAL AVAILABLE CELL :8978989710 Struts Z\josj2ou. Mr Shekat sy TAam—gaen tate Development Models: : HAleb appltcation Lleb application Developement tc prvidesa. Standard vo9.s46 to Dwelop a .elorpplicatfon..in whol plece. aha technolog iy aes ble Bato Develop a welsapplicalion te noibing buk “nlebapply Development Models gen ' These ate two Model ¢ > Tsp fs Inbuduwced in as Model 1. Jen. 2000. 2. Model -2 a a SateloappnDevelomant undey We. Gener > Madel-thas Some Drawloaek in ordlerd to OveCeme thete probleme we, Jer model—2 Design these ate also called mvc mode -~ The Matin problem ef Modd-a has PageCentic problem and view feayer ond Presentation fayent ase Combined together in One layer. Lhe ao expplicabion te in for te20 Developers then the Designs qiveo by the Woo Deolopeas forthe Saene pplication. may not be equcl becox the cupplteation Design Depends en how a Developer ic See | a web appin, Tf one Developer want’sto urvlersland the Design qrenby ether Develeperthen tt becomes vey clttte les Reconthe. Design not cxceorcling te theet Developer Péinte of vPewo. a => Tr Orelerec) to Solve these appl Design pecbleamr ard also to Informrthedt hak technology, Af GSlable-Cr ot whatplace ” woe get loeb apply Devela Myeak moda! Ke gok two Modeleirthose are 2 Model—1, 2 model-2 - — Modd-a: Tn Medel=| Avcbitectire the mato Draw back te foge.Cenbie~ problem, > TheModel—1 Architecture Inbaduced ta gona. alona Tent akn <> The applos developing by ottag modlel—1 Axdiitecture conlaine a Sees of ASP Pages, wh allthe Lonfec vequiived by the apply. 1D Tnthic moded-a architecture, «Tsp teehndlegy te vesponshle or Implemes_ Hag all fegtes vequtved -B7aN appl ftmeane the preentation tagte , BL and the Dovakale lugic cltent > Applicaton hogfe Te nothing hut Ftea Combfnationof Bussine ce toate + peacistenttogte- PLrihic node! ~ Architerlure the Tep pagecate vesponstble toimplement each andevely bogie ofa wehappln. Model DrawBers,- 2): All logice ane. Aenplermeuked offing Lebour 4c not possible - oe 2: an explo contating a Setes of peg eel mod Beation pees Irene page lo changer? rerelog depepeneling cull pages thie problem Teta. ef pegecenbic problem. D> Apply Develeproent anal cat and time both ate incveased Dr-tne size sf the -tsppages one got Gneveated, SO that Complerity-of the. ppl tr aio Fncvected. Madel=2 Archibec ture - step Winbucluced bap ic Yabectuccel Sun microsyctew In ofderd to Overcome the drawhkecks of CuleE technology : bute induchy is xealicedthat loth Solel Step ate yeautved-forthe. Developynent of web Single beahralegy CIsp) 0, Piston of Applne. and they Prbvdueed Model 2 cach’teckue =) We Call Model -2 architecture as Myc Architecture. bit Madel—1 key [Save Moto —wonn mMedel—a~ Bea PM] -— Mache} Cusineselegie ) Adanced Java. aEpS N view ( presemialten logte) Moto — W004 ¢ Cal Controilon An. un ny LOBtE Mal Mertens ton! wilt B2ocp/20n. Pasickeleng. (mvc Model feu Contotten) Areht kee ure = cient Contec _ view! = an mve Aye Witeckure, a Serolet act? af « Cenboller and $tperformc the Common operations fae. ctl vequets Le Snput verification, 26% Moneage mesthy Sesurity - > ule call the Gulet ala Conkoller becoe, HkKnows the ebtirve flew Of-the Wlebapplication, 9 the Gobollertinds appapSate Busines Lege comport for the Gren sequest ard # wil RE the cetke to-thec€ Component We call thot Business logic component ot a Medal. F By clepencting onthe fog tealstoore fink vetunnd by the maxtel the Cenholler Seleets an apprpriate veo Cormponet -tigs view Componaul get response cata £omthe. medel and tates th and pintl on tothe Cleuk Booeoter ) Aceoreling to Myc taeckiteclure, Sewlet tea Conboller, podel te a Bean and Gop fea View Advantages i- > Conpbeiity Ic vague veclueced , betoz each Compornt has they Spesttichogte. > Ile Cary moolity One componeut, by without cMlec og he other Compan On than Mi ehehen. @0%.. nae . 2 Buciness Componeuk logic tc rewmenble,thatmeans the same Business logicBean can be Useel In another’ Woeberpply axlco, Rules to be follows volfle Conthuelng MYC appliccbione 1. => Toa wedagln, there Ganbe ony noof Made Conponentt.and an mo? ° ° View Component but thele musthe cx Single Controler Colet). these typcot Conboller we Call as font Controller. P Le Cannot lo the reek Hating bebween v0 Pages, 1f we Dveetl dink 4200 page? Le ole Upsatebing mvc pandiple. be cazs acrmnsig hy Myc the Conbotl Flowot 09 apply should be Mainteined Conbotler only > Aeccaiding to Mve coclSteetune Meacted and vied Component chorild nol- fale each otver Olvettly the Communication ‘tom view tothe Modlet ard modelto-the Yiu? Should be alone trvvgh -the medfater 06 Conbotler. ~ cw) begin Sep — wn wee sl ae Bed — MeV }xomug 3} De rot = lees ete efth Tem — Cte Za : Lace ete (W => In mve, ecchcemponent ould Conte’ Fes Specshic loge , ee can't "AUP Some other Logic fntorhat Compontn& Fer Excunple ETO Tetie View Semon Cplioncace piepleuyed lout por aller vooriiing. meynat betel) FH we weak Fo addecl ano ether module wecen amply add neo medule Io Bat Grdotey > Importenceof taveapplne:- > Wile developing eocteapyly in Realtime, Ff cre developer wanif to Ondeestand the Sloncreated by the anothe Developer thenthe oie Slows of toe apply chowld be meiniedned ata Single floce.. We tallttront... a+ > > Tan applnfllows an Mve prnetple ‘then HAS very dmpleto Fnexease an applicator aneven becreotle an apply when IHS neccled or weyurred > he applications ¢mplemented Ofing nave. Can fyppont dfftevent types Of cliente. at Runtime. => voléle citing save 16% recommonded-that 01 Brooke ofa Conollerbean 26 mexlel ard Isp Gt ate view. “Tn rhodel View place wee Con wile Solel cede andad ucelas me Corboller page eau wirte ISp.60 bub that Some Drow Rave? ee Medel mustbe Beans”, ly Sovlet oe Coney B5letlaou Lf we ved Fy asa Conboller then wooneed to worlte fewrgye a most of fave Coke ina Sep hie i against ep pinciple. and RiLnot an induttoy ance PAF we cred a Bean are Conbolter then a Bean can't handle, itp Repuest >So We cancay “Mat ep and Rean, both exe not Sullable to wave as Conboller ence, Sewlet Iscsecf as Conboller. “Ef we ore Sedtet has avtevs componesct ther we nef Yo modity ~ Srolet code frequently. becon,, Geranly Preselakon ie not a ¥ yee medity the Golel we need to Fecornptle, ea Relecf 4 an Restart the Cerio Lor each me Ante te Ime ConsumPag pp: co voeece. D> Ha Bean class I ese FO Vierrhher the temnelnts Cano’ buff, € output on tothe. BaowSer. > ble Commot Used kqsing Reans clase Anordered to Deston tne Pretutation, 50 Swlebord Bean classes ale not flatle —by Worcing a feo hence ATep is Used asa b view, > In Case of Fp, WU poumodilytne Ten Than ie Restart the Re. Just weneed to elterthe Refyegh of-the Button 20 Aspts most suiteble Ly wor asa view Com pont: tlhy Bean ase Moolel $ The used atovdlel ac a model then Wecan trplernec- Burin- eS fogic we Can't gtine Realtime Grvices-fory Conkalrer veautve. fr the Butiness Logie. > U tore ip 8% Model then we-necal to implumat Lotot fava, code ty gop ond tres cogataict T5P principle also. So weazn'e Reallime Quicel fog-the Butiness fegic tnto Ace. so Stolet ang Tsp oe not guslatlefor’mplemedting Realtime toate ence Bean tp uted as a Medel Compent- We Why aiame work 2 We can Develop applreaHone by uth Ost offn ony daurnoorte a Seva but the Apply Development is voy Slow. and pe canih poe any cddlitfane| Suivices Cenlainer prided Seutces > Tf persed Home wore nen an appiteodion Developmeutte Be born es faster are} apestt For Container Lnf@l eco) Gok, addhoncl Qa fees om-the fame wore S we cted frame woone Realoootd apgliastionc, Wha ts a Fiamework.% D Framewor te @ non inglalable Sfus,, lich pride polos hades arf these Ribravel ox 2ored In ordered 2 mate ay forthe Dewelopmet of apply pevelopmert faster. > Athan eee but a Jartle 716 Gmiftllar 0 Zip fe oe SG of Gove Clasies > Framewores axe ctided into “to ty pet. LL. pon—Anvastve (or) Non) Intrusive 9 @.e > HON-Iniyéeive framework meant Hdocts > Pree & Preparer, to extend and -toimplemut thete clacces Lom any precletined clare’. ate @n Trtefoe given by -Chathame work, > Invasive homuorte meant ~tbe'it-brcee “the programmer te Extend or fnnplement -thete clocees Lorn @ predefined clots or an tnbexlure, geo dy that lame wore, —fos Exemple Sping > Uiloemate ate non—Invatve trameorice where ar Aaulci©On Tryastive Frame word. > Kk got Fromewaortce for all the “tree fayes ate deudopmak +-< Business, peatistence, Busines § perstetance Fresenteston faujex Frome wores = Bucfness layer eimiesenenoon 1) Sheds D Sping 2 ar : _ ee Nove x con) Ue. sping Flo Boral) cues alto. F) Taphstoy etc ~~ Persitientce layerto!~ thescwe alco called as cana Toots 1D) Bf bernake a) WBaTiC 2). Vopling U). ape. ete - Rules -bo be. fll weet by Rrame wore :. > Roy ramp worr % a Mon Fnelalable Sfuy. > Fachhame cme Comaine an hgh level obgect rel HC -xeypenetole fer treating He Remetry Lov evd obfecte > Rach fame post, apply Contang at feast one Contain tle > An apply Exreeuke: 1 Cea 24 foacling the Conourahion he Ofte Heme worp, 26(04|201) Ge) > Ubat ‘ic Strutt Frome Works t 7 Stouts Framework ton Operosrce prcfect providelan cuochere tin, > Lager an 4opof the exiting technology ® called ax Lewlet and Fepis tot Creating of fava Bated liceMonc, Ut cockeappl by 4 > Stuuls $a Mab pafect of Gatarte Prifects are I 48 created the devclepmentaf webagple by bllewing rave -2 Model auckitecdune. > Stutsfome worett nothing but Implemestalion of Mvcamed on tcp, > Apache Sotturate Lurdaton Plarted a profect called Satcarta profecte foe Cecaliog eUtalle Gormpooette for, java H has cltyided into +woLaels Profecte "4. commons Prchect 2+ Seats Prfect. —> he Tnistial name of Crete woe Sate Hutt, Lotter TH40 Benamed as Opec he Cuts . > Comment Profect Cones anprotimetly 30 Seoproifece and ft creates Ye ULable componesttt iy fae. > Strete profect has foo Selo profecte celled — Veltolafor prfeet and Tiles prafect 13 Apache leogtng I> fo b> beanattic Sulopoofer ty coileelfeng [tats > velidadtoy i Subpreects of Tilec, | Che, > Shut femme soorets Proving the folorcing Componete A). TL providec a Race Lamenmec te me inte Bate Frome WOK Contedng Atof pacicsger andar callzt has Pi and weneed to utethe Shutt Apr for creating dur web arplng B at poiides a Cet of Toq Sbrovfec CH tle s)-for erecting the. srop “the Teeglibarfea provicles a sebot tags and thea-teig ¢ 8 add-the. add Fonad fwiter tote ep, 3. St provider eaty Integratfon with “he cthurhamewonke Where may ke Thternal-frasne wove ofhale arcan Extemal Frome worres ales => Shute te an Trvosuerbame work. H means, olile ong our claccee we needto extend fom the Base clacret given by the Worte, Stats Fluo > Crag RMechos t : + Hibernate —> Garin Seif ——> Reh hirer, sSbreagine Of Shots fem wore. 1) yet Bebe Executing the Gurtnere Loge of 20 agplteation, “the Up values muct be valiclated. Ff the Anpatveltes ane Correct tren “the Bucinece Logie ofthe applo wile. execeted. Otherutee the requ willbe Refeotad- >To ordered to valtdabe the Inputveluec geo by the Client. soe have heoth etrentide and Raver ttde vobideone, Sng Shutt wa have Btendve Support to perfor validedtione onthe Input. > Gate provider har ¢feubttde valida aloo by woth ok reasbing cang Save. SoBpt cede bythe Pregra rrmext 2). Anternationalt ration Chie) de Tey means tea proect Of Ca) 2@ content ofan application tnty multiple fanguages acvonceg 40 “the forguage _ — — Reliaton ancl the Contry. ar Grudeframe wore webave Tnbsitd Cupport te Tien. meant wlth phan peaas dtd f Aed. tne ff. eee Content aceoreting tothatt bole Browser Bepted Onthak Brower F- Tokenet Rplorer —> Tool 3). Rxception He exception teradling t- In an applterion, Kxceplincaan artcored ot vasous places TE youvoan’ to ranuvalliy hardle-them-then weneed-¥o fut ty and catch Hin at vatouer places. > EMng Try and catch Blocec abvariout plates ma tcec fpurckn onthe Api Reveloper Cot shut Frame wore-the fame iorie Vill handle the. Kxcepten thot accure at variow ploces In anapply and provides an Fervor page fooate tothe Rrouner Yertherthan parking Eocce pio _ StewekPyace On BroUre. (aot Fece —reonplele Smformetor OF Cece phon L, Caseocltngtorm of an Fteeplion ts calle Stace Trace AcBonSnhe +- &o4laon apvedekoat Class © Shut ~ Cook’ g (ene an) me lends trp Suvilek pubelic lacs fob extends Actongolel ie viet defined lace. — “the on 4 one Sooleb clap thabtr gen by Shutefame worelt Potion Suds FO Aetten Guceb clog fe ca8d to be a Conbeller of aShatt appkention, > Fiction feolet fr-the main Corporat and we. Call “Wi emponcul a¢ A Heart of chuck apn. > ~s ulbile Developing Loecbapplns Using Shultfame wor, either we cary Directly vte the Action Rewleb-clase or wecan creake a Sib clare of tl we con vie thatcbelace of cette appl, D> PelfonQuolek 16 gven by Stat ApL ond fo given tthe pacteage ong. apqache. Smuts. achon pastoge > AcKoonolet ho a clots eatended how HrrpCvolike bez Achon@ulelira: evlek, so we need to Conttgure thie elasttry eployeerneut Aicotphertle Cekvam)). the tf ohkend object of Syeett fame wore Ff Actonfwlel and the. obsect of -tntt clacr fo treated by the webdOrntatner, ancl althe obthe object? of Shut? Gappln ate Createcf by thie Remeint ni Prcton i aleé 9 Becaue AclonSuule Fira Cenbeller se 47 Obert of-th¥s claw muttbe tien to the Sputrapply.Lo whlle Config veasky bebre ang vequett 1 F gts plasets webxwnl we vite KLeadon-Harlup > uae convctines creates obfectot ~#e clan. Mectndaing <> Action Galet Manager the entre Conball-flouy afar we laappln. by reacting thet Conbott-fioa Infemnabteo Fen an Rxternal Conbgusabon fle we call thir fle as Sheeks~ conhiyaser fon File . > Greet Coohigecttton Be Ge Fdentifled? Lofts any name. xm but 99 morte the Coles jee can UIE tre filename at Seat conf al othe Lelosingte ine woebvnea! Cie 9 rats to comrigute the DetionSate clase je bev File :- eee action < freurek- name> ogeapaa he Sheds “action. Fett Srolat-gseoceh—clonys A. cit —pasom> woehave past two types Conky <[pesan — name> oF patameters 19 pebunt <[tit—patams, a. 4. Liat —palawn> 2 ie mapping» Ort—pabtems -fenidel —namercct¥on <[itret—name> V-etaclmedet (7 FEE an eitanifan mate A | 2. otvedboy mode. eld df or} pafterny vied | 2 %esbeg mate Shutsiappln| 3. Extentfory mated . Notes Struts cerfigusattion -Hle car be Glove] eflber Weatnt treet er 90 clacces obyee ae) > if Hoult ~conbinsceedon File $5 Sercet in classes Atrechig ther we reef to pace Wt apolute path to Callest cools uy. acter erolet pecan — ~valuesfore an elestet] tse Cortta vam! <[patam— values ne one] infec) Zarsrweete Rawle ject wate Geto) lo Porto porcecre ye ‘Lmetimtaty the flors of anapp internally ncfen Grclel Leeertbe helpof another eleon mlled cag esate class fo We cal Requett pocetnr cls wef an helper clasef Delton faolee > Actuntty Acfion Glebe lace cLocen ye The AcfonGwlet Greater an objectot Reguert Procesrer COS durin . Ste spfhialization and Inititize that object. — > udbhen ever a clewt Request tegen then Ackon Gude calle Precces Methed of Reguete protects clasrand that methoddenecestes ang meinagt-teand executes the cxpplfastfon compones Les gO Fequert > AckonSrvlet 1¢ Extercled fore MipSev0let ancl heu-the -trethode Srft 0) C Mon. bfe cyelememed’], oloGetC I, doPoster, proceter and dechoge publec class AcHoniewlel extendc Mipeolel { public void Wft¢C) thou SE ‘ Phere an object Of Requestprocetiey close Fr eveatep I Reguett Prete sor object ig Moilfa Gzet. i = Putotte otf doGetlhred, bres) tro! SE, 1OE Process, brea, brveS) 5 puslre vetd dofestChrey, bret) trot se 10€ £ ' paocesr( bres, bres); I) ahts prcece method # Srthte k Program method! pestle veld process Chray, hret)-tmow! ge 108, Prete sore poorest brey, hves): [tats poecesr methods 3 Aettonelats procevenetrod Ptbitc veld deshoy 9 [|deshueHon Cocke - Lf 04 201 & Detenfoon:- thé purpete oP ActionForn Ic +0 Sree a ~~ fi tert Jeticlobont ‘ — CMe values trex Gaventilece pextocn fore Tiny POET gio el trae Viteo Re utable - Cornpeneate — > pathtle developing Shute applac, oe need to Stove tha Fopet values CRaleits entered by a cltebalecheubtde Into Senerde I cn ohfer t hearer cfele , we need to Create > ao ordered to Hove the Inputvaluer a aan Bctlob-fom class. . > Actoofou 7 alto called as a FormBean ov a JanaBean In Shute, > In orctered fo ole FormBean Classes 9 Cbutt, we necd to Rubelacs cur clas from ActonFo™ > An ActionFeya class Ff gwen Sia one E: capeche Ghratt Aeon pockege public clase roy Fore extends Acton form J bE bez Be ioe Glove tnes|p valuecof a cltuk ab Sram fle foon obfert, bez atthe following Retort 4. poe cho Poply vaticationg anthe Enpal.and 4f StI¢ Siero ce #eca9 move Yhe Cenbol TE the Ruttoess Logtt and elce thee We aan bamove the Oonbal bael tothe altent: Ae Because the Tp %¢ Cored In a YouaBean olfeet Webecome Reviatte Cfomecan). > the Faretran claw obfeck yfithe created the Conbolier Corepareuk FS called Action Guleb ) L346 onderto Store and to Read -the values ottag -the-frm bean obfect, theism Bea clase conteine Proputier alone with Llterond getterc.'s > the Request Parameter names and -the fownGean Clatt popesties eta both ate Same Pubire clace extends clonForm fegto Sep - uname 7 Pivate Sng Oname, pads V seme nae eal av -- - Bes - po Proper J f ent pe S eon ook > Ththe FormBenn class a felt fn Btter and gelter ¢9 metbode we can Create Validate 6) method ardor cepplin Jnpak velidabion .cunef Beseh 0) o-Por Solin tt xing Fre form Properties tothe defasilt values > The formBean clam tohally Cooking & ptypes of methods, A: Setter 3. wedlidectet) a ged) 4 veeke). e a Prvate aad Orame , puscl ; Puke vatd ableame (Gs MAE. Grame = Unname ! puioslic Shing ad onane 6 yeheg Unane ; G { fi code E puvite Acton eer validede (Acton mag public clace login fom eatercle AcHonf om Ba} onere’) 9 reepping. trp Quolet eg ueph yee Vs Publ void wastt ( Acton mopping mopping , thepsevol ebPegueck v9) . Icode = J Bs Feambean ctacses, weneed He Conftquve 4p Shalt ~contigutalios _ > To Conftgue an Acton Form ChomBean) elascin Phat. Cook -ym| tle ~me element? tie elemeneut must be Included) Gin cicle geafeninars < farm beansy If anayply need frail amoud of Buttecar Logie doen A ool Implernaxt thot Sagte?n Acton Clot. ott the Buriness fogke ¥ Compler cin howing more veal¥me Gervicer cthen We choote efthey efbor Spt9. for Irnplemesting the hogic We communicate otth tack Logic horn Aefonclactel Shute > An Pefonclarc Ike exer point ta the outttide Model car enby. Pont fom outcdemedlel bask Prt Shute > fotscant to Conmmusterds (07 trnptemodding aprag foie grote Outs expphn “woFth Hibuinate, sping or Erbthen the place fren where. the inegrakn Possible te Acton Clace > Tn ovdlerd to creake Our Own actonclacs thes cuy clacr Heil) eben. extend the hase clasy AcKon. 9 Action a clante Givenin, cng apmche: Mra aastion, > In Acten cheep we Overvidea Gtagle method 4s called enecerte cd lor ‘rplermncng Ether bousinese Glog ovaintegration Logic, bre xomple aa close Legtohethan extends Ackor 5 PAC C AcKonFonoand eneciibe(Actoomepping mapping, Acton Fem for , f HTT phule Pee wert Kecuest, Hap. Geolek Leese) Response TeSponte > If cocke thew Pxeeptton > Betonclast 1 hota Quwleb bub Fe act ar Single InAance muttipic Ss threaolt = Feipay > an Action clact tra nota Grulat bat fllowe Betbow. ~ Selel model. % means fy an Action clase only one object whl be created bythe Actor Guwlet and multiple threads ate allowed to hate thot one obfeet- Threod, > Action clage follovasthe Medel fq le Inelance Te Muliple threade, NS Ay action object. byrdelault “Nobarhveaal Cate obfeet” Becox mulkple Thread? hotes a cingle object, % one thread tp mottling he obke cb they THiS cutoraicadly cHecked On the Pemesnin “inandl alee. 24 ais porstble to coment an AcHon Clase abieel Lom, nonThecaf-caf. Foto thrensf—cefe fon thie We need -Bepply “thread ~ynchoonizodten ” Non!~Theead tale —fsjrchrorietion] —y (met Te xenl’ ts Stouts ~ Con} ~ “7 Brecute cr ofan Acton clace weluine the AcHonForward obiect, > Fy orderd to Ge AcHonFonward obfect Wecall nd food O of Mapping clace by Pasting tne Lint value ac parameter. Next verston of AcHonMescagele AcMoEmmd. Bect verctonet Shuts 1 2.¢ Atteased to vette an troy clase olfeat- we We claret 1c ured to Crile an Rrrer Mectage oldket, nordered tp aliplay thet envy megs on “the clteut Braet. > Peter sagy Fa. clot gven in sapeche. Shut AcHon" your Kee, 9 Busing anput validation thang valtdertion eos ocewre at fonrBean en obfeates efron resreage clasts crcostenl —> 128 noneed ty Subelat the acton mig ord Wecan crecte ang no. oP orienta forthe Acton meg clase. ff oname. dergth id ==0) , y $B uname - lengthy =0) a Acton tage ar = MeO ACKoove tage Coram store) ROK! ty cheatsfinme wore alvoars the Fewoy megeate Javen sony -the Reworee Bundle only a mening eae aHe acotestionss
. Menpping obtg | I> Aa Ainkernally SHS 4 J Reatkon ar Arey f koe -. = f> ( | ——Maeping 1 xleetons oof Aefenelate te roaf \ <[acton, rapping> Actorsanpipg es > ThYs clace Gabjec Comaing Frtowmabion atout an action, xed by-the Conbollec, $m oicler to tdentttythe busrete clast Loge 16 Gullalale tnonder “10 handle Given Request > fer Fach action clase Conley ured 49 Shuts conkiguotion fle, one mapping abfeat tft be created. ‘ 4s Condiquvafion tle 1 the nool sefonclasses configured ‘ribe huts candy uation ttle Ie asualsdo pe no-ot Magying olffeclr erenkenl by the Contoller, -> AN ActHoowlagping obfeet ce Stored In ditionMagpiogs ouseet. > Frellenapping clace tr givin in, Oxp.apeche chet. AVON peottag > We na need! to Ge belassH avof mere We Direetiy Vie On Ob§e ef of thie clace Pq our apply. ~~ Shute Ta itetllatfon + es aig Noor an Met cee ee ne re eae qreo the Prame Wort Ste ohe => while Developing applac ong teame Work Softwate and weneedto aclel Soutles et4hatframe walle In-the Libfolder of our apple Gatco = Grothe olaes : — B:\> fox wWebsrte. xf shub—bhink— he. wou + el Tobtback arPle to 7 Looufile- > WNW. Shuls apache OG An downlond [3,0 [3-10 Zipfle. uralp the clovorteaded xip-fle and fete Eps folder -then cop: Strats —blane -(.3.¢ war fato a newfolder boy crecdling % ute fon uf Di]> Fat xv Shut lane — 163-8 sto. Command at coomond Preerph to Cubed the worltle. > Afr ExtocBon wed rd web-tnf | Sb-tolder and tk Conaine Sortiles egcecked) to Ghettt - fame work, > he Mate Salle of GrutrFamevsork 4 Shitke— cove — 146 Fo Remeing allof the deparclal of motn Aarfilec. ax * Staute Float +- a web-am) cpg ah a ©. SB _s[ackonGulet [EEA] gy ‘pcion «Par erobtor Tene | 4 Laven] OG a ee! Feiloe ee] - f contig xm] _ < Dorin: him product htm} Succese- Sep feblure « Up. pocleoy ee Enlame. Enter pudnelad : dn “PS Lhr> etegt™ name Enter poooluettd + <[couter> Apply Flow conto} t anyee{ vay yor Jp suqpop ca J be ropa ete Cima at op ype pniesagooaines: arenfiany| [Yes (yok : : 4 WW x5 Ta ue Hoy vedas (wag 60 Font conbolier Foxe. Fenport- Gaya. Lovalek Fmnport dewort. Soviet http as import Gove F0-*5, Import Gave Ob) 5 publec dows font Conbotier extends dtp Bole F sop publre vol Whe saatekCookg Ge) trrows GeabetExee ton m= new Hashmap (>; mpat (* featiye ido", new Lmples oo); MpelC Lrredido", need Sunple2cs) ; pabite wid doGol Meep QoletReauett vey, 477 Grolet Lesponte rer )-toouss Scwolet Exception , To Excephion Hag vetult» Shing apath = veg = get Socket Pasties ; Obgeet o = mage (xpath); if (e Snstance ef Sample’) 5 d Sample 6 +(Sampleyjo + oo #5, handle, tvey.re2); elce ¢ & ‘ample (samples Jo+ Vetarb = Sy tendle sCyey, oe Recuert Dicputhey Yd = ten, get ecuest Dir pathen (evenalt + Sep") ¥4- tame loncassl (x05) -e¢) q 2 ? Phe aboove Luclet clost Consing ormayy olf withthe Keys as BuoletGoatpoth name, the value as model class obfeett, > when a chek vequeitts glen thenthe Golo WF Reekiving-me Qeo ue! eure] getting the Leuwlet pet Lonthe Reguett and then tatog the SMMable todel clase Olffect- toy the give Res est bom the Map colee ~ Hon. > Injoua , tf we want to cheek whether an object Belong ¢ to agiven cles obfect otnet wehave an Operator called ‘Anttance of " > ch @ cltek Reguest fe Lend cofth Sathya do then handle; of Sampley clace te ftable to handle the Request and ~that method i¢ executed. anc finallg the macthed Relune Some Shing value ether Succest o Seslure —> Sinfillady a clfeul Request 7 coming oFth poet.do handles method of Sompleg close irretiable © handle -the Reastert and tealsorctanea Shing as either Success or tlave, ~> Finally the Gleb 1 o%ng Request Dpeteher Arecauctin and forwoode ether Rocce cs jsp or Ffetlure- ISP. te Bace cnto the cliewt Brower g Mechanttan, Samples Javea : a Fenpost Javan cele. blip: publte class Genple y { poli Hing handles ( tip Grolet Qocuest req, MeEp_Golely Retpone ves) r ang Wry = 905: Geatconedee( opr: WE( sty. equalse *po))) Felon “Baeoe 7» ele 4 wveduen MRL oF » webranl. wc Keb —app> aN bende cnamephontContoller< Seuslet-name> Font Gonbottey <|.Gusket — cloes> | font Gnbo tte <|sralet-names << Sew url ~ poten Se -dog)uri— pattern <[awler “Mepei«g ~. Lecoose. Fo — the te a Recess page afs>d y> Retlove Sap ic ef, cut pirtln Cabo thes Fe oLetlaure pogedtnas)5 Compfiation,- A> 1] >t clacspedh = c:] Qualet-ap Sat 5% classpoty yh 55 anh oheclng C1\> Gavac Camph fave Cily Fanae Bmpley. Fave co7) <4\> Sowa # Java ONS ava Front Gonhotter. aun Deployeement _ ee 4 Hard de goye cry othe Reot Directory into > Si lromeat 6.60 \ webapp -frlder > Slant the Sunov and a Strda Request onthe Brooter lt bHpiff Local hort. Boe Bon tConbotler} alegto. htm) Olt hip: Locabho st s0eafferConbarer} procheot-him | tes. Inthe above txownple we gota Conboller AontConboler and modlele 2 Came) and amples, and views of Recon dsp end -Reflauve-5ep 0 rote explication Paton . Muc_ Mele > Stats bag prided Some predifine segs to-the oter pref, html fn action *e— “> <[forrsy ptm fore > FERS noma hem! cheats prnkded 4096 andar the a. Struts —tenkeg hb). td => usiag-ime Shs given him} eng wehave one bent fe weace Selorof tech cteke. Aored to -foym beans, Bhofeet. pf woe ave ating -the nekmal hho! tops nel vactrole wuluer) stubmttea olote aul! not Hered 90 fambeans weJecks Vaile Sugs html tage o1e xm) -brmated to94 Lo wemult trou aypln- bee dotethate ters, _ Parcbrd wit steelorel Prec > «Some of the hem tog providee! bythe bull ave btn) zhtny > ance haf > chim) Link > - ~ chil) ots eee 2 Beomplepy the Lollousin — fe a0ple is-for begin veFeatton uiing Butte. hamuaan” ogi dep bsnl PAR cqruthe( - a rectory Shuctarets weben} Sheath Con fF 9m) Ea estefim dove Lostna con face Xe SonsCiastes . afon-fles LIB 45h of a "hep! fiche agree org [tage him” prbe Shim! y SL centead Sonat eon = login: Ose (uae Shimlifomy ackon = “legin.d2”> otesae Mt Usename : chtm| tteck property © “unere "I> sbr> eat pale Password: chil? pasword Properly =*pad > ebr> chim! Subomtt® Value = Sele" [hin Lava> A fesntu> b3elyexmn| -cieb—appy poole > - Ca 2 Inlepee range oD 69535. init pam <“lewtebs f Paver —snlues Ltoslet-Mayping > cauolel-name> action tru cont xml te [0m tle cpy paste Here tom Examples < Srtts-contig > , - fact ons [action mepping > tLoginFom Java Amport oVg apache -Shitt$. action, dctionFouny y ‘mport aig apache. aut. aeKon. Ac Hon Mapping 3 Tenport 4averx, Gulels bite; Peliolte clace Logteforn eutends Actonfonn PSvete Sing Brame, Pods putlic Legintome) Sapl" Concheeter calleol)+ t Y Gttes$ gotten ij Loginrtietion “ava. 6lesizoy Smpost Ong. Ogache Shut action. Pekoomapzing « =) Genpert a9. apache - Pett. action Acton: Inport Og pac he. Spotl « action. AckonPonvand } ‘mm port Org - apache- Stouts: aoifons AcKon Fon ; Genport Yovar - ceolet http. ep Lewlet Requests fenfore Gaviet. Syulet-hitp.sserpherolet Responce 5 purlicclace Loginnctfon extends Action public neifenPoumad enconte(Aettontortng mopping, Aetfonformn ere, Hrtplewtet Requert rey, at AbpGuolet Regence ves) tow feeption hegnFom ie = CLeg th Fen) fom; Shang us sgetOnome c9 5 Sing pe Uh get Proc; FE (oeRualy scabryer eg P. eqcialS( "hutts") ) vetunn meeppiog Foe Foran 'succe a). else : Yelowa rapping. Find Formac (failure '): 2 —> Tore above wclonclacs weatle type ceastingthe ActionForny object Toto the Legin Pom claw ef Our apply. bez” bhe conboller joSectt cur Logtnkon) ouseot into execke ce) Method, paitle executing thts Fron cle. ~> The exeertet of Acton clase yecetvey -the Loginforn class object ard Stores it an Baseclacs actiontorm( object) SQWe ate ty peCasHne, hece +0 +he Legint ow cleus object ogein. > nen ad + D Cele to veal the Fp valuct gloved to the Formbean clase obfeck We ake or the gettey 0) ofthe Formbean clase. foeseCoupling —s Hgle coupling ~— FQ plat we the ctffereul- possibilitiee -to yead-he Tapak Uoluee = 99 an Actionclase.t prsi- pe have two posibtlties Hw A. we can we Fombean cles obferk and wWecanca Wgettere) mets 0 read the Inputs ae Swing oe Mt getlnamee); ze —- 2 12¢ can ve yeqguettobsect toget Sonat valuec Artcconple }- Ceernple shige Bee get Rosameter (Mrame). Gor thy Resuert obieet fe not Used 40. road Soput valier forar Arction clare. t I Tove wre Logue obfect tovecsal the Fnput valuet there estrie Light- coupling" between Shelf applae and Brlet—Aps. Pt meane fo Serle sip they matte an charges Like sas effasornty and Prvicting another method Gn place ot Ft. then aceorelin tothe changes clooe 97 Ph Gulet-apt, weneed to aiace changes Sn our Shes apply alco — In order to Overcome “the culsove Protelen and £n orderto (Provide ge boote co. pling bly _lecth Struté and Seolef-OPi Pt vecommanded tp Use Longean ebSect net -for Requelt ouffeet for Kecolng herp vwaluec. Sucecs Sep: Sewolel-api.far , 2+ SHUR Cove = 1.2.8. Four. Di\> cebclows poth = D4\% Sedlel—aphJow 5 p1\ etuuty—cove~|-26. Sarr 2 eee is Cument-clivertong 7 Di\> faune + fava Step-2 => uleneed by add Hefolleuting bo SasFles fro -the Ll oldere of webappl ee 6). CommontNalidedor Jour 2 wR G : io naaioae cs D. Stauth Core r3@Sae Crdinhan lle) 2) Cormont~beanotiic. fat. gs Aen " . -2.065e/ 3) 6 — Loggi vnment ~ degaieg BD. quitt—tleg 1.26. Sar ) Commons —chednjeee 1). ‘shalt igtagt19¢ Sear 4) common! — Aigester jar abr Cong the webagily Rast Directoy nto -the vaeloapps folder’ po Tomcat > Start the. tomcatSeuw , Bp rl] Lecathost s goes |] Shutttexample, J lognfeg open rhe Brute -eypethe Url Sbutft- Beng Re source Bund “Fie KeSeurce bundle 1 else called.asa properties te, > na Resouce bundle, tratlata wittbe Stored %nthe fom of "He values” patie format: H> Tnchalt Fromewarr, we ute ReGousce bunctle te qek-the “blowing A The Letoele vequdved 9 Me Preseatertfon Pote 2 To get Enoy Meccage “from Retunce bunole hen ever TIp valialetion te-fflure > Hey & 9 Rotoels fim the bundle t not Mandletory. emoreettag ep musthe tatendom the Resourte bunolle ai . ~~ 2 ee Buttoolle. Name ic anyname and any Retenson but-In gene eS aaa Chute appl, we necel to Stove Ine Reteurce Bundle ak edlaces ALS on order to yead the Labels Fromme bundle Into o Sep, Strutt Prave has papvidted a tog TE Lhean— message >I a Athay ealied “*Straté — beans. Hd }, => Twe Want 0 Vie Stubs beans tage ina. Diveatev Jp. we Should add the Plowing stag diveobe. wthe Asp. 4L@ toglte us = "BUD Yshult, apache. cag /tagr—beewy ” Prefix =* bean") > Salt logtn-Sep Flosbeoi, gin: = [rreme of theRecere Bion: Menage Keys \enber a6" | > © Batty PoperBes i roper Be: S| Wed ea1099 2 vfeenamets ton -bean> Jood. cowngs mortabeuy " Foréxcenples. Strut Contty.xm) we eee x Shuts — Contig a <[form-beans> <[20 oo smapeinge > MMe sade —esances fatameter= “cathe <[stts— contig >. Page am atical NeStcha tion Gn Shuts: - Fn shultt fame worry poe cov apply the Valiclatione onthe tera )p 10 -t00 apprechet. 2: pregramabic appre 2. Decloative eapprech. > Programa approch means, the Programmer has to Manuvalty Override. Veliclaée > method. 6B fictionForm clace. > Declotative approch meant, the valiclutions ae appted though an “xmL File creakton’ Inthis Cale Heti—home ove oreo the helpot Wedtclector Frome tore! — = aapproch, 3 any enor it occured hurngthe. validation ther, poe howe to Conchut: an Obfect of Aiton Mectoge lacs.” > wile aa Ackeomettage object, wWenead-to past the Coy oF ‘Ihe bundle, In orkut to gel the trrorraeteage -homthe bundle. aA —> each Aton Mettage object wehaveto add the LeloonEnort elacs ob§eck. > ForExounple |. PAichonEmys aes new Acton Enrrre) Keape Actin Mesege Quy = Ned Aetootemrage ( uxersrong ys aeS-addb(‘Uname", army ) Iey AA —7 By delault validetone ase Alrabled In Shute. In order wget voltdeatfone In chutt We enable Validator we should irfte an = abtfbute called validate =bue In H valtdatfons #5 Lafled then we should Gnd « Sep hace tothe client brouner , £7 ovler to elfeplay the enor mestage Brthts ie reed € ltplaaythe eg add an athbute. called Input tn Ext. element. = « . Mat, o °, 4 Kacttion path=" |Login" name ="fom)” type ="helloneLogigActon : ay yexos——__velidate = "tue". tnpat= [login Sp "> 4.0 sP valebaien ty ve Ap bocxe t te ware — brood Name = *quecets" path= "farcces Sep, oe hroaed name = "eflure” paths "eslute Sep "> “factions —> In order to ttcphag emormig.t onthe Baowoter In a Jep Page .we need 40 sen tay called while Aoploytng an enovmegs We can ipl enor neg for ooh Propedty ate tor thic wechauld ce volsle Creating « 4og toktp., toctiplry the Crrer mettonet avd to get Labels fom -the bande the oilavoing tagrace kequtrad. f keginsy 24. toghb ONS “he: Ithutt-opoare.org [tag bh) ' pokes himt xy y <.@ egbb ofc “Mir I Chat peo he. ong | eegebean" proftcn “bean! watnl Fora elon. Mhog'n. dat chem) stent Property Fb §hten! ~erorg Paperty. —"oramel/s were bry aphid: bead > >the followin, a Example by Creosing Recouice bundle erent HE Sathye -Properter Anput.uere Urername Input: pusct= fess wag USet- Uorong =Lfont colors ted" User name te yequtyed Pat weg «cont color: Ived'S pestioord % vee urredd Hort > The voay OF Oventelag the Voliclde Method . ‘J ( pulolic Acton Enos valideste( Action Ma pptoge mapping » ATIpGaolak f Reever ry) AchonGns nese new Aekonkwves 67, Wcheme veg ualt(* 1) floname. slength (= =0) Ac Ken Mettage an, = need ActoMeccage Cc Uter.tureng"); add {« - |ecpeadd (uname, ae 1 Cpuad- equal (*") | Pio lenginer= =0) Retion Me trade Cwry = nevometionne tage (* prod: wong"); AeS-ecel("pece,cung )s Seb acs, GEL) Method In ActionFom;. Dfesjaoy en pe sel —> Wile Creating o-frm bean clact, En ovelerto foltfall2e-the-pmbean Properties to Sone delatt values, wecan overthe ge veoh Sarthe. : Formmbean clot. , Action > br each Reawest, Bebe the (Fonmbeary) Tn pubvoluet GG 0 Stove in the FormBeon by calling etter) methods, frat of all Yeekey %¢ calleof and the Fombean Properties ase IiHalized to defoull values “Ly by delault a Fombean obfect tn “Raton Leape", 80 pre kSeeb-ol the Fownbean cloittt Creaked fr Cath new &céon, > he yerelO) method tthe FombBean class if Rearetyed, when ewer ‘the Input page dontaine “chee hor” ancl Few bean object in seston > Bi prorleam with cheexbox te, Uf the cheoe box i not golectes| wFle Qabmitting or Grelinga Leautl -then -the chetklor Polame- te doeinit toanthe Saver > Pr Beomple:. ar fit Reauert Wehave Gleakthe Cheats bo ard a deauert wehowe not Select the cheeschon inthe Re Reauert the chese ox potameter cloemn't Gorome Server. co theve 6 ho yecktO) inthe Fombenn clats then the. previoucl Beleeted cheek bor volue ak Fert Reguest Sl) Lemaing Pme inthe form bean obfeck fer thot Property, —> Th order 49 Overtome -the Probleany Lott check box Tn puk inh : 3 e Form Bean clate we must Ovenide Recker method. > Bese) method ¥ called Sust before call I Settee ofthe Boa For Bxceim ple. 1 clase Clfenty Depttlame [ale] 4 (ereltng. Deptniame [ajecounty > Fothe Soond Lequelt preote ROE cbecting the chettbor .£o tHe cheer Box potameter cloern't gor Brer Buk ey Property the value sti be. Stored ac acencling , the Lecdon ts Fre SeHerc) method te notcalled and the previous value Remaiar Same- — Th osder to Overcome Wie Probleny We need to override yesekld. Cltenk 1. Pepirlone rae = 'e.tay\ Waxcendin G= atending fr se) — { ssegekc> methee) Setter ey 14 7 Galleof allied form P29 Oi fecr _ oe 2 Yeske cy Caled > Lto fombean object eI Request Scope then the Reaulred becox fey even Got created Setters 69 called Re yecbbo) tenok 7 Reauetl nevo obfestot torn beem clare Qs ktheutfe the O|F between fr Conrhuatoy and -vesete) Of formbean clacry CAL When a-fombean object In seition ope "then the Con thucter fy exiles! Pov Once forthatenire. estan. “Where a ae RbOLt called py Cath heauett 29>. tpt bezabion $n Peeled 9 better-than cuntbusler Ri- can we wate Rurameledzed Conthucter*no. Formbean cloung i Poli Both yes andNe- —3 Ln each-fombean clase Default Conthucter te Mandobs Ft 2e donot wte the deluult Conthurter rolsle Comptlatior Jove. ampiley ect crete +15¢ Conthucter. > TF re wite oTPreatty Petameterized Con/bualer by with out toritting. Act Conthuster then an Rxception tll be Rafred. > fo Pye cout to ikke a fatameteized coottnster We Chould Inclucle Aekeult contheter alco. fefog|ao, Dy Nitto D0. 2 Lethe tow to-bind out Wak Courk 'n cu given | tent document 2 Rotel Va Chtnbleoss Kesusttseb Gent Et AY colletten Framurorl Te TF mot Ans: oy otte, Gioglotatcer class wehave 400] ont eay, oigectt method those abe Stopesof Bwvlet 2- what MoreTokers O- | 4. vequert 2 next Towen 6) 2 eae Bf creakiod Otegoverieer clacs obicath wate paton. pacsing ine teat the ofa Porsameton, then by aig aloove hoo mech Ne can cleft, what Wwas-the root Comte scot Pound. we Bi How many Conthuctert ina Veelox clow 4 AnLI- ~thete ate 4- conthiastest" in Vector class In eatecVon . Frame work, Bulleat Pointe t- SSS Ty Stuts appine, After Feecubing Some barinest segte ste Kesatt Oplal 5 HIF be available %n the-Jymot an object. Sv Action late, bub, an.-retfonche amt oMteplay the Recetl On Boowarcex Phreclig ~~ Fo Order t0 deploy the. Result oplatred, AcKooclace Sl! Kore the Reeusl: obfect Fy Roeuest Obfeet by alting EM bibeO) @ Ge Now o jap FY Recette the Retell oLfeect by calling qebAt uate 2) rand obieplay the Output ontothe Growcer. —> Ft an Aclonclace wkants tosend PrRetutokjeet tothe jup her Ht mutt be a kaliredObfart.” Ee fovgxample!- tn cen AcHon clace, Y we havea Recut ronfect ther We cannot Franclor thak obfectto a Sep by Storeing an Requett Obert. -the Reawn ic, ReculkSet object irnota " OKalrroble object" —_—_—=x > In General we Used collection object to tantly the data fiom) ar, AcHonclase to a icp. becow, each collec Hon obfeettia Lfalizable Ob§eek. gZ Hew to-tind ‘the rool Himee” was!’ Repeled ta ghenton tle by ong a Sewn oppo. rele need ote ing Toeeriver Clase inorbste gebitic Count-valise \E Fost allnvedintave Gide ButterBeader bro nero GatterRerdes( neo Btebealer(*e feanyetae')s fot Comte) ee ees LbF0g cre nulls labile (Coby veadLine oY} = =9U") Stag Tonentaer whe new eee Cob) tabdle C1. hag More Towens (1) Shing S- ot nenFlowent?; AF (ccequalsTynore Cone (2008) t counb+t 5 j SO-Pl" were comet ="! Count)» ste ~ . > The alsove code wrte in pvim 0 bre clage alto ‘impatt Al Goon. pecronges Lelatetto-tnnr. 7 9, Dips PretionFon - D: ction Fam Fea clase giventn "org cpoche xchat. Ac2¥on” poorer ond fet extended Gor AcHooFawm “8S ty manual AcHonFom theta prwblem and that ony Moat licabioar sate dene % the ep cleGgn'-then asteme we need to medtty Dee Actonfom clas alto accootiog fothe nes bean > Becox, Actionkorn 4% a Savo-tle, Lo when ever-the. Janelle % mactltep then enced 0 kecompile, Relocd the applo §. some trees we howe ty FeSlart the Byvew “thE probleen Canbe elemtratee| ov kemoved by ong "Dypadltoofen elace! > PyncAetton Pom elacs % Drreety Cookigared toto Shouts -conteguration fle Kenoneed 12 Create a Rperate Spuabile tr the LmBeanclese Login tsp. cone) Shu cookig xen} Lee> 2 : 20 nexd to wWite tad 4 PTE. < Lom beant>d Weed am}. 4 fonkoan). Hlosloon, “2 Dyranclfooform elase Inteanen My Gloves the gee Ap votlues Foe HashMap oldiect Ay Pyne Pretion For class (SECS gett) method ote there for toring the pet valiee. $9 the sap obteet anclalro-fy Reaching the laput Values — tome Map obfect — for cxoh, forrn- property Is Configestedfiisthe tonmBaam element Of huts — Condig.aro Hle ,Intemeattee fet) t¢ aarllecd. For Reample tf the DynoActionForn hos Spopeties-then the BAcyic’ ” called Loy tye mes and Skey value potes tll be Stored to-tne ~ * Map Obfect” mat > othe Adionclhee of Shutt, Hiewant to read input values Soredl 40 Dyra-AekonForn, fictot all We need 10 typecast the AdKonPorn, obGect Into Dye-Atlom Olfiect. Inthe (Crensts wicthod ) execute’ ---) > ater 2ype cailing, reread ip Call the gehts) ofthe Dyna clionPormy 4 order to qe the. Tnpatvaluec Gloredinyne Oynanctionrom olject. ForExample \- Pubsitc clase LoginAction eatends Acton Puce AE execukeCmmpring, fom, -veqy, ves) throws Seep on Dyna AetionForm dat =( pyre Action Form) term 5 Sing Se Csting) dost. get (“Uname"); Laing See (Shap )dat. gek("Pod*); yo woe oil! call que on DynoAcHon Foun obfect then Tr internally J +> When Calle gete> on HashMapobitect and yekwar the value Sloredl ty-the Hash Map Ohfect > Tt va Lowge no of Input values thene, We nead to call JO Por multiple. Fmes th orderto read one by One T[p values by Pasting thets Keye TIC Inoreake the Pize of execute C.and alco buen omine peogiomner > oler-to Ovek Come the alae problen) a Pynadhehen Fenn le. a methoe] called get Mere fe given and trehunt the ebriive the Map Olfeet wloog wlth Key values Petr eve vedumed). J Excunple :- _ Pulte clase Legtonction emtenete Acton f , t i ' " lat =(Dynatrelfonfonn ) born $ dy ae Tntunally Dymachontomn code “ Map mz dad. gekmaper; a Pc Dynaretontorm extend AcMowns ee 4 ude Dyne Bean, J } ib re Map dyraNalues eye pe (ate ah } is vethen-voe > Fo Pyratetion when vewotng pate sate goto name it naricfonfown totber than AcionForn Wwe donot create a-formbean clatt DynaRiclon Forir . .3 Is : or DynaAicla 2mm -roccan alert | susie map gels WBE the Logis ty mcHonclos. bubin ActionFom we witte Leg%ts I formbean class of valicleHont> meted ie \ > when ease Utieg Hospmap olsfenks 5 igloslac 4n Collection we can't get the ulues na bieotty Loom-the Hashmas. a > 8h 12 ce. Monfou then the rents fpeaeareetas capac Utd e Valuer hom Hacherap obfecie we Nolidaten onthe, inpul fspartole ak can ure Sy 4 Sek cattee Arctfon clase. eee > Hive use validation ab Action clace , See cabeehRey aki). 4+ Lostevater class obgeck™ * -selurn dunaValuet. gellromey, “tela dypatirlues fon obfeck. Sve then we need to store each AcKnvettage : object Into ActionEnert orgect,Lnally > Key Serer method 1¢ tector Conver we winend to flor. AcKonEroy ob5ett OME Into “Hg Golet Re quest Ohgeck >In onl -tottore an pein tart object thio Hp QolekBeauat object, ne Archon - ~ 54h 10 stove Actor vo oufertinto parpQuolet Request pbfect then only the. emyMgs ean be Hicplayed by ering Hint ¢ enon > oF the. Botte. > For each validation enor orcured we chould get~the errvrmige for “be Recouce bundle. only. PH we ioaaktomake the enovmee. at dlynomfe then Keneed toute fasometeyy wlFle Corsttesating the enor 3 The Marhmum potalneter™ Can use dre 5. and the fatomeler Srolens ate. tof tofa} > We can place Runtime Valu ro hfle, posetog the values, the unlue muttbe Pathe form of an obfect sc trio the ensvmnig's , Anplage othe Patamedenr” fockramples- (= a Propet ee d Sale fol}, PB on ints FEE RO secre Slag oh St Jove Inveeltal 9 (> eno) 2 t ‘Actonmectan e amend Prtlonrteconge (Bal. oreng " eet aes acd ("al", am) new Double Ct) )? i FF ( Lace +16 Empty-cy) “Qave Exons (veg, a0t) + “? $ => Loy PymeActfon form Exomple Refer 4¢ poge ond Fxample-y of-the Hench booic, (Some Code) as Ex ception Handling tn struts > WUEle the Kreatlng he Loge of oh Aekinclus, Pany poblemts occunved oy an exception’s Ocenved Ontthe client Boo.niey -Hrort execeptlorn eeiTace will be Phnted, Lut the cient? ore un Prawn aba the exceptions, D “they Can't Underctarcd he problem, > In exckrto Overteme tuts poblern ane 4 ordey-to ctisplary a meonta fal meg on tothe Brourter, we nee tO hanctle tual Exceptions. 7 — an ndlh 4 29 Shuts, weean ho Exception He Jeg In x0 Approches. + Veclatative 4 cephbn Pnproch. BD) Rem me Wo te > In progonatte ppproch, we need to puk the logic of pcttonclecer hint tay ond coher Blocee. any Saseplon Oemered en doy toe can Yehunty gone emoviint ond forthat and Erovfage wit be Rlerked by-tne Conbotler and eas ine eonpage vctll isplag Sone Meaning fll msg ontothe client Browser. Bronples: — pattte close Terteton entender Action f puble AcKonLeior Ox eeste (- ---)" t sop g ee e) : reluin mappg Arnolweox Pamcand (emer!) Ih ee "Lohse" Ith ctf ftase oy hrwotel name Menor” path= "Yerrond p> Afacton> . > Declanadf ve Sppreh, we use a neud élemeul Ip called LexLePHON S tnthe. Shutscondig le under Thc Ute dealatative approch ther Wwe, noneed to pal guy Ae¥onclace Code pth In try and calcht) ploc et. Eg end cS for Examples Public class Testacton extends Acton i Public Aet on Fonoaal exenrteC~ ~~~) f 13 oo seman > TO Studs cont¥qure ile. - a : 1 oO poco KenceptPan Lex « ‘some enoy* type = “Save. \ong. Eexeepiton’ path = Ynos, : od Shae nome eM iuccert? path= *feuseest 3p ee at tae} | _CAeHon tha oyte” home <4" type ="FLeatnefon' s Bool f forced Yreme = “hsceets! pathy = a fos.ter'fs 8 7 © Employee Search 8 40. 12. 13 chimlstext property="name"P 16 <> 47 19 ~ or ~ 20. 38 AIDOCTYPE struts-config PUBLIC 38 “lApache Software Foundation//D7D Struts Configuration 4.3/EN" 37 “http:Wiakarta.apache,org/struts/dtds/etrute-confia 4 3.dtd"> 38 39 40 41 43. {4 arch,name">: ant property="ésNum'P> (xxx-xxx08)
48 name="st" 58 path="Jexception jsp" 55 sforward name="success” path="fsuccess jsp" 87 28 ‘Page tata Steps to Develo Se Using My Eclipee s- 44f05fa01 - et Danley cape sng sy Eel 3 Sept Gare may eatin 206 and Enter me ‘erespote some 1 Stept:- click on Aileen —> slew ~> Prtfeet —-> woebopagfect > pleat —> Enter profcetname. (Loginagp).—s Gntch, Sepa! ke-ctet on prfjeclrlome —> MyGclipe—> add Stultcapobtitiec.—> Glheok Suats fpesttteakion © stalf po Bose parengetor 4 Pirin Refouce tandle name are (optional JV wedorat awk pean weoan Lemove “the veluep. from the. -lenbeoneg, —>-Potch PA Mee 09 Window ment. —> Othey—> Expand geovel — Sect Maw gator—> OK. PEI Lb-ctre 0 -pféctame —> new —vother —>Expard Oe Syand web-shuk! —> Strait ya Expand Shuts b2 version —> Kats.2 Acton Fog —> neck —> Name Lm) omtype + Legin form Stperclar ¢ Og apache - Chute. Acton Form > Blast foimpropuities tal —> Add —> Entervlame, uname Type + fava. lang ‘Shing Tisps p ope $ Test Sada > epee odd another Property bot JpInputtype + pasnood—sclose —P Selec methedts te > | leet ov ele seloch shat ever want merocle, Sli sp tab — sitet orchene Sepfom—s Enbersp poahos + [login Sip —> Lents Repos. Re eltcy, an pofectome —> nleny —> othev —> Select Shabs be Arction —onext—9 Shber detesle foth ; [Loge Beek Cuperclass ae: peton Type $ Logtoaction 2 heck form-tab ramet frmy a ° Athibate + Fre, oO Scope $% Session. y anchor, valtelete form cheor hor —> Seleal forwords tab —s ©) Cwene. using untidation 9 we Can cleettt) Add lattton—> Ente lame + Swccese Poth + | cuceece.isp. —> add “Y Nome + lure Pth + [Eilare Seg. —> eloce. —> Finish Seep -43- open Aoginaetton Jove file and Include same Logic Pn the execute. methed. Lopiofoon LP = CLogin Forn)-torms, ay G = HagetUname or; hing 2 Haget Pode; FH (su eptlabs (“eathya)§4 ta» equals (*Shuts')) vehun Mapping . Gad Foncorl( Scuctest else : dun mapot “9 Find Fousard (° Loblare®) + Sep-$3- open Bogiorisp cand change fam action 40 [login or bogin.clo and cave Hepgi- Beoto Tomcab Quer click 0 Window Ment—s prefenentey —> Expand mayedipce — > Kepand op S104 —> Expand Tomtat Seleot —y tebect Tomeak sx ~? sheet” © Enable Tomcat Guer SA eee reece cceeeeeee 0 aa alae ow Skep-10:- Rketfecon prdjest Nome —> My Edliple —> add § Remove. a profect Deployee mente ——> leet pofertntiome. (Loyinarp), “ > Add —p>.sleat Sor” —> Tomeak 6.x —> Lirith —> o. PN Bheok ny cdipre Gund Icon QB). —> omeak ix > Slate mete Sepoiny- chee on windlew Menu—> show views —> web Prouster sl bttpiy troal hott! S082) Login app] Login ep. Afar Step bi Reciseic on PrjectName —>Ned—> Sep —> Plenome $ gacvett-Sop —>Lnich. Entertome cede teyto Pucce Lf, GoStay create onthey Sop -teSlure Fits Be cade ar Loptnleline Step i- After eneaukon of out applo Stop Fonent Guser, Fle tending Io Ona Dr Swwlet—Iep we can alco upload Fle bul FE comparcelto Shuts File opleoaling me who complen - Pn Goole Gp there thro inbudld, peepierige for Croakng a He oploocling ere)» we depercling On thie pote Facweges Fe dalled ac “lave Zo0m"pacnage,-ftTe not grenby SinmtooSysteny, > To create Sle Uplotting jin shuts -thetann fame > Frienbeo Work Piven Some defyuslt Portoge ic Og apoahe “Shuttles ongepeshe: hall Opload x; fod coe Fuen fed le) Ganbe. : Sere Poooftle. ppopertey 4 a-tomBean clace. Compe Sith other Guletf and Sop! vploading aftle to 4 afusewout ode athe Ale a (ell tere 2 Shut Lame wore then Weneed to le Urol pouty Apr Mee * Sexo Zoom ppt’ +o gettbe Support of file aa buk-Yy Sheds frame wow ose Got SnbuSlt Repprotot file Gplooding. > HItP Getor method doesn'thpport the fle sala Wlo5 leon , Pact (7 method * Fpprrig the ecelortig. —~ th EE chemntng ethod =" post" —7 while Lploadin. — a Ftle hom etiert Mashine 10 Sys Machine , tn-the we have to Ure - method and enclype aftibutec , 2 By helo the methed ere! "t Hetp petocal tr get. buk get cated 45 not Settable t0 Trancfer or upload. atile tom Bawsert a Gyo the Reatonit, in get method there if Aimttalion on Dats tovan sor the Dake -athat IB Size only > To oveler to Upload the tle ie should Dee the method axc*post! ale eplading ong typeof the tile te aterttile orpdt oran tunmnege. ~~~ can be ploadled Lea Grver tn ovderto Support. «Il Aypesok filer ceploadin to Cheat to Buser toe chould re eae a 7 i, abpfbute Inthe few elemeak 1 called — enctype mit om Pramplet- . TD when we Zl @ segues! Inorder bh Stose the uploaded He at Sener sicle fntre -formBea Clate we need a property of type pogroms > bohen ever a Som te Submbited then Biterty ofthe Form bean Clase ifilbe. aalled andthe Uploaded file Mosed In Form rile obf. 7 35 AcKonclairot sul. weneed to get tom Mle obfect fom FomBean and weneed t0 Call. methods of the fon Fle © gebthe Sle name ard File data of the (pleated Lyle. > Ihe Action chee of Shale, wechould Vre Hie Oulput Ream br Wing the Content of the Uploscled fle fntoa nevobte ab-the Stuoer Gyctero. Pebemple opleadieg Sep. A plead Foun Save ae ee det eg Pec plodFonn extends Acton form ile — Poivale. Fowntitle 4, J Y plocd A chor Gave Pc locdichion extends Acton 7 iy PAR cxeeute(--~—) Cpload Fon ule /t mnlrenl Bore \ Lon Femf¥te tho vb gek iO; Ging He FE get Plenlamecy: byte bl lath get AleDada co; pet, Fos = fitz new Pile Dugpat ream ("ei /ts,); fos. vovtecb)y “we map ping tind Forward (“Saceese") 5 3 In File cploccliga to-the Lb obidevot weloappla, we should aitd the Fotlording to adldtiona) “artiles 1) commons— Ble Upload jar 2) @ommont— 40-%; t—> Uplod form Save. 9 Uploadacton Fava. b> heb xm) [> Shuts —anfiy. xen) |-—Iéleares aecloee [re d& Sor epleod Jep Lecture Lop Succes. $¢p Di > ) upload). fp 5 LQ laglth oe “html: lebult apache. org Hasso!" Prefina "hemtY> ats FePluwe-Jsp ——=_—_ toes. xm Xe Guecess sp: Sbutf- contig und | uae Fommblle det] | phate Formbtle ei efleding muliiple Flee 1W3e deelaieto PomBear clasp, : ; Validation osing Sawa apt L Arg L201, Zo -the matt of the. Cates , 192 pertowr val sdalfon ak cbieut be only. Beeom ft veduees the roof Mund Traps blo ¢ client anda Segver. 3 TE ne voaut 40 eneeute Some Bi pt function henewwrthe-form %& B aig Gubente- then. foci + fore > tog wefnelude a fave Scapt eyeut cabled af “onSitomf€ » > Pye Incluole Onfubate Ever eg, H the Serkpt-tunction ketumt true. then only the-foin Wit be Sebomitted tp the Ruwur. otherictte thetormie nok Gbapttled. 2577 ‘nelute Java spt into gep or an Hil then We nerd-toindude the Lobpt under Kheod > ceclion. . ~> Inthe Lellordirg tapnSep Gf Cterrame, Pattword fc rot entered ther Gait \ahtdatfon Retus ane! cigploigs the en0¥™ey 70 Dialog tox Cabret bea ancl vetnn folie. $f np enor occured) frm Sill be Submit tothe Sten a ial AG keaglth ode" hep: Ustiate. apeche og [togs- hem! poets" bry hb thers > theacl> we freon %Validalform) hee I] t ped _ ew gre rng. nae; aca "4 j eform. pool; Veer ce. ra. por alta taaiery CS) value = =" ")" 3 alest ( sj-name + ‘field te Reavived"); Shes a Yeturn Lace « Hl sp -wbes= ") S alert (4. name. + "4reldl te Requsyed")> Sefocutey; ca! ] wreluen talee + 9 <|t08p> ) {peo } a hita): For wolfon="loginclo* enGabmite"vekwn te Vall cthte) Utentome! Shem} itect propery = “name |) Lins Pekoord \ chem): Pastuoord propesty=* prod */>
elon) lems Af ook > Fores. <|btml:hem | > = Remotntng files one Lame os prevfous apply. Decline Jatitatone to Shute then a elfeuk Request CubsSited, bebve exeating an doaicat Ane apy Hirst ofall the Ip valuec cue entered by “ne Uter-mustbe Nebiclotes). $f Valrelol fon Steve ce then dogte willbe Cxented and other wie not execeted. P10 Do The Ip valicaone In Chukt-Bame wort webave Hoo approche . Prgrommadte approeh , B Declatadive apperoch, tn Prgermmate Opproch,-the Progra amine has Mannuclliy Ovemide a a Nolidake ¢) of Action Foun, and Hinpuk valuer este more then The valiclate 6) t Ineventer and PH provider lourdexon the nee Inorderto OvwCeme the Burelen on Propenmes, Ke can cerly Valilad ry Ufing Deeketatee Appoch. D4 Declanative Approch for chock relote thot Resler ate Reenivey — & Pheutd-be. cletinad In Ymi-fle , co bY ating thot © xm) -tha. Viledade ts 90 Ae, oe a a ry a +o Mornay Ovunicle. the Unlidabec) method. the. Advantage of the vielé Declonative “Approchic, we car on cthe Voliclalfone af bath clfentiole and alco Sewerside eile tye. Soript Reautree Sov the cltent tole Valtdatfor) fil be automa beally qindated by the frome oortand the pregarenes atenot Reasstres to vorkte and Gaya. eApt code Enprattly “% In orderto perfor Ddeolatatve. valfdaone%n Tolegration © posble. Stns, enced to integrate cur shultPome — Prin Work vith He intemal Framework Called oc "Velilator Lame work. ammo 2 Ip Valtdadtos Fromework, alveasly thee Rules Yequbredl-for Input the Lte are created orgiien Inthe fumot an km)" Validator rules.xen) ” Ana Decloriative approche apply Valiclasoy-Ly Enput-feldo , rthe-lom of an wmLile Called Velicletton. X01, Hore name of-the Xm) %e pro rothe validation Peanbe an gq name: + I8}os}aon 7 butt Conboller Creates olffect Of an = La son e - Plug cloueeee, only oveabed on Duds Fo FR ttre ~7 We onl Conftaute Hag to classesin | Wider SIS conkogase rm] by vst: Plng poses . Neath an) ~ element onl nD) © Midation.am) Resaueh ) meiep TS sat Fig laces, Strats F].5 Sag Fu CE Baier) cen toch rset spe. Crtext Leader Peg in. Cider OF treated opfects:- EST beets | DY) Kalet obfeot createdl by webConlatmr U 2) plugin oufect + + Sm Gnbo hey Lsenty-fy one time. mens Acton. oleb. > Tey Chute Framework, PP roe esant to apply Decteuntive Valtdatfonc ose ane Inte qrakng dur Cvede Plo udttnt he Pnteinal Flite asbted Nakidator F/. : —5 Of woe coaat tontegrabe GrOur mute Pho whthy efther 1 Internad : Pho are Ht extemal flameword then a pnectiatoy clace Fe Required. We call tear a plug-In- —> Ff We aut to hoteqrate Shad - Frome work oth velfdator Fo 40 get Declarative Validation zippo ten We need @ plug-to Be forexample!- ttioergant +0 Int 2 Shuts Ao with, Cpfag tho eens ae tae ; ? 4 f . then a plug Fo clare Required called Gotext Looder f Ley’ —> The pluaan clace acte aca Metiator behoeonthe wo Flw's 245 ihe pligan ebscs Loads the “xml filec’ Related to the other -hame tent. & stores the Yolermafon ‘nto one. object and-fnally tha objest itite Proved Suits —Fheo by Sosing Te 0 0 Caotet Goren object.” © In Gaz of Folegraking Wty Validator Fle, Natitator Plugin heed (09 Reads \Valiplatore ralet.xm) and Valisteion.2mn) and-then Sorec : * these xml Fnfomaton Ito” \IatidatorRecamees Obfest' and HIS Dbfeck Pe provided to Qnuts Pha by losing Gn QuoletGnkext- Obfeok — The Vulicetor Plug n elaae, ee need to Configure In Struts ~ Contigutaltenfile to Contiquce & plsgtn case Jr Stull conf a unofan Hie voekave on elernenk catteal . 2 Plegminy element tea Jack element % a Shub—Gobyutakion Ble. ( plugty clacr har to methedls ntto,§ desboyer), 7 Welan aleo Create. Our dor) ae ere ee or < plugin claswcec by ettending Plugin 1 ooran of 5 os Value =" Og apache /sherts [validator )waliclabior — rales B n lpg i xnly [868 tue [valtdabons xm} "> —> When We Canftrune o plugin clase 9g Stet ~eonktguratoy LPle-tyen the Skate —Conboller (Acton Gulet) Createc a obfect of the Phagan clase > For a plain ctor ac only One object 1) be Created by the Contoller. —> Fy Crut$ Frameworks, the. Corkainer Creates an obgect of an Aetfon. Castek ( Contotier) and the ConbollerHsk creakes plugin Clacs obfect, PP avollahlelod contiguring % Ctra corti aml Fle —) Kech plugin clace woe need to Conkigure. Inthe Senet Gofigurabion tle the Plugin clacces soll) Fnnplerneuke Plugin toterkce. and provider Fmplementation-fox lofte) and aleshoy (9 method. — The infec) and destroys methodt cue erected are only onees. Syntan oF valtdalion. 2m) _e Ruled ane gy e . ) name” clependc= "0 bY Fomew <[Hrelds . < fret Property = "pod" atepend c=" 1 2> Rather than with, Validation method We are writing & Nolidador 2m) Hle tn Declare five Vottelattors- by Pertormtng I]p. | validations. > wsisle applying ceclanate. Vebtdaine Yo Phutt, Our eB efor ory ; or PomBeany clace must extend VaticlatorForn . o 2 Welteabor own Fe giana Di. apache the Naltheter Potente fort TO Enable Vabidetiong, Inthe Sirk —comtFqutartion Fe we should Tnotude \bdidate ancl Inpub of buter Jnthe eleroest ee ei 4 a 2, © Seem etiob paths "{ fogin” names “rm,” ty pe "Login tictfon Valsclenbe . Rules aig “ite fete veuy haste tule te apglyect Aor ox! Lo pak elemnds >oht eles Venthes une ether Dheother Come Value fe entered For-trert pepery ornoh Hitt ret entered then the mlets feSled _ ATF the tule to Latled the emormsg efi beaten Pax) Lefauee. Biurolle. \ 9 Fo-the Relouce burclle We daaulel prricle tremor mig for thie a vrale by usfog the Keay “eamors. required.” —> Inthe ReGource Bunslle Wevte olyrarric error mig’ +Now soungpte- . < volta Bam) ; lagtosep —_ een — ee, a possond II Hongo Key =Nabelvter > nedstecod gear <[Betd> aie Held property =" prod” Fete mandates. ob eperds ='brea uived 'S ~ I9[osjaou. This vules© applted ,vohen ever WE sont to accept the value entered Sina teatbox ony ITE Conteing minkmum of Fuen oo-of Characters - = when ever hfe Talefe applted for aninput elemask “ther we neeal tO Cnigute avetiable Jn altdert{on num. whan the name mtn length. & Min fengto:- a ILE minlengty Rulets failed then the envy mg wil be arenbonrthe Resomce burctie ard fnthe bundle the vexg brine ervormeg mutt be “emo. molength’. > when the minlength bute 27 applied fate -the ere ~the Value of the piolingth VSfable Kalbe Replaosd , % place of an orgumal, byob an express Language cep. nye. he fegto Sep. Binge. Properties oer Lebel seve Uxername - = cae Casal corr. regedved= Lo} Wregui yaof a fro" winlergtna 9} shoal pity atleast {1} chotashey Malidation. am) Reece Afr ell propellys "uname" depends “cee uted mtokeagth “> a = Aagi bey "$f vow! mfolingth}" resource = tetee? } names” mtnlength "[> a Zvon> Lvar-name> erimlength <} Vorname > vor- value> © £[ vox - Values | Beld > - —> Jn \altdatin.am) fle, 30 order to replace the Value at augt woe Used a key bouk thee ey not cwerlable. tn-the. Qn Bundle. Sb we used Lesouce ="balre,"atb bute, Hs mmeariog it, FE trforne the Grute Controller (that )-framoorks the gfe Keay ts Nat avoflable Inthe Kecource Bundle - -—>Ty orfesio Replace the value Into ongs. at aeurcting,12e aled ¢ Eyobel gnthe Key 3. Max lenges Rule te athee wale ¥¢ Ufedéo verity whether the Given Tp Velie OF a ‘renthow. 1¢ execeioding the Grenno-of chovackers ove no} > Eh-the Tp yalue WC exceeding Ae FweP norot Choweeter ste Bale. 1FIl be failed. THC Rute tatled the 77 MG htt be tacen fromthe Recowce bundle And Ynthe bundle. Key trom whe forthe emorong must be “emus: moa length | > 1ohen evey Loe apply this max fenginrvele, enced to Oonhquve a vaskelble, nihth name fr marlength nthe Valictatfon 0m). > Ty OCteler to eplose the arate Into the Ougument forthe enor meg ne. Ute enprectton Ranguog e (EL). Ain validadon. am) c % Inbomg-thatthe Kongo Keys “tabel uter'/> Value net ReLomce Rundle . , Tether vale tf fetled theo enor mse rot be-tacen Lom eo Burce bundle. fyb the key-Lorthe. endymeg M'not predeline).” soe. can tte 7 gar Bur don bey forthe errr map. DE the. more bile te Latled then to get the enormey bom bude poe havefo tnfbrin-the. UabtcladorLrmenance Hhat st eee bundle Ry mesic vule. Ttte done by uring tug “Pre J La-2I # 12-3] $2 uor-value <}vor> | ffeld>. A > begity Exprecsion) cheveets ath 2 Properties 4A Male cChareoter f > €ndigepress¥og) chate faloek rod= Pacsvoord a! pre sete, ewrrr.vequtved = Lol te required Me marke fa} te not Carect Ure dePined nam « > wile. Construct t tequlos Biprecsionstov Mate Pies t, ol tales 22 We-the following “5 symbole : oe As A Comp. 1-4 Ropreceuke astlag ofan Bxprecston, BD Te reprecate Medtiple chaisatey to an Expresoy 3 fe art vepreseats finting of an Fuprestion. “the diferent ExprestPone ose, oe A[LAz Apa] #Co-9] § oat means, the Steuiting an charaoker Must pean oppercese Agpkpphabake © bijowed by sro no.of Loser Cate Apphabates the Lost chatactey mustbe avigit av Va. Canbe an Pippen Case Alphabate aron Undedtore (—) fotiored Jfaso-a] ¥la2]f > rt means the Pladine chesacter 4 anf no-of efther Lower Cale or Digits corbetnalion, & Finally the. Expression musk end with a Lowe Cote Alphabate, YB ALa-z] Lf (a-zo-a] fe} Lo-GIG > st means, the Harting £30 ate. SS phalpakes, -fottorreol bythe nents chauaotecs _ tbe apprcate alphotoatel, a a = cage alphababe or Digitt ove combination § ~Rnallyy ale of - Aine fart chesacter musthe a Digit. | > Th we Conchuela Regular Eaprestion Mee thir Wenoneed to apply : Minleagth ond Moa length Qulee.cof the Input Held. octoreltng tothts Gxp'y “the anpukmustt Conreing” Sumdiy HW chovostert? 4: AlA-<] [4-2] [0-9] Caz 0-g] $f 1 Lk meanc the ot] character ee ee Muttbean cipper Care (etter Sesond chatooker muttbea Lowercate letter, : theme third Chasawter muttbe a DigFtand the lost canbe a bower Che ex efter pigtt- Bemple ine [=a pong — uname vequireel, minlength, mesilengty 7 pod > segutred, prod. lobes P for Goce Code please Reter Hand Bore) pege-re LAGHSL (Grample = Hireno —ai5). Dives Grorahwre 5. seus Example 5 —AagiForm fave. login cBon Save, t—> 120 om} Ghats cong am | Veltehsdton umn) Classe aeeclosr ley sngtelgl Ge aperties tle, Cicttage pnputics) 5: Date Rule: 4 Thee Rule tr Utedto verily cohether the Given Datavolue maiching 5 Wh Pade Given patteny of Date ornot Ftthe Dale whe t5 fat] Anenvor meq pil be taken fon the ReSource burclie sallctines and the very forthe Prov mcg fs exormeg Deke. } EF re anply date Yale weneed io Confteute esther Pattern 5 clare Paitem Stet Vasfabler 19 ValtdaKon. am) fle i <3 "the Date wule Tntenaliy wes SmpleDakePomat cloce given by Tews: text percage the ae between the Bute Patterns porte PattemBbipt, rncase of clade Phen ick 209% fy date and 2dltgttt fev month Uudigtt hr etmentatned Fn cateot dlatelastern Sagle atgit bv cleuke§ monty anol g allie “for yeat- alco etlovoedl. in valtdetion: 4m) ee afeeld papecty =\olobtdeperdts ewequbved dette” LvaK> eveur-rame >date Daten Shick <]v—n> det] yp 4lv-v> <)vou> <| frela> feos been name = Binge (ee) vatidalFOn meme Lume Snpak.derte = Dake of Birth enr.segived= $ ye Manelatornd enor. date = Soir not valtd. —? when ever dake Rule ts applied thes 94 automata tty Aus bte. the qfodete S given month co%th?n The Range orhok, De dete Rule artomablitatly Verfies “the ghiers Neo fecrp yeas. or nok FE ose enteY 29-asdate ofMonthn dite ciu nt oy « S$ Ohether » 18 teflere then the enor meg whit be talten fon the bundle, 5 keye orthe. enor meg ic eax. dake. Notes. NOt for Dake Rule tiample Rete page-52. Line slo 555.17 aa oe ia dy aot Deravo Base of Velibador Prame Loore. + Rios eon oe —— > anytie. vse cppling Valiclaionc ory Tapak BR lac, soe howe, too crm: : «ches heaperfield validatfon 2 Brbwee thelate Validation > By ating Valtdalor Frome woric 2 porsitste to apply only Perlteld Valiolationc. PS Uce wank to expply behacen feels Valéclationt alto then we need t© Manuvetly Prele the valicdatione 40 Vell befocer felde Data. Ate want to apply botb perfield § Behoren Lielets By orig Vtdaloy Frome.wort then ie need to apply both Declanatve § Programmatic Valtlabione Combihedly. 2 Apert born Declatative \elidation we voet to apply arg adalt Kanal Voladalione ther Ke need to Qweide the Validatecr method inthe Formbean clase. 5 Tt 100 Ovnide Widlabe ©) Method Sothe Foun bean clate ther Cerbolky Ywrvotes or calle. Our Validate t-) only, 0 Arm Our Valtelate C9 methed wwe need to call Bate clase valedateC- method by oting ae SEE Cuper. Validate C-). > Forkxaraph 94 wevsnut to Vey sclether patsioord § Gofum Pattiord Entered axe Matching or not. then Tn Valtolator Frameurore wedonot- have ony Rule, to Compate Valuer 2f too Inpubfrelele. 9 we need lo 7 Me Overttle, the Validate (-) tovently Dhether prod Contre pewesorl Apithing ale not. 2 Kxarnple - publte eclace LegisForn extends VolidetorFom 2 Private Sting Uname., pods Epuod ’ oO > Medlterer8 gettercts a Pubic AetfonEmnt validate (Aatontragping mapping , Heiptwet d Reguett yes) @® Getontnoy nese Supe, vatdate (magpteg, xe); UEC | prod - eaualee cpeod) ) i ActfonMersage m= new ActonMeccage ( ‘pod: cpod-enoy"). acct -adkd ("eprcol", wy )+ okt Super valblate (~3 As calles NelvctodorFoynn 4X - clase. Declaratubyininte Je canp Ovunide the Valitdate 64m Aetionfoves clears by uttng vaStdakion aml wecandeelat. Kopretity Ms! velumr aes; vor Garce Code plete. Refer Vand aut Clteat Gde Ualtdetione 7, or Pramewon The Advawtee of Valiclator Frame work! 5 poe can apply kot cteukcde Ualtolationg Oto Cnouside Validation. ixtng Vatrolater France worie + —> Bwe rot to enable chet cde veltdebor% \Jalicle toy fame wore ther -the ellstog too chonges ote vequtreel 90 -the Legiosicp As Add tame shiml: Java Geipt > tag Uncler Heads 2etion, A Add OnSubmit event dearetler kor Kbimt s form Stag _ 77 Dh t2e. do the aleove too Chang ep "et tcaly “th 0 Jour Qofpt tanesfon WPL be Genevrebed bneth. stot toe . Asa csehurn true then the-form Is Subatitte tothe wor Cthenstte Sf. +the-form te nat Scboftted. 2 > forFremple two Rxeute Utername & Pacrword Validation eal- eet efele then wenesd the Following Login icp 4or eral clmuborde Ceovspt Validations. Mego. dep 21 @ Leglth ob ="hbbpil] Soutt.apashe: og frag htm | ALG laglth vite" htepl] chutt.apuche- ong] tags—beon’ prefixe" Bean's, , @® stent 0 predias" hems “ 8. ichtmal!eereform action= * valithelo” ohGabent re veeltdate Frm Unie) S Zheanimestage eye Inpubpod YS " fage Key chi scabrott value =" £eg'y" fo <|hto) Loom ~|cecte> <(htmi>- Notes PrevFouk clirdtadtion Rule Progra Rewreting files ate Same . Ry eu Peale Puttin, 33 |ots0n =— G qe barge bekoven 4260 -hen wegodor fage _ Reber thir weace ong bv0 affSbuter af bale YD) heeuseed 2) intkonge >for alithe ‘Lange Ruter "we haveto Conftgute tw20 vowfabler LD thor ate) whodengin, main Legh. = GC ae Roger 2 Wie Rule $6 asecl to vorky whether the given Tnpubvelue Lo. nF fo the given Kenge ofnat Bnteget provided ferthe Rule ornoe > when Caer 12. cpply hte Rule or an Input tield then Wenced td confiute, 12 vawhble? In valolation. 2m|Sile Called min § stax TIL hale te biott Lasled the emer 19 boli be tatten Lom the Bundle. and the Key forthe tomer nace IMdobbe. * ent range." Sathya. Ket ‘opak-oge? Ha erottcequtred 240} 4 yagutred erat. ronge =Lo} could bein bebaeen MES velidatfon. am) vend reine] y-in> Sony ayea> manly <|vat> <[Fed> . PF An ruts vedededor Prame HOO we got ag. Rule ts fntKange | d “ye saat 3: Floal 4° double Lange- a BB for al! abe Renge Rules We need to Condigute, min § max ventabler tn validations) Me.dor al! Range Rules ‘eethe up tn the Letouce bundle te enpr. Tange, > vce only foogherge, then Forthe ualuec of @in§ max. vurableo ye should acd a Suttx called ‘2’ (le Lice look). —> Pe ayply Host Lenge fale then forthe usluet of riff Max rulsblec se Should apply a cutie colled 4" (Ske ivf). a Emest, crectt Con, onl i ot there F Rulec ove having a common point that wedeonot Cacutrad } to Configute anf veutabletin Ge valtdafion.sa) Fle 1 « —> wher there wales ve applied then the enor mage ase tatten-fomthe bundle and-the Key's brthe envoy eg 0 barelle are exvors. ema’! errors crochthconteh Crealtt Cond Cre: orl Input Cedtt= Credit caxlno Snpuk. home = Howe page Addlvewe Evy 729, Sree {fo} te req uired Covtemsl = Fo} 46 mob valid ron Creat Cont edo} te nok Valid e PME Orl=10 1¢ not yahd < tield > popertite*eme$) * kepends = Fequtvedt, Go] ny qitelds Property 2" home * depends ="“vequsredd ust" > Apertfom predefined Ruler eolicheue given bythe validator Frome. wwe, wecan also clefine or Create Cur evn rule and opply -br the Inpak Held. —> Ty genetal, we gerr Creating dur oon yale Sf the feng suilecase nok axthbs fing oureryuire met. > Bhakall we wart % Cveate and apply cur oontule tren We need to Foiios the following 4 Stee Create Oo publte ches and iChouldnot extends ang bete clase eind Fcheulld not Implement any Anberkce- 2) Creoke A pullolte Rabie. method In that elece and Hye return _ type, must be a boalean. 3). Configute, the class, the method and Pe Patameberc-into a. Validator — rules. xm) -Hle- ©. Apply “the, tule tothe Input-feld in witidadion. anl-le. a Je, 0 cher + c Pe cer PeFined Rule, to V8uhy soheher the gen Phe a uty yf ne & veltd U¢n0 ornot RebrHand bow, feyeno ~ 53 56 Pe d_4 Tagply the phone Yule Aratotallthe Rulemut 24 ]o5faou 2 be conbigused $5 vabtdattah -rulecon), ] oS Fer Cooking a file Yale in bon Velidetion—uleteml He Copy the : Ble Valedafies-vule-aml Ble Into our apply w26s—IUe Felder Oper Ante Yml file, before closing aglobal> element ‘the following tidabo, element ZValtdator name =" phone, * closenlaine = “enyelaltdartor” method = “allt Phone” Method Parame =" Yavactang. Otfect Org. agpahe. Commons. validator usdatorfcton » i og: aapoche » Commas. Jalfchodor Feld , i ong. aptohe «SHAT. action. AetfonMesapes, on. capache- Commort. yelfolabor. Validator » awa. doclek http. tttpSrolet Reauest” depencts ate mcg =enve. phone" > + )ntla.ton> Acton fora, ——> OyratleMonFor “ Vatidlatoy Foray” > By naVeliplator For \tidetorAetianForm —> Dyna Validator Aetfon Form. Pals AE Validator \ too Forn t+ —_—_—_— TnaShutt 290, I muikpletonme (Scp'e) ace having Ame no.of input values and Same nowt names br form elemeutt (Textooxes )° then wfc porotble te shosa & Single ofombBean Clete -foyt Culbiple Fepis. — > Phen multtple aep'rare shateg a SigletormPoary class anc} Ye roe amply validations Ir x0} fle onthe Form Beoh clare ther the. Lame. Velfdetfons ove treenteo| formultiple acp's © ome. why TP wera to apply diferent BLOF vali datfon try sn) bor Sara g dite TP we eatend our Form Bean clase hoy Vottcladoy Ae Kory ovr) then ~ only fete pordtble to apply mutliple mutimes Valtctation forthe Sime Form bean tn Validation unl. Oterlogin. Kp. nore ute +?" nae LF] SS ee om bon ate AdminLogioni.ce Shasing Same rs | me one Lego Forms : ma — 0" [pderfalegto Legnteoin_ | [eopeair) 2 sere ice beohte feng nane 2*usecBegin’ = O- DLT ide Property eel” > < Hela ©fong ges Admitalogta i Pret? yet 9

<[field> . ff Sestsconkgeaml_ RSlos}20n 9 dorm beant> - eae factoorti ‘pp Jie. > wllle ceppting multiple Himes Velidetfon on a rge Form beeen the APrction path pyasided 9 Shuts —configutalior le andl the Lorn mame ig Provicted fr Jalidation.rm) both murtbe Sane clove xample = Et use Wauk Wapply deMecert cebof ualidaltone one Single LoueQeon clacethen the -frobean elace gxtenal ¢ ValidotovActonLown andl 90 Shuts —conkig uroFion Bethe Acton names anal Porm bean name Shetld be etch, If cboove Struts eonky qun| fle Here 7% In validation. am) PH we aut toapply Aterewt ce} Of valtdalfone £, Cerretlon Ddmin Action at Sepetabely hens 1ornced the Lotloxn 7 code Xm) fle. nd hrm valedatfon> ~Fom Sa > Hote be Cree caole ~ Rehescthendoe [forms a
Nene Becox), FomBean class Pa Goreile fo Hany moel?feationg are done they Re. Comping g Receplayeerrtut the Bou Ie requdved. > Fn order to Overcome the poblem of Validator fom We geter Dire Veliclntor Foe. > 9 Cateof Dyna Valcntorfirm, sce nanced to Create. a-fonbeas clase “Sepuasely. Snstead 5 ee. clivectty Con fqaure- Dyno Velidatoy For In Shuts configuration le, % U. any maditications are Required Athen woe.can do the Moditications ctrettly 10 aml fle and weno nes + Yecomptle and re deplayes-the appln. Bs in cace of dynaValidsborFons, the Declatate Valtdattone ote Cisse] 19) vallaion.son! Spalte got: eneeutey Forfacoenple = torn —be = “hin” m—bean name = “hm type = “org. apache shutle. wiltdator. elon Dyna Valder Far y PRONE ® rome uneme! ‘ype San sag" P news = Pat apne uP “Faus. lang thre * lee “ery Qu Kthat & the dfffernce behveen Dyna BctionFonn § OynaNabdator = Fenn. 2 2 Awtt- In cove OF DynaPictlon fom, we Cont apply Vubtdadtone onthe Trp at forny Bean Peval. hate af Sncoseof af Dina Valioledtor -Fum, Oaledabfons ate posible at-fomBean Love) though Declatabive Opproch only. (ting vem] fle ), Qtr blhat tthe De bePoven \Jaltdoubos Fon and DyroValtdatoy for ole. dip Ualideibor Form wears needs Le compilation § fe deployee ment; te the classte mod? freal Clermbeancless) bub tn Progienenadte. Yona. valiketonom Wwe can Drrectty moditied Inymltele ond Yecomptle can a ve Deployee ment not required. ic) En cate of edidater Rom, both Declarative \btdefione and alco Prqramate validations ate poscble. but In DynaVaticlatorfomn only Declarative Validation’ aro postible. and Progra matic. nlid Hone aure nek porsPole & Dyna Vadtdador Ch ction Pom In Case of Validedor ActonFonr wWeneed to Crecte a formRean clase hy Fttentng ValtolatoyBetion Form). if ang modtHicalfons ate dane. Inthe Farry Beant “Clase the Re comping § Re deplawe meat Redaritne Sear Regutved. ¢ > Fn carte of DynavaticatorPefonforo, Covar) soe oltveett, Corkegure th f ’ © clash Crete config le fo Recomptling 4 Redeployeamert te wh Reautyed. > Re need to Confrgute Dynarialictatod, _ ) Qt- hak the die between Actonforn and Dynanltelader 2loS]20 Pretfon Fon 2 ——— Pon VedidoKooaction form ta. Javeclass ,wiEany changes ete done. her 5 — Feeompfle S vecleployeerreat 76 yeayutred. but Py naralidatorAcHon frm ic Directly Confequted to um|file. $0 vecompilabiong ve deployeermeut * not equivecel . —2In care of ValidatonActonFown , both Declorabve validations and alco forgramatic untioletionr are pautbles built Oya VlidakionAction Fong only Occlanakie Viltdations ate pottiole. Qe» Whakts the obHferince bekween Dyna uslidlatos Fon and Pyno\alclator Aye Boo Form. Ansi- Dry pyraVeliclatorF own only one Seb of validationg crre porfitole on Form bean but ‘in Dyna ValidatrAetionfonn , mattiple Gtot valeditons are Possiole b> FormnBean Ty tes of Action classe 2) Dicpatch Acton 2 LeorupDiepateh Action 9. Leh Hot or 4) Foncoadhetion 2)» SneludeActon. Opcten: og apac he « Steck. actions. %, Alithe alme AcFon classes ate Gren eng -apeche Shute -octone. Protege 4) Dicpateh Potion 1. LS] Disptehtraction clare uf an abshoct-clee, In phie clogs othene it (200) na mee asa ee ce Defonclase putlic class AdITter entencs Action 1 execute 0) { $ purolee cleats EnTtern Crterds nection Exeoukel) Noa, roa 5 Punt clase Removeltem eens Action Ae ee Orsplayiten entendadetion, encourk eed eo } a — Rather than blfiling ofall of the clastee Woe whte one clay pi DeotehActiro pole cloce Online Aetion eabend. ; Dispateh Acton Adel Enititeme) RemoeTtemey f nt cploy a J > The Acton clace has a Drausbooie meant for every Gem adding to Shoping cepplh. “rather then contig one Acton clatt we ussite no-of Action clascep ye. wate tt. Aceliten, EDIE, Lemovedtem ---) ‘AchonGulel > 0 HAE bardbery on (Sect? Conteiner) to create no-ef obfect thete claner VHtheee 8 any model cation close. Mock clos and Leompile FEF Hime Comatint proce sr by Extenting {[ Proto type ts execute ype D&spateh Action clase, we write inthal clace methade, a —> Dialed cto sean Abchact clase given 9 ong. apache Shull. aetone.a. Pocwote and II Kxtended Prom) Arkon clase, — spec Action clace 8 an Abrtrookelass bul PE cheesn't eoaty Obshoot methods tS, the clases g fvern a abshoot bere z ne heed to extend our Aclonclen! for Digakh Action -t0 ae a6 benthtt ox advantage ame “ten Snsteocl of Crealing Seper ey ae uo teIn n AL => iohen multiple Actor claccer ate al Same Dowatn ( profect) eke Action elastet ley each Logte , ne cre eet anand methods roy costeg thir DipatehA.ctfen. > we can alto create ary ondinany class uth an exeouke () and We can -) Fmple mest all opaattonc Inthat exeesteo only. but -thic appoveh Gnoreates the Gze of exeeukel) and AY an envy ocurrend delougging 3° complon- — Tr case of Dig Acton HE porrtble-to wie mulliple buttrecc methods Ina Srgle Acton close arel each method name. he Oserdefined butthe Method mute-elloo'on execute 6) method Prototype’. Forkxeplet- Ty an Galine Qeve appln foctead of Craattag Rperateretin chives fo oatding 5 Ealiting , Removiig anol dtplaufing the Yeme, Wetag mip thece Bur Adin clastes Into gle Acton clear : by Fraplermen ting faux methods for Le Opercrtionr. > The Aravantese oLDigpatehAlcifon ae, I reolucec N0- of Ackoncloses, Whith means no-ot obfectt Into a tingle, object, Sothat-the burden On the Buer Hak be veoluoed, —? Fn Case of Digateh Action, -the Aeton clay Contains multple. bates ethade beak ae run eme. those methode thee $¢ done Patooneter only One methodtt Bleoted among allrutiiple by dapendling 09 the. Nelue of an “request —> Sry Aras Contig utortion He ,-the Petowneter name. Chortle he Cokiguted, by ong Pecameter athhute Of on Belioryelmad Acending tothe Above Kxample One met of an AcHinclace. Pe Selected Gerenmapg nttiple method bythe valucot 5 patameter. Excample:- sample im 9. S—Cexm) cH a ' bed s SJacKon> Tape claus CespActon entendt OitpalehActiony, i Par snes A scandina ee ft. i Pong EramecDesenaling Cs t__- 4 Employee. 9 Kele um) ict — Conti a = es Sa InpulLep Guceets $ep a Dedede Woe: Poy Pouce code refer ancl Love pogeno. 5% Leno #4] SHesfaoy ' > Tote DiepAdton Class of the above Feomple Wehove Lied) Apofoclace cated Employer 7 > hen we Bleck the cede tor DB, ther Hroittl be Ctoredl 44 4 Real : ane} de Cannot clvectiy Trantlor the deRecutt ek trom #elon dace fo 4 Top, becom ResutCels obfect tnot a Ridaltred abfetk. —> Tr DiepAelfan class, weate Creating % Ppofo clase olfed-tir each YOu Of the Recatlet anf weate Goring al pelo clace Object Int an Anay Lit. Fina leg we ate, Setting on Arey Litt onieckints Request obfect > he Kaccest-fop page geting for Broylitt. Gore request Difeek ad olisploys the em playco kecorcl? bg Heating the Cotlertion . zB. Look ep Deipater Adetfon + > LeoeupDipateh Action scan Abshact clase givenin og apache, Steet. actione $e; Poctae cand FIC catendad fom Dispaleh Action > Looe upOespalebAdton claus tran Abshortclace been Fshas “only one Abshect method, & when te ate eatending cur Acton clals ory hooxepDigaateh-A don, e thoakd mart Overide? 9S Obrhact method Ie “get Key Method Map 0” > heorupDicpateh Action #2 Ami llay to Dispales Betton Hineane foowup DicpatebAyeHion 9 alto uted to Cornbine Multiple Acton castes int aA srgle Acton clase. 2 FF xe enttad Ou Acifon elote fon Leotup Ditpateh reHon then we. Should can Create Muttiple -Aetfon methods share names ote ter defined] and method follow the prototype of the eieeutetrmethod, at . A> becepDtinateh Aetion’ Pevdenns' Resose Looeyp ints Receurte bale.” PE Meant phen clteut Reeues? W J) they the Conho ley deren ©) The Value ofthe Lequerkpetameter anal bhen JO Dthe wre Luce. burdleand gett Key ofthat value. tiie ts axtieof Revue Loocup. ae genetal We patcthe Key and getthe UaluetomRBundle but LoocupDicpated the. Conkoller ntewrely pacccthe. Volite and getthe key we call teara revere loo up. —> Atter getting the bey fomite bundle , the Conboler goer to Mag otset- by calling getkey MethedMap() . and Vetter Whether thes bey de Presentinthe Mop ornot 74 ft tr there tatcet the value-bora Map otf and Calls that methed . Example:- ace An, Steat8— Cool’y sem) ZatKon —- - Petometer So" > by ela ealt-Brou2ser Languoge te Engltch I oeume© one Bop.oser faangoge Do-the changer Bojosjeoy) 4+ Clee on-tovle menu ———> Ante opRoar-——+ languoget-—> Add —> Select the- fangunge Frenvh Ctrance) fs) w8te cIser de Pred then clic OK, > tog counby code Select the Utorale ned longunge and move tt brine To? —> OK-90K B.C iteh Doren rlgle Developing a Strukl apple the eipply Conbaine Mt delat one rrodute. Bectith ata Delautk moctute- > TP a Chets apple Contatar mut tiple fomBeane & Action e lnsse © Related * Pilea gp ot People Tottend af Cooke gatin all clattes Into a oye Ce on bpatatien fle, ¢¢ 40 posstble do altuide nto routtiple fhetlt - canfgqaration Hles, —> Ff the Conf gurortin ic Avicled ‘to malliple. amitiles then we con Sey-that the apply has divider) into muttiple Madules. While - Aveling tro, multiple moclulee, the. xn) fle panes Hola bllory a eee af tei TP ise dt Prete apply into adming fuully Melber oF Kxomplei- If ize divde a apply In gf fy a then the xm) Fle nomes ate 2 yal -conBg. x41 Att Contig aclmio. 1m) Ctra Cong faculty 0m | 23 cohen a Truts-appin © OfvFaled nto MUM Modulesthen, when a clteuk Reauet 1? gtuen) thon frst the Reuett 9024 to obeliilt ntostule ard bom that the Request rot) be Tranthyed to the Ree rtrieg Module Tn oelered #0 =tumpthe Conho! For ene Moclule Module, We we CZtlehfrebon clace. Th case to anethey of SitchActon class, over Sxtorcloa doesnt extends an SuttchL Yon 4tmeant buy clas Crlends Petionclos only. *SrotlebrAction lacs ¢an aadinary ela buknot anv abthack class and 16 need te Contigute the Gdtch Action claw cfrectly in the. g- xn) fle — > wifle aalltn LstebActon, +90 Parameter ate need tobe paved, thote are Page § Profs Pasameters > proks Potameler Cooteiine Module name ,40 where ve Control PF recuive to Gump and Page potouneter Contant the Beton poth need) to be vutlied alter Sumping the Conbol ‘ntortaak Module - Fortauample StuutsConltg. ural page= fidmext. de '/> " query thing, Eom patna type "0¥p ache Shates con Sich Detionf s— Shug, Conte edlmin-xm) BY OHog Gh etion clase, %F peste, moving the Control ory Dela teodule to another Module then we need the. prolix poameter values ar /rroctale Ome ChorExample: prefic= [admtn). > Lhwe ate moving the Conboll other Modale to delawt module then the, Prete value” ‘Y” (prefer /). DS uf cng eps te Conkiguted tn the Cort gutation Fle of other mecule. * Aen an the web-appln Dives top Structure, under Root dive We need to Create folder with module name and to cove that Alp’ pages Inthe folder . inthe abave ¥mittler, Keres § fitlue Isp pager ace Contr ouved Sheets Contty—admin.ym|.9p we reed to break. actin blder Under Yeok Direc boy and Store Suececs $failune fenges Into-the. admin oer: > ule ‘corcing kth Srotteh Action the applteabion Conteine mult ple eubContig Piles co 1OUPle Conftusing AcHonQiolet Py voebsxm), i96, Need topos mulbi plein? t- peso. theter> Dhere ene fof —patometey Reprefeuts One module Conftgcueaation Hye. to, : 7 whomple! Cla Arutt-apely hoy divided) Into defuutlmodule., admin Pkerdereb- module then 3 Intt-patamoles) ote wep uhveo. ttn Congur red ry the. poelo-am) thote ote © Contes Conftg/-atosio i Coney | etd Contig <|Puem—rams ~ [cee “IMF /Sthats con fg rel ~<] frtt-~ posom > tint —patorn > Gontty [sterdete-<| p-n> —> the follow'n Biomple te 100 Transfer the Conboller Delaut Lamodiate to Adie module Ofna Rotter Ae Bon Frpetsfep. DEBIVE [>successeg Llu. gyp —socbam) Shue Config arn) Phetle- Conky Renin xen) Ls tetaee C5) ab te gon. I] irpat-Ssp Lforrn action=" test do" > nak type = SubmPt Value. =teltac! > <[Horm> D> An the above Tnpub.fy, we have ter! bm) kage bat net stust provide, hermitage. Becontwce donot have- input and ioe donothave an fombean cloiec tostore ‘the Inpuki S% 12¢ can wre Ortinary hint tage seb wa | Wesebranl et cape <¢-—n> actione{c-ns “ewwlel clases org-apache -shutt lfon dolebc/o¢ > ro poste A oe toad i 7 pur StS a Aout > “pcttor wane include. fele = “Shut deft am) "/> : Zotlon name =“dagin" clacse “LogioAction" S Sresull name success" > [ succest. Fep <]recult> /foslure.Lepe] faflare 7<[package> Shur Regutve mmenk-s -fieruss> Goue bex b> sel 1-5 helghy Froarecutremontt poshulf 202 for efi 3. aK 5 or heigher vention. ey 2 strat x. dowtelec, Po Temncat 55> SF Tomcat 5.5 or hetgher vensfor ote . D> weblogic 9.0 ov heighey Veriton. i abe Cag nes “The Potiowing GE fowlbles ove Reguived 10 Work Ft Arute gx. 1). Commons — coffectort—3-0 far Ae Cormmant= £oggtag = bef. for 2) ognl- 26-1 Sar 4). fee Marites 23.8: far 5) Sbette—core-2.06+5a% (Hain Jor file ) ©). xworn ero Jar. F x 3 2 | login Sap ZAG) raglte pitftea's" ort="[shutttags "> 2 Tt an aon vily'> 2 bv> 26" pattigord came="Pur! label=*Enterpaaword" | >2brs LoGubombe value =*Clee” align="center > : <| homt> I] Wek» xm ZL web-app> Shuck & £| filter - name> . shuts 2- Zonl= patterns pt <[vrl pattern > 2[ iter-orapptng s 4 webapp >: | Shattexro] oe [Dip #ete. ctnul82-0 version. 7 include file = strels-cokauult an!"/> : peek,” entendls = butte cbefauth > Apetemge name © pee oo ; actor name worthy! clasts" LeginBclfon’> [tocol Sp efresutt > A venue names Lfluve"> (bPur Sipe] went > faction > <[peccoges Abhetes . [ Loginnction Fave peblee class Login sclon 3 Giiesreetsete sees anaes ; pSetterOr$ ettenses putelte. Sting execute td 5 n PH Cunarne- eguatal “cia gg pod. taualsl'shelea") 7 Yehun Saceets"; e elf ; relunnSelure" ; a 4 W craceecs Sep a Lhe? oy. teagh b prebtes’s’ whe Ysbubt tags "4. > © entered Orernare =
Certoreal parnoard Venterad utername


Log fSluve fhe >. MoNDAY z Re => Ty Shutse- x weate Moring all Ppa values Zoles| ett Ina Acton clase, fot ft incveases the Aetonclase Wxe. WLolve HSS prttolerry te can fepetate Setterc) § getter 6) method tntoa Spetate pofo class thet com be retul for vectability purpose Pablte class CserAetfon peblic clau nr priate rer exer; prrate Shing onamt, van red 3 Pecter if Setters) PrNate fol ages : : ; Public Ping encouke 5 Ki Stosng “Input values ina pfoclace:- Tn Steuts2n , LOher ever We Fiulmit dalees Loma Asp then the thputvalues ane Mored In an—Actonelasc, the Aetton elo algo Contoing a properties Cuasfables) aloo votth Fx Sitere g aetters Methods. > —> TH we freely Clore input values fm An Actonclass ther w9e us no & gee Kevsabiltty, > Ansteae of stotng rer Anpuboabses Into anfretfon class Direct Ke can alto Store foto a pojocloss ab§ect, So-that we can get Reraabelitey. —? IF We wank t0 More the Oserin pak na Paoclace ab§ect then We. heed to create -the péjo class Reference afc , repeaty fnto a Acton clase and wenesd togenaste RttexvOr§ getter cag tor Pt. —> wisle Crealing-the Snpub ep pages for the bry eleereult we neod to attach pf clase Property oS aname. bg ong the rye clase Reference 7 Spat Isp vExample | 0 pananne- age tn Acttonclast of ulte, we need 10 ovaehfde nlicdake method for Spat vaticletiont PS cp any enor occured) “aidle. valtdaktag the thpuk then ce néed to Gold-the empr-to-the Curent Action dout ob§ect. 4600 ofone. by using “-tnte "crepoord ) obfect 5 EF any enor octsad 19tFle yalitdating the Input “ten the enor meg. “ean be given Manwallg or We Can gel emormey -fom-the Keloute bundle alco! 455, Shutra-x, we cannot provide arr mig t monually (oy ob ting ) oe must tae the mag's Som Bundle only , Inétuls 2%, the encrieSai mestomebica ly Prated onthe Paowter, We naneed tofnelude any t Fothe Asp. but In Muti a.% poe need to fnelude a teg called ar In the ay poge > Tystruse-c weneed to Confgume Our Refource Bundle 19 ancther pre— pre-detined bundle ealleap Shout. p spertler and Key % pre-deRaed a and FEES “Shas. custom. Pen. recounts = Sathya" oo ldrF— — at ang veltolaton @rrrt ave eceured then Aokematiy areill called Fopuk wf be reteraned ond Keneed to Configure Ki Result ty SMruttxm| $file. Bat segio Sp XSitegt Held rome ="vvame! reaye Ynpatoseet > I Srrtts. um) /puccen-Scp apres >| gesousces = Sathya Lretutt names Soput'> [toput-S¢p qeerton> I *Begfeshetion Sava —ooeoe Pc tagtanetfon extends Acton apport Patvete, Ning onewe, Prod publ void untelate cd FConameslengtnt==0) AH. acd elf Em (toname' } get ent Maser: woorg")) ; $ posd-tengthe ) = =o) 4? publte hing execate 0 bsettye pn Anput-vser= Enterutername. do) pur. psd 2 enter Patwore Le ornng 2 Cername IS reestep prot coron ge pood I Legutred ° THe ener can be addled Curent: onfert otin this « ate nus, = v 5 Ltr eDtdatton mms, Batching Tuesday — > FF wo extend] cur Actfon class frony ActlonSappart, 2 |o6 /so1) “theh In the execukel) method we can te fy, Bale clan verter than rluos torte a a) LEC Of pe oY —> Forkxample!- Instead of sorting Telum * Success", we Can unite a rielurn Soccesg, Here Success tea St public Static final 2 = beable, given Gee hase clase and % Contains the wilue Io “Suceoest —> nthe Baseclass Aretion apport woe have. 8 aka Pulolte Stale final : Usfablee and weanute those Variables into Our Adtionclasc airectly » D public Rabie Fal Shing Svccess = "succes", 2) puelte Rtatte tral Seve Ege, =" eror" 3) publtc Grable firot King ENpuT =“ inpuk gte-- > In the Aetfon cleice of Shrut2., we Can acd beth feeldEmee and Acton Reni tthe Acton clase obfect Ctrte). —> Field Enors are added tthe validate cr methed and these emy are cutomattentiy olgplayed on the Broiler we no need to cotte ony Spevlad tog Por deplaytog -the Field Rrrot enthe Brnoler. — Adtionkaow ave added wlale executing the lege tn execute C) method, 3f we want to eltgpley an BetOnkeys onthe Brews then, we need to vce atag frthe Sop called . —> ete. for Programmatic Valiole Hor Exemple pleate Refer pagend aoe appln-z On the Hand Book, a Wate Thterfa ces i- et By default, inchutte-% Actionclass doesn't have an Dependency on -Gulet- cpl. Ft means we. donot have only cutee Envtionment tn Sted & action clase. > TH at all weneed any QualetEnvionment into Action class then He need toSmplemet Our class Lowy Promye. Intortaler: > AnstultZ-% cuore Interfaces ll follow Dependency Infection Pattern. the type of the Dependency Infectton te Tnterfece IngecHon - meee nvectfon, —> Anterface Infection meane, by implementing an interface aclase should Ovewicle a fs methed ax methods and the Conbotior calle those methads and tnfectt the Reautred olject. —> Th Soutsa.% each Aware Interface to Containing a Single methed and by Implementtrg 29 Awore ‘interface, the clace hast to Over¥de that Single method. > In Strats gn the follovotng Bo Aroare nterkces ate & 1D) application Aware 2) Sesten€\ wore 3). Servlet Request Qroare 41). SevolebResponse Busave. 5) ParameterO ware « D- Applicationfuoane!- 12e need to Implemeut this auare Wherface nto an Acttonclass, Whenever We want to gee Serctolt Ontentk frvionmeut Into an Actfonclace. > bhen we Implement thif Aroare Jnterlace we can Ovenide a method called GbE )pplteatfon (Mapa). shut. controller calle Fk O)pplfeatie0 (Mapa) = SebA pplication € a bg Map m) bye ‘implementing & Map object — For alll Actlonclasses that ate ‘raplementtog PrppleyAuone Inberlace, the Suwttg. Cenboller LoPll fnfeck Lame Map obfect. ~~ By orteg the Map object infected boy the. Conboller, we can chare the data of one Action closies to al) Rematoing Aetfon olastey. ftmeant the map awfect fr cooreing Like Ce yteut obfoct Z 4 peg Aware Interface Example 4 - Pc Legtnfietion tmplemenit Application pvsoro FA ] . Painke Map a; 4 called by (Shruts2a Contootier “Woe Conboter ts 7 Py citar Cap Srgeett the Map abgeck eed ms: pb Shing emtececber > ane values ave stored Amapolfed: these values ate "4 tered nto map\pbherk by shrebs2-a MspBk (KC ‘Sathyany, P Y matey Combo ter: 43 ~? 47 above appln ue more nok creating olffert ex rity 22/96 ]201, Deed? Conteo [ler oan that daly. Internal - CMAP eppltpation — nee Hach mapa yy Publte class Tes Aeron “mplernewctt Poplca ee a 4 Map 41 poate Map m: cahya, pute void { Orgest =m gek(es'); a >In the akeve Dlagram, we ale Storing keyfodue pot into a Map Ob§ect fom Logirhetion and se abe Reachng Value for a keychiong the Map obfect ty tect-fiction class % meanr 9¢ ace tasing Same Map obfect accrwsf, Mudliplehelle 2 Action clases. —) En both Action clastef ode. are not Creating 4 Sepeterte steap ovfect Acoli. Linstead -the Sbuht2 Condoiler I Creating a Lingk mop object and thfecting thet map obfect only py al) Artion clactec Go, thak we ane Gelttng BoletGntext behavfour tnto Grates, ° Programming > Applicationfwoare I an Grterdace giver ‘a Org apache. Satta tnter. Apter. #5 poswage”™ , > TOK Top, Tose want to Pink “the Values ofthe key '¢ Shred Map obfect, wenesd “the Plteing ng. < St property value st erpplication- Ki"/> Dame of-the Map obfeet % Created] bythe Struts Conboller. may P in-the above tag appltcatton & the. name od the Map object Created by Strutt 2. donroller= > Struts2. conborier eternally ured athe Fottowing Sokeme: for reading Map obfeot Mep ‘applteation = news Hach Mapeo; > In Struts veo) fle , tf 20 donot Spesity any esutk name -ten by Aelautt -the name & Considered ar fuccess. —> the Pitowwtng 4wo Slatemuttf ate one and Same Kresult nome = “Sceest" > | cueeeet hep results [oacce ttefsp <)recutt> : Wete:- fer Cunce cade plecute veley-Hand book Page no~ 103. appication—B, % Session G, oa wave interlace trored tp geb Eston behaviour toto Cyutts, rome thes Work. ~ by Implementing Lion Aware Interlace % oa Arkon Class Wenereal tp Overtde 2HO mm)... . ne —> Strtute- Grboller ty ay rfjecting 2 Map olefect Intorthe Aion class by. onlling Bt ewion c+ ~ => Stutt2 conboller Createl acepeate Map obfecttor each clrent FERS nothing bubs getiog Http Gesion enveronment of Buolek. 2s she no-of Map object? cue Created by the Conboller te equalets the no-of clfentf. purlte elacr Logindelfon tmplemeutt Lecrorroare, t Pruote Map m, < o: papuly values 9 M4 pukCKi", “Sathya: Hessen. aa i > Ine acp we con aceess the Ualuee Stored In Session map by ting the following tag [Bi Ba Key forthe <<: prpesty velues" tfsestton. 5)" [> ‘eadon obgect legingep ——S AH elfen = Legion Hon Success Fey ic Pe f i Sccedty Sep t Seccoessg Fey Note f, — Source. Coole pleaue Ref, ie K Pageno~jog. appin-e, 3 SeclelReauect-usote and Goal cponte-Prerote '- In Sbutsa.n , AcYon closs has acess to Sealeeauest § sooret Rep. Ponse obfectt .Ty Gtutte-x we donot have. ‘ony default ;the read WEE _Obfette Ina Acton clace.so, Fat all we want to get SectetRequest § SaolelResponte ovfects , our clase Ghauld tmplements Sorolet Request wore. & Geslet Response Aware interfaces, by Implementing -these uso Aware Interfaces (by tmplementfn “doe 400 Pwote Srreck.ces) we need! to Ovenide Set Sete Reaued og UL chet Recyontecs methods. Into ah AcKon clase. —> Shuts 2. contoler infects to vequest anol response obfecte tnty ao Action clase by calling “the methods. Kuomple:- publte clase hogin€clon Jenplements Rat letRecuestHote, $ RaotetRe sponte urate, Parate tHtpSaoletRoauert vey; Pavate ateip Coast lecgonse vets purl otd Get Cacteteariest (Arete Goth Request —) } putt vetd qr Cuolel Response CHitp Searle Recponse ves) Athfr-vece ves 5 Antcreye rey: ike ys ka es ———— a oO of AnomeberC\wore.s- o> Hahen on S|p Page comeing many no. of Ipput, values, then oO In Sbultz Actfon clase, Weneed multiple Vowablec x long why i Settores's8 gettercr's, "> Th an Acton class, witag Many no. of UoKS and Bench ry f Getter methods will Inoreace the Acton clacr fPze- So, we can ule Sewlet Request object Im an Aelen clase by Tonplementtog the clace from tek Request Aroave , a) > Hf on Action clase Tmplemente RrleReuettAware » then Hetfon clase te depending onSerolet Opt —> An oder 40 OvenCome ‘he Above clependenty ,w9eCay Amplement Our ExcHion close oom, Pasameber Aware» Interface - — Ff we ee: PorameterEvoone. Then se need to Ovenside ca methed calle Gok Paremetere > > In case of ParameterOurere, Shutte Conboiler Stores all topat Values given by the. cl’ent fnto a Mapobject and then the Conboller frfjectt that Map obfect anol theq the Gnboller tefect Thatidep object tnto Aiton clase by calling Set Rarametert (). >The name of the Map obfeck Created by Struts 2 Conhoner 26 potameterc. Logins Publte eles implement Parameter) sopiotse ae Vierlome -—, Prete Map 09 Postion ——} Pv SetParameter (Map 2°) Ahie.m=m,s, P Shing enecube () | rv. + t >the following Example ton PanameterCuoove Otrectony, Structure’ Arsene. 3 |" L_y heotaGetion. Java + —>| doses > loam) Struit.am) > hegin. Sp, Succes, Sep Zh Stegqtle prefix "6" oles [stats rege! > xhtml>. shed > eter acon’ verity "> ~eacton mamestvaty * clace et Login Baton! s Hl Suevess Ap xhe> <.@ reg Preke srs" Ore" [shuts tage ho 2hy> . , 26: poputty ualue =Hfpaianetors - oneme "| >
46: pooper Galue otf peuametas [prod "7 "I> 4iho> IW XML ualaaton PT. XML Val idadtonc es Sots States, plugin veautred De Mo “plagin 2). angrane wen] 2). mustbe aclfor cloc name — vided otfor-arn} or exbeds am) Valedeat fon ten) ae validator frame. more, Login icon —vakidabion ate] 8), Ores Xworgy. = In Stut$2-x, Uwe toont toceppy tnpubaticlattone 24] 06 J2on then we have ‘Sty pes of ualidlattone. 9. progrommale valida tone. 2): Declorative alidedtfone 2). Annotation valtdabionc. > Tn Stratta-x, the valtdedttons ate Performed Using work uatidator Frome work, tatenLom webores, frame Work + —> Declarative witlations 1S noiing but applying Ueltdattonc entre pet veeing wmifle. > Fy xulork yubelator fromewore theve are Predefined Rulec, caltehave arco Frplementel for cppying valetionson User Input. ad OI predefined Rules In Phruteg xr007K udlielator Framewore are. Continured in a Predetined xm) le # called vcltelatort. rem, thes xml le @8 Fnehroleof cuatomateally olen woth Shutte.e Aawfrles, >To apply: xin) vallfdeckions 09 uxew inpuk Wy frruttat apple tren the Blowing Pleps ate heed to be flowed . D. Gul aetion clacs extends Action Qappert 2950239000 2). The xl-flename Should follovs a Sunkaur Acbon wlnse v1.) w. Qo oO io " Allon clees name valtdalion, |. >the Aeon clatiname —ualidlatton um] file we need to More at classes folder of the woebapplication. > Syntax of ualicledlor —ValPdadfon vin). <-eld ramen" Meldname "S < Feld! a bidlador typestule” 5 < peters name.c."patem ramey patonetey val ” a ” hue lpsas ms AMesfege> Exor mestege Pre-defired rales: Deere les Ae requtred t-ahie vale ££ ored to very vohether an Inpatvalue Pe entered Incu texthox Cpoperty) or not +h % a Common vile that can be applted on ong type ot Input element. hte vale docen't vastly ilhether the given value te enter Sing ey not > Fofhzompse : <#eld name ='unome"> Reld-eltdator type ="eq ulvedl" > Anette e> Username fe vequivesl “< [messages <[#eeld-\alielators <[fetol>, 2: repured Sing :- thie yale tf uted to veily Whether thie. Givin inpobvadace Leo property e Frosty & Bing srnot. forte the Conboller” foternally verter whether the gtven Snput Value Can be Converted +0 ony ether typeof Velue or not: ftir not potstble ther, Profile Considered as Sin —> alile anplgieg this ule We Can ess an Optonal Potameter Called ac hin, -forkromple). Held name = Yuname"> ef teld-valdotor types" we raghenge'y s<[ps Ulername Length shold be in between Lf minlergh] & $ Srmmbengtn} ale < H-~v> <[Arelel > “O Note; _p, Ginglength wle we can also pact cpatamer aalted at ° tim. @ Fe4t an optonal Periometer: 6 © FE Soke THis wale tuted toverly whether the geen Mpa value te wwiA?g the go ronge of Trteger ovenot. —> for intr wule , emust Poss 00 porometens ako § max for & le 9 er Cy

30¢}p> Aage fhould be 4n between fio} Skmes <|f-> <[Hretl>. double: The yale te wed to-verSty whether “the Men In pat value te bln a wk? with?n the Given double vonge ornot: > When inte rele fe applfed s toe need to gare hoo patameters, One fy fowwusbie and oiner onefor hefgh value , 9 Bud The powametens of thee vale are sate Dyelustve monnclucive f pte [02 | pice Example! a ea 9.13 | xu eg price fe nor correct <[Htelel > ,

oO

Dow fe not Ualted <|ms. 7 9 ey <|freld > 0 a freldexpreceton - } Pood Paneor{ (TE \ bebween feld vabidatton Confow — > ped San chub pots Pessvoore} Babin Ghutts «ante Leakure AS not there. > The vale Pe Urect to apply Welvoeon-lreld veltolations. Tn Shute ad onle pertield vatedalfonte POF ble Orta Ueltdtakor fame word rte to cleo leet Shut ee, $ > Th Cradt 2.0 ete poretble to ppiy Kot Pertielel and between treldec Vel tobuttonc. > shen Ante rule te cupplted we neselte fort a Patameter e called €xprecefon SEE ald ame « epuod ty <™> Pood § pcp are net meotched 2]m> , © 8). ematl: “Me sule veilice’ rohether the inpuk values entered) ° , ina Held £0 a valed: e-mail fel or not. a a emefl oO em el Seetage demas] ft nor vated 2 message De ~ 9 TAR ule te ted to vecity whether the ge input unlue wa eltd d Orl or nek domepage oy” Lhteld name =*hone> af-y types *vn"> Hore page wri frnoh Corser? notes ty ete > fer wl validaltdation Evample 7 redex Hand B00K Page ne —106. apph 5 > Tochutt an Ff 2¢ wont to apply more ten ore Yule ,mulkple Teles ona field Ecingle) use need 40 vepeate by Aefat! Sate aa yerSltes the next rile appltecl ona fteld, every though the Feast vale t fotled. Pf we clo rot want 10 execute nest yale tohen ever the Previous vule tr -fafled Phen We need tp add an adnate. er callea] ‘Short —cPrette email td Po required <[r> emafl id Pon0t \aled elm . <|frelel > Castors Ualtdadione 99 Grult a2 t- ‘Ppart row eating mulec which ave Greo bythe shut 2, xww0e Usltdator fromewors ac programmer fre also pocsfble to treake our own qule wecall Ours own Implemented ule aca culow) ule. . > we wlll go for custo ruleg ,2f aball “the! | eae Sttechog -the vegurrement of a peg Tamme —> ¥Yf we want to create a eestom yule. then-the Bilosoing sleps are vegquired - D creake a cla and implementt thevale tmplemerialton fogéc 2) Contrgeue “rey class into vale daters 2m). Sth Some yuk, name. D> Applythe vulefor an tnpak element tn Arctron classname — Validation. xm]. —wealiog a Validator alate i 2 Guultan 9f we Wont-treveabe. any validalty clace phen Our clatt mutt or should can absvact bate clact called’ Feld Valicla tor Rupport Ly Tn-the Valiledor claw we need! to overnite. method Validate ms the fog fe yoquuregl —> field validodonlecpport 0 a clase (ier 20 com openmpaha af KWoreg + Validator, Unlfaledort . Pas (ope 9S O560c09000 9000 “Clats public aVelrdebsy Estkenols ; Field Valrdetor Gapport publre votd validate (Object 0 )-tbrows 1 £xce phon All piedelned ruled ate conf guinea 19 an um|-Fle called Va hedeterrtne} + —> Tf we wont to Conf gute. osx oon wule thio valtdatod sum! then we need to copy validator am} Ble into. clatter fleler of our wel applicatfon and ~men weneed ty add eValidator element fniy that om le valicladors. 109/ 4t-v types tab ys oalee . Afev> <[Hreld 5 mom elm > | : oO 27/06 la. Avrnotatfone Yaledatione sealed ° ——— eee So Sheatt a1", H we wont to apply annotations Validator i oO ~thery we need to ute-the annotations giver by coms epensynphonsy., ; Avore 2: Valtdator: annotations & + . oO —> if we apply volidatfon hough annotations then we, noneed te 2 Write AcHonclacename: —validalfon. wn | le - 0 0 —> To opply validations uring annclatons. for an actfon clase, OF Gmuttax weneed toadd (@atrdakon annotatton. > our AclPon clate re not vequived to extend fromthe hote clase Action L.ppore > @valrctot¥on annotatton Infirm Chul? aonbelier fhal-the. Vali detone ontnput the Applied using annotations, —> Wht le coppling annotalfont for Inpublyeld¢ inthe, Acttonclace tthe sunnullon watt be WF Hen at Lasdable Level ordteld level crak method Level. Exempley tf we voant to “Ppl vequtesting Ualiithion on cneme then we Can clo te fing of one eftne Prrowteg two ways, 4) (2) Valtchadion public clase LopinActon f FIELD. @ Reantred S09 vale dabey C Fy pe = Validate Type. Si ple , ineshage = ‘uname ff required! ) 4, prvete oat uname } } 2 YORE @utidatton o ublic clare hoginAch 0 Ps "4 nAct fon oO Pivabe Shfng uname; CXeoumel ing Valter ( 3 publre shin getuname C- 9 Tehurn name ; 9° fay pute void Seb Uname(Sh5n uname) wth? £. unarne =uname 5 4] a‘ —> while epplytn Val Fobetfon oteg annotations “The Bow meg Can be Sa attecliy or Fe ean be Taventon a vesource Bundle. 52 we want te get Kev mq. resource Bundle. then we peed 10 add a Patame ber chor Annotation called Key — Tf ‘the gfueo keye not avaSlable Jn-the. Bundle ren the default mg gen gn the wot be Consider. — > Tf we want to rhght “e Bundles 1 Steel. ther uy bundle should be Contegumed Into ™ Shute. popertfes fle! Qs af urshtt take Annotation and xml fle hak rst be Lonri- du. Gia van| Atle Posi xm! File 1 taken. =o Se Note:+ — TF we apply ualrdatton cern Anrokivon and alco ucta Xeni Fles then xm) validator ate console than Arnolotion —> TF we wSte ym! wltdalfon and Progromalte valtdalt on ther Prgremalte validation (09 consider sone preference, Order %¢ 1). Prgromalee 2): Declatalive (¥mi) 3)+ Annotation Stredf2x Jon tle st! hreoat there fn previous pages. NOE! 35 Amotattont, Ly type patameber vse fatte have 00 Ualeclationtype. tha 6 Ample ang -felef So thate 1f there valiclahion aule if a Common wle Then we Ue. = Type= ueltclec Honyhype « a ple tT the ayplted vale % pathtalay root shat Feld ther We Ute the 2 Types valioltorFype Field, Slob }2.0n Anterceptort In chute en 4c Replace ment of Request pote Or. Try Strudsaas —> An IntuCeptor Containe pre & post Proceesing Sewicet ate required, for en Acon(close). > Ain Intexceptor bythe Deftnatton Tt rapethe client requestend executes Some. prepocesting Qifcer and afterthat moves the. Conte! to an Action clact and after Action clase executed,and then again taesthe Conboll and axppliec post poraessing Setee ¢ ake capped for f- > An Interceptor Containe -the Rustes ate vecuded before of an Action clace Slared and abter the ertces are vequsred afterthe Prcbon classes. > In fen a RP car add Pre protetiog Susices add to an Acton cloact, Luk Recuestprovetior class aaldt ame fankees toatl Arc tions Commnonky 5€ ff not potstbk to add alttterent Seyutter to Atferent aeifone —> TO Overcome -the tors mechan%lam In rete 2.a Sdn Anterceptore, HC pordnle toadd aletferent Quteet to dthterent Action clatter —> In Shutter, the famewore hat Gren & Ange fitot predetined Interceptor. and all thete Inlerleptod ate Containe AHeren t Moves AEH cue secutoed fr Actione ~ If a Progrommw Wants to Create an Snteyceplot then Talo posibk. 096 Can call # cor Castor inter ceptor.” > aN predel trea) Interceptor ore given bay Male fome wore ate. Gorkgsred'n Bytt doleusl? yp). Problern or Drawback tnShuttaa woe got the Intevcep. °0909090000 Rloeleo te. 1 Le . FEES aa cent _ aid tete pone TE an wetfon clacevequived Gt mrultiple. rot ee . ee £0 add a muiliple foterceptoar to an Ackor EF mullp' Qn etecclded-theh when vequestl going , the. Gnterce plow ove execu Ley ce ptorf ato. tom ato Nand aftershe Acton clam exeeuked the intercep erected fy yeyese axder fron ntor. i Acton clacetnen fn shuit-700) — > FH we warttoadd anInterceptor to an C Shute Configatertfon file ). Weneed tacklan elemenent called i‘ fle. Linterceptor—vef > tothe Action In xm) frle peeves Zackon name = ogin® clagt= “Login Ac Hon" > [tacces.sipefrese We> <1ELUE Nome = "emer “y Hetlave ~Sepcfresutt > actions. — The above code %# conbywred iy Shute am) fle. ont. oO o —4 ol Strats 26 flow eecoceccec Ze if : e Prod uopoy op avg 5 ; s tal vogpom Gruss OU sapynoed por Fféf (UMM HS OUL TPPOT S9e] 7 § = rc Ae Sour SME Poo F272 0 hove, yuggem byes 530 Proeduoyagy “eh¢ 2 2 oe fg @ =F aod } ee pees % S32 euro 07 ZIENB—IE 2 g Qapwera = WB O47 FO Bursseoded our- unopoy noyaredyguayiy -F Cop? s y : Ce vaqped ag ; r TAPE 27 jrontoe ayesmpsuay pre sayealyd se7LLy PEF 2N-Op cig ' H cons YOnOR DU PUEPYROPS J0Up21009 FISTS s g 4 5 $235 ol] Gaeq >o iyi 33 a§2 3 3 3 CopmronuTucRzt oH 38 7 f & Q g aber | ake op @ [we snag oO o stepe:- Actfon tdentther tte Actonand $F acted’ trtecep tot and pavidet -thk bundle Information to Acton Snvocasion bye ae Ff Snvowec. 9 method. Hep g:- the ActPonfnvecation's Invoice C2 if edeeutes the aclolea intexceptot tom aton for Preprocesting Step 0! After PreProcersiogy the. Aogicimplemented| 9x Acton execubery 6 callecf Step ns. After Aelon, the Invore ¢) tt erecutes Interceptors 99 weverse over Frm ntor tor port-pmeettng. Step ms Action Invocation Retrans the Mog typeof vecult beck to AcKoofinx — ol eps: poze vehunt vesult baetto FilterDitpedehtr ~ PilterDepateher uf) vetun veut to Combeinen and Foalty- Step 146 Se Corteseen it Gnd AHL yecult hace 0 Conbpiler. 24) c6J20n oa a_Cuutom Tnberceptor:- Stead wor « fs huts 2 Frameworie hat abreadh qeon precdelned “intercept E Pot of-tne ome works, Meh pruider Common Brsttes Yeputced oy AHferale Aetionclastet created Wy thule pagrommers > Apert fom entitling Laterceptons a prgrammer Gan alie cate WE pon interceptor rE, tr Boe pres pest Procetcing Sirdees. > Ee promammer hat created AE Q29 interCepter “then we call as o Custorsy tnkere - . er ‘opto. o> ie Popammner Wautt to cveele a Cuttory Interceptor then there are two eeugs +to create a Csstorn Poterceptorc, 2). By Implemeatfog the class hor Tr terceplor Snterbace. 2). B erdag class fom o Bate clact calli) AachactZpoyO —Ceptor ‘ 98 > Fh Loter cepter Foterlace ¥1 Yenplemustedl “tren thetimee methode othe, - ntecfeze 2 need tobe Implomented50, Trslenclo# tmplementtig-ine © Interceptor ie. can extendethe MbshackInbeceplor , cota 36 can O create single abthect method of bose clase. o : oO EEO pe Myinteceplor Wwaplemale Tnterceptor oO i a puble void tnftes Ty P Srinp antertept CretionInvocaton tnuccatea) throws Kicepisg ty P votd oleshoye) ie a 2) p clase Mifickerceplor eatends Abthoctintere ptr P meg Intercept (Aekoninvecabion frvecalten Hwowws Fee pon t } — al pre detined fnteceplns ate confepanenl $9 heutt- delault-roml-Hle, Lo, vohen poe Include Chutt-cleferub.am! Into Our Adel Shubs wml fele ther we Con add all -thote Inter ceptor! aukomalteadly og Late. there. names, —> Bf and Cuttom toterceptor ereaked ‘then the programmer has to Configate the tnterceptor clace into Strat -Conktaetion tile C Strukfaml)~ — 70 nae an interceptor Ne meee) element catled Anbeceptor s. © > spose wauttoadd an vterdlelined tnterceptorthen Hark he ° interceptor must be Confused then fineed! tobe added tothe 0 Aretfon clase. 0 fovgcample}- Streets tm) : <[totoxceptorg > Lacon name = Mogin® classe “Leginfietion”S Alolescesntor ret name =“abe'}> result >fescrest Sepaty Hatlase.5y, hy Thee ‘inter ce plor # Lxeq] to 1 Tolcer Inter ce AEH Uted +0 prevent double patting ofa. fym to the Laver > thie toven Interceptor alloca pasr-stbe prin for only once tom the. Browaser Hye cheean 9¢ we. cltec a browser hace putin # We expat, fast the form then ihe toren intece ptr gies & result called trvaltd _ Can Aeplatt an enov pone rack, to-the bredser When the hrm tp 2 doulle potteol —? 7 ule oven fn ter ceptor for on PeMon clay thentre itoring. Charges cite vequired Inthe appln. ‘ . D- an-he Acp fmm wenead toadd atag Called £81 tolcen |>, 2). In Shute) we need t0 add totten interceptor brthe- Aekon clace, —> 3): weneed to contegure avttult Called — trvadid toren, Sokwompe: — fopsy.f “ivattesont es gin S-ep : elass =" Testfctfan" Aa © shterceptor—ve# name="efp AO pe Ty BM svesult ame =" tnveltdstocen" [Sexy Sep crs <[6: forms, =ote dacHons 2h toven interceptor H# allows the each Brwt to submit -the-lore for only onte means Ff werent ido ofoi| Qtomit the new dole Fareyine Lome Brower Tttsnot portible. onthe Browler ft 46 allows Ahe neud data neo me Wnot allowed: ates ativertty Open the togin Peege by onthe. Some Browser ish od cuc ting baothutton ofthe Borwier “then alto toteen Inter ce py doesnot axllousthe 40 Lalemit thetorm once again hom Ine broom. > At the Ahst-time a fom % submited atowen not rol alyn cept veguest and Lame Inowwter +4 a bunt BEE itmne posted na, toren value witt be fut os nail, &F bowen value WU null thery foicen, @nteyceptor % Bent fertpat the fim ie olowtole. Ported and Foalig wet € ovetutt callecl — tmvalid. Loe, cence!) 999909390900 5 990003900 Direc Shuctuwre} freien Example os ra —sfaginactfon Save pace nr J Heb.am | }—} clatter L_sebvelase Pht am) Lp oo i [> Aeginiep t P Succes 3p i [> bflare Sep ‘ ? Sony Sep. Note:- by Sburce Cocke. Please veer Honclext. ‘Thu: 2 Tre Interceptor ! 3e]o6 j2on, TREE interceptor 4s ord to calaclate -the Cree Hon time of an Action clase, F Hecan manuvally calulate the ereeution-tme of an petion by talctn System deme % milliseconds before the. Logic of ererwbe 098 abso after” execution of fn, fe § we can Hinel dt Hfovence blo-the aiming tie +Sill prode us the time takes to eaccute the Aoate In MPliiGecends. > Fotteach of Manually Calatlates the enenth'on Ume, we can ee Her Fnterceptor. and FooFl! cad “h execution Hime of an feHon and Pots the Hime taken on Console &the frm of Mtl’ Second — > FHhe Hmev ‘Anterceptrte added asa frst inter proriothe clase then mer tnterceptor Colette s the execution tye of Action class and Combinelp wlth other ilerceplof ate added to tt. & Y Limer fnter ceptor &t adcled to en Lait tntenceptor t0 an pe ton clace REN the Boren Sabecnantar atchctor tha mat. dha evenibon tre ol an Acton clacc. ” Example! > Zac¥on Name="test” clace= "Tectaeton"s Linker Ceptor —veF name = *Hmer"/s [ouceest op ke NOE pleate reder-tond oot pogrom toy hy = I exeeate ond wot Cet) exe cfind Matt: Gua Sa othe Antexceplov 40 ured to olfcploy or to Lend & wosltn: pege hace tothe cltent Browler, we 24x when everthe eneartor of an Acton class taping Some feng petod of time. SS bor a gien Request, San Action class fetalcing a ‘long perdod of time tor protesting then the elfent or endewr qut a2 Confubion thet tohether the Requetl 2% processing at Len ornot- > Fn orderto Overcome -the Confolfon , we an pul a. toasting pege on to-the cltenk Brouxer enc) shen ever the prcecting © completed the wattin pesge vofll be veplacee| sth the Retult- qetuined by the Aelfon. f > In asder toput wouPling Paye on tothe Brovster we need toadd tite execAndroost interceptor to-the Acton Clete. Be ce eae eee fine cree renee Retfon clatt pr a beet ground procett and recall vekuns a vesult called Lest. yoheneuey an Acton ir completed -ther the Week Result will be veplced 12th the Ketull returned tyre Aetion Class. Exam ple}. a 3000 <|putam> 29300090400 4G) struts. 29-Jun-14 3:26 PM 2 shine 420 +0) 122
423
124 fiter> etrata2effiter-name> org.apache.strute2.dispatchor FilterDispatcheréffilter-élass> struts2 ? -struts xml 440. 4 141 144 445. 147 «action name="verify” class="LoginAction"> 148 /successjsp 148, /login jsp 150 151 152 153 LoginAction java. 154 import com.opensymphony xwork2.ActionSupport; 185 import com.opensymphony.xwork2.validator annotations.’ 158 @Validation 187 public class LoginAction extends ArtionSupport 198 { 458 private String uname; 160 private int age 381 @intRangeFietd) message" mi public int getage() { return age; ‘age.wrong" message="default ) public void setAgetint age) { this.age = age; y @RequiredFieidvalidator(type=ValidatorType.SIMPLE,message="uname required” key="uname.wrong”) public Steing getUnsme() { return uname; public void setUname(String uname) { Page 3 of 7 © © west» name at sont > roodl 409 ° Lrecudt name csfuceett's, crest Sep Jreault > 0 | emer Sty breslt >. 9 factton > Note for Sauce cade please ReferHand Books pageno~ lot. avpin—y 0 >) 4). Legg ev Snter ceptor ~ a) agg inter cep 9 the Lagger concept 40 related to dogaf Oy ante Yoterce plor to ted to odd seed fect lity to an Action clase fo Shutsg. —> Et we. vont monuuallig add an "gf then Weneed to Create a Agger abfect and weneed to add the deg ttatemeit manuoabeg ‘oko the Action clase. fo — > Inttead of- Manually gk Aeged wecan qe tet faaslty by aaa fegger interceptor. — hen ever tne taker ceptor fr odd ed then the fo9 State mentt cue. tnted on Swen Cenfole- ene alto the “ef Stmif ate ed Yecoreled Into tog le ot the Raver. Example} Arevalt> [cuceett Sep efrecult > [actions » ee btloing Fromple containg an eer cletined Interceptor called ema 3 Shatt.am| > Son % 2 2 iS a 5 =e : 8 a} fox ais ‘tay ° <10 taglth prebactS” oe ‘[imate-toger) > °o cbody> n [" interceptor name =" abe clas 2 mypitrceptor' | [Sotenceptor-s> *vesly” elasr =LoginActin's Frberaeptor—vel name 2" abe"| s Sresalt name w= Gacee sts [Sucve ss Sp elresatt> factions [pretcage> : Notei- tohen ever multiple Interceptors ate vecutred for multiple Aclencly ~ then Instead of We can create a Fook of ‘interceptor We cen add that nteceptort a Slack tv each Action clace fetrempler Strats.) Artenceptou> ~~ ‘mapinkerceplory") S clase = Tett Action" > Bock) "4, |arceees Aup ' , ult > es pres facton> Ainterceplor—ret name - “yb [fuccey Sop ¢ i welt > <|actfon >» Tigh th Stetr2-x. ae eee > Fn Struts Framersore, wehave $hull Lippert for Tien , oapply Zien, We need to create riuttple bundles amd roemneed t0.floreau apese bundles at classes fololer. hatch Aelelor > wlfle oreating tthe. Bund'k. the remng, vole te" bate name — Le~ ce. / properttec > County code 1 optional Poe clonok poulde decgunge code alecthes the bundle te treated at engltth ur bundle. 593990590001 cm) — > In Crttan batename Can be ang name , bak tn theuf 96% the bate ' name must be ppplicalohRRetourtes « > In Srutte.x ype bavename Should be ov canbe Conligurited ether An “Struts. properties file or TnShukt.am) fle > AF you vaont 46 only a bundle Chet.am) fle then woe need ta edd < Conttanty element forfxample}- Thtne Acton claues of Shutsan 100 clonot veguive to add ayy Aevacode to gel Lignl Lecture . O — wpe can chemge thé Labele.-tom’ one longunge w othurlan ° etthor by ofing Browser Fngltth <|siay. Note‘: Tor Surce coche please Refer Hand book pogeno 193 appln nog. a en ee on 0% 2011. Teles Frame wot, in Sats. Tiles prngracoring $n Smut ant other, developing a Shuts appln, # multiple pager ate Palowsing Sst typed prarintatten Lovyeut ten wcleedet sone Creating mutliple Paget Sretttoluadly 1th the fame Fructu. we cay Use tree hamevaos for the cleoelepment of the prefentation pager. > In Gust g.n tiles Lamewory % nevoly acleled, 0 the tles Lage ale aperately gery AIS Ganclar vet and prefs —> The tag lt oltective Reg utred inczep toote éler tags In AHeeathax we KO tagth ote" betp iff Hes. apache 20g ] tage Hele” prefice Wel tels bfles” A > > Fy Tle Frome work wre create a. layout Sep and the foujout page ty 4y, cuted nto all pretentation pacer Sothal cull pager ate Irina & bectine ‘Sattler type of presbtelon Orietve. (> Th Siratt 2,0 enable les Lome wor, Metis Change cate Teapived $n the applitation, Tile Shute PepareArdrocentefiler 4s dead) Aeutt-am) Heto. Phute 214 " 5r) Shut€ 2.1, 2.2 erthere fs 0 nclonprory § Conkipse Konstan per, ep 3: peline an uni tile called Fle c.am] Conprame «xl )- and te \ Sontaing the ler defnabons, Ote:- > Tn Shtla0 the Filter thot ft con Figutced into woebam) 46 Filter Picpotchors, but Shetfe.) ver sfon FiltesDitpaser 2p replaced ay Sieusts Pre pus Pndbiioute Fleer, a 39990, 273 2 oO y,ood000a90 00 —> the Ltferente bekween the filter Ditpaleher and Guus PepoureetP re Execute Filter ty FtlterDitpadcher fhternally helper clorstes ae uted Called Better Paoay and Cob usatioN = ager: but shuts Prepared Pind Excecste Frlter FALL performs the. Confea wtobten Reacting and Kxcuking . femesnt SCnitsPrepase, Prdeceate filter doen't xe coy helpertleettet -thote are Aetlonproey ane! Conbtgutetionvan ager > polsle voeridag Lfth ler Im Suutta.n al) the pretentahon tfles ' delinattons cae Grofigused fnto lee2m) . the aolventage of Confequting Into ttlec.am| tile fe, Thles inheattence tt Sepported « femeant ene dlefinatfon extents from onther alelinabion. Note:- ——" Thee unl ttle canbe Stored efther tn wee-INt Solder or Gin clactes folder —> In genuad we Gore lec amifle Into wEegTMP Polder. i I | agooccccecc ° “Gax 5 : BRext ‘Example on using struts2 Action class with POJO class, ‘input sp. <%@ taglib uri="istruts-tags" profix="s" %> User Details<title> <thead> <body> <siform action="verify” > 9" fabet="Usor Name" > "label="Age" > ‘usor.gonder*label="Gonder" lst="(M,F')" > <s:checkboxlist namo="user-hobby” labol="Hobby” list="CMusic'Art'Dane 29-Jun-11 9:25 PM <s:soloct name="user.country" lahel="Country” list="{‘Select’ india’ USA’ France’, “Spain” > <s:submit > <is:form> <Ibody> <<thtmi> <filter-name> struts2 <fitter-name> <filter-class> org.apache.struts2.dispatcher FilterDispatcher<ifilterclass> <ifiter <filter-mapping> <filter-name> struts? </filter-name> <url-pattern>!"<lurl-pattern> <ffilter-mapping> <<Iweb-app> <IDOCTYPE struts PUBLIC Apache Software FoundationliDYD Struts Canfiguration 2.0//EN" ‘http:lstruts, apache.org/dtds/steuts.2.0.dtd"> <package name="pack!" extends="struts-default”> action name="verify” class="UserAction”> <result name="success"> Isuccess.jsp <Iresult> <laction> <Ipackage> ‘<istruts> $807 jae public class User ( private String name; private int age; private String gander; private Steingi] hobby; private String country; public String getName) { return name; public void setName(String name) { this.name = name; 29sJun-t4 3:28 PI 00 M 60 public vold sotAge(int ag6) { 61 this.age= age; a2 3 63 public String getGendor( { 64 return gonder; 6) 66 public void sotGender(String gendor) ¢ 67 this.gender= gender; ew 69 public StringD] getHobby() { 70 ature bobby; moo) 72 public void setHobby(Stéingl] hobby) { 73 this.hobby = hobby; may 75 public String getCountry() { 76 return country; 7 78 ‘ube void satCountry(String country ( publ clase Userction ( User user: Pubic Useraction) ( ‘System out printin( "default constructor’) Public String execute) { return ) public User getUser() { return user, y ‘public vald eetUser(Ueer user) { this.user = user } success jsp <%@ taglib uri="/struts-tags” profix="s" %> <html> <head> <meta ttp-equive"Content-Type” content="text/html; charset=UTE-8"> title> User Details<ititle> <Inead> <body> <h2>User Datalle<th2> <hr> User Name :<s:property value="user.name" /><br> ‘Age :<S:property value="user.age" /><br> Gonder :<s:property value="user.gender"!> <br> Hobbies :<s:property value="user.hobby" ><br> County :<s:property value="user.country” /><br> <body> -<thtmi> _Example on Annotations validation —login.jsp. Se tapi prefix uri="struts-tags" %> Page 2 of7 o 909000000 a same Example! "The following example is to demonstrate how fo create a user defiaed front controller servlet, 5 = login tet ~ 6 center> 7. Storm action="sathya.do"> Enter Name : <inpun typesieat nam 9 0 <input type=submit value="click"> “<Sform> meeseeee pruuet a 13 <center> 14 <form action="prod.do"> 15 Enter productid: <input typentext name="pI"> <br> UB <input typesubmit value="elick"> 17 </form> 18 <center> ‘succes jsp 20 <% 21 out.printin("his isa success page"); reisp ~ tin("this isa failure page"), seria impor lavaxaenen impor javecserlethip*; ‘ impor ara a impor javautil; py public cas eerie enends Hupseret 1 oe Map mi Public oi init(ServetConif hig ServletExceton { m = new HashMap();, m.put("/sathya.do" iplel()); -m.put("/prod.do' p20); ) i Ld ‘bli vod doGerttdeSerdistlequest req HetpServetRespanse res) throws ServltExegylghlOEXeeption t a $F Soles st = sampletos coe OF Galt sthandlel eases); a se" Sample? s2 = (Samaple2)o; result = shhandle2(req,tes); } RequestDispatcher rd = req.getRequestDispatcher(resule+"jsp"); re,forward(req,tes); Satya Technologies G1 enenseeneemesmple ja 62 import javax.servlethtp.*: 63 public class Sample! at 6 | ust Sing handel (epServeReqvet req dSemetespose re) & 68 iffstr.equals(""sathya")) — $ cm seo fo ' 1 else ta ® 4 -Sample2,ja 75. impor javax serletntp 76 public class Sample2 CS ( n 78 public String handle2(tittpServietRequest tse 19 1 80 gs *® String str= req.getParameter("p!" a1 ‘iff'str.equals("p123")) % 2 retum“stccess: al 87 se xen _— 8B <umi version="L.0" encoding="UTF- 89 90 95 <load-on-startup> 1</load-on-starti fi ae eer rs 101 <eb-app> td 102 103 eee: 104 * 105 106 i 107 108 m 109 Exampl® 110 te following plication isto do login authentication using srus without programmatic validation of user input hy i orgltags-huml" prfix="himl" > US <%6@ taglib uri=*hup//sutsapache.orghtags-bean" prefix="bean" %> 116 <humlform action=*veriy.do"> 117 Username : <html:text propery"uname"”> <br> 118 Password : <html:password property="pwd"/><br> 119 <bumlsubmit value="elik> 120_<fumisform> RG eS 2 134 BS 136 137 138 143 suceess.isp out printing” <tt> Login Success...</ht>"), failure isp cvt.primtn(” chI> Login Failed...<n1>"); we LLoginForm jav import javax servlet http HitoServterRe public class LoginForm extends ActionForm { private String ueame; private Siring pwd; public String getLInanse) { return uname; } public void setUname(String uname) { ‘hisamame = uname; } public String getPwai) { return pwd; ) public void setPwa(String pwd) { this.pwd = pwd import javaxserviet htp* public class LoginAction extends Action t public ActionForward execut t LoginForm If tLoginromyform: 2 String u= IfgetUnameQ; jals("sathy@")) rd("success"), 1 <Mload-on-startup> <j SPatamname> config </param-name> age WED: me intebaram> <leerve> <<servlet-mapping? ~ervietname> sction <servletname> <urlpatter> * do <Jur-ptter> <Iserviet-mapping> <fweb-app> apache struts.action.ActionServlet</servlet-class> thus “Tehvolo ics Iai ~ struts-config.xm 32 1g <IDOCTYPE struts-config PUBLIC 184 ‘itApache Software Foundation/DTD Struts Confieuration |.3//EN" 185 "nuyp//sicuts apache org/dtds/steuts-canfig.|_3.dtd"> 186 ? 187 «struts-config> 3 188 <form-beans> 189 <form-bean name="fmi" type="LogiaForm” > 190. </fore-beans> 192 <action path="/verify” type="LoginAction" name="fraal"> 193 forward name="success" path~"/successjsp"> 194 forward name="feilare” path="“feiture sp"?> 195 <action> 196 <laction-mappings> 197 <istruts-config> 198 * 199 ig 30 301 Example 3 302. "The following example to demonstrate Login Autheneaton jag programmatic validation of user in 203 ae 308 205 - 206 pistes anache-orsvtags-him!™ prefix="himl" %> 207 <2 tagib xim"haspulens apache orpagsbean” prefixe”bean” %> 208 <himberrors/> } 209 <himl:form action="verify.do"> 210 <besn:message keye"enterses"/> + <hirltest 6"? <himerors property~"uname"’> <br> proper 211 <bean:message key~"enter pwd"”> : <huml:pagh ry="pwa"/> <htmlcerrors property="pwid" <hr> 232 <huml:submit value="click"> 213 <thembsform> 216 out.printin("sh1> Login Success...</h¥" 218 fellune sp —ee—— us i("<hi> Log Safer Pom, 22 oh ‘a sagt ee oe 225. public cass Log ti RetonFom 226 { 2 edge z Bee... 230 name; au “an 232 publi void setUname(String uname) ( Bs sis.uname = unarne; zs 235 public String getPw6Q { 236 return pwd 231 } 238 public void setPwd{ String pwd) { Be thispwd = pwd } { Satya Tetvele 1241 pubic va ese Acton Mapping mapping, HupSertetRequest eq) Pet | 38 bee aS 246 public ActionErorsvaldate(ActionNapping mapping, HtpSerletRequest eq) i 247 t 248 ActionErrors aes =new ActionErrors(); a 249 if" equals(uname)fiuname.length()==0) 2 Astiontessage el new Action essageuse ron 282 aesadd("uname” ay; } 284 5 aquals(pdy}pwd lengthy)~=0) t 256 ActionMessage €2 = new ActionMessage("pwd.vrong"); 237 acs.add("pwd",e2);, } 259 return aes; copinAction java : 263. impor orpapachestrte action + 264 impor javax servlet hep * 265 public class LoginAction extends Action 266 { wg te, 267 public ActionForward execute(ActionMapping sgPPiggActonronm form,HttpServletRequest req, HttpServietR: 28 269 ‘LoginForm If =(LoginForm)form; % ne String u=igetUnamed ey 2 String p= IrgetP e m iMuequals("sathya" Sp couats("sathya")) 23 return ing. finde rd( "sides; 275 retum mapping.findForwat pilure"); 26) webaanl- 29. <yebapp> 280. <gervier> 281 ““aertetname> action cidade 22 263 284 285 286 287 288 269° <servlefn 290 servlet-jame> action </servlet-name> 2a cee + do <lud-patern> 3 eae 294 onthe struts-config xml 295. <taml yersion="1.0* encoding="ISO-B859-1" > 296 <{DOCTYPE struts-config PUBLIC 291 “Apache Software Foundation//DTD Struts Configuration 1.3//8N" 298 rlsteuts apache.org/dtds/struts-config 1 3.did"> 299 <steutscontig> 300 <form-beans> <servletclass> org. uts action. ActionServlet</servlet-class> ‘sform-bean ame Sa chneloyies, fami" type="LogiaFoem"!> “Wormn-veans> mappings ‘action path="/verify" type=*LoginAction” neme="tem\" validate"true” input="Vlogin jsp"> ‘forward name~"suecess” path="/success jp" forward neme>"failure” path "/filure,jsp'> <laction> action <message-resources. parameter="sathya" > <Istruts-config> enter pad=Password usec wrong-Username is required pwd.wrong=Possword is required ‘netau/struts apache, org/tags-htm|t Se@ talib uric" hades apache reas ea > Strano Simioresedonttestdo'> $ <bean:message Ke) ‘yeam message key"eater.sal'/> : shemlcext property="esal <<himni-submit values"elick"> " ta form <% Object o = request gerAtwititesiBSnus"); Integer i» Gnteges}o; int r= LintValuel); a cup neg = ~ inopor ong apache ton. Example 4 -mappings> we ‘enter name> <himbteA propery name" <br> <br> svceesejsp ienpon javaxtggivietiyn.*; public class SatAigyop Bxtends Action es gobiellbsomvar xecue(aconMapeing mopping AcionFom fom. HipSerleReque eg tServeRespo 2 pa iilRctionForm af ={(DynaA ctionForm)form: “String en = (String) of get(*ename"); oa? { ActionMessage él=new _ActionMessage('sah.invalid™d)y ° Double d= (Double) df ger(“esal"); double s= d.doubleVatuer), ActionErrors aes ~ new ActionErvors(); ifs > 8000) aesadd(“errl”,2l); y aE eee I 362 363 3st 36s 366 367 302 398 400 401 Re § Sathya Technologies. IM! aes isEmpty) saveEors(req,tes) iffs<* 8000) Integer jl = new Integert S00); req.setadtribute("bonus",i!); «eturn mapping. findForward("success” _ wel. <web-app> : ssenvie> Moye -<servletoname> action <Iservlet-name> <servletclass> org apache strus.action.ActionServlet</servlet- class <load-on-startup> 1 <load-on-startup> ae <init-param> <param-name> config </param-name> % <param-value> /WEB-INF/struts-config.xml </param-value> <Jinitparam> </servlet> <servletmapping> <urlpatiern> *.do </url-patiern> <iservletmapping> <webvapp> ~spus-config.xml—~ ‘<2xm} versior="1.0" encoding™"ISO-8859-1" ?: <IDOCTYPE struts-config PUBLIC = “ispache Software Foundation/DTD. Se i chun Laven" <struts-config> £ -<formbeans> . “<form-bean name="f1" type="arg.apachesthits.action, DynaActionForm"> <form-property name="name” iype="javalang String"> <form property name="estltype="java lang Dovble"”> <Jform-bear> ee formebeans> : <action-mappings> se yore ‘Sat sction"> "ih"successisp"> patente” romney properties mer aaines Exp ame net sal-tinp Selary invalid=U entered (0) slay, is not valid to get bonus 2 damarstcedtyy oltrplouyrthe velues erennome uson Example "The following example i © apply equiced.minlength, maxtength and mask rules onthe user input. On uname property required,minlength,maxlengtt On pwd. property * required,mask ce ke iy 49 432 33 465 466 login jsp 2% <¥o@ taglib uri="hitp/siuts apache.orgiiags-hima!" prefix=" im) <24@ lib urin"hups/ectsapacheorghags-bean" prefixes schuml:him’> —< pémal: e209 p> <huml:form action="valid.do"> <bean:message key="input.user"/> : <him):text property="uname"?> <br> -<bean:message keY="input.pwa"/> : <huml:passwor8 propery" pwd" > <br> <<html:submit value="login"”> ~ Inerl:form> ~ MLoginForm java impor org-apache struts. validator. V public class LoginForm extends ValidatorForm t private Sting. uname,pwd: public String getPwa) { “ retum po public void setPwalString pwd) { this:pwd = pods } rom) public String getUname() { VW) ‘return name; ! ? public void setUname(String uname) { ‘his uname = uname: : ) i ; <a ‘MLoginAction java i impor orBapache struts acti } impor javax servlet np, ‘public class LoginAction Se ft f pul Aon Pa ge testo atom entra a nl we tn <websspp> <servler ‘<serv\etiname> action <serviet-name> fet-class> org.apache.struts.action.ActionServlet</servlet-class> -<load-on-startup> 1 </load-or-startup> <<init-param> I <<patam-narne> config <Iparam-name> <<patam-value> ‘WEB-INF/struts-config.xmnl <Iparam-value> i <finit-param> serve rd("success") 30 se Says Teholonies au! we 483 an 485 486 487 488 489 490 492 493 494 495 496 497 498 499 00 Sor 503, 303 304 505 307 508 509 510 su 512 53 314 3s 316 517 518 519 520 521 522 523 524 525 526 527 528 529 330 33 532 333 534 535 536 537 538 539 540 servlet mapping> servlet-name> action <iservietname> urlpattem> * do </url-pattern> </serviet-mappiig> <IDOCTYPE stuts-config PUBLIC ‘uupzcsteussapache ares syurs-contig |_idid”> <sirus-contig> ‘form-beans> <form-bean name="fim!" typ <lform-beans> <action-mappings> <action path="/alid” same="fent" type="LoginAction" valdate="iroe" input="/iogin)sp™> <forward name="success” path="/success,jsp"> <feation> <Jaction-mappings> LP weet integiabe 0° Foe: ‘LoginForm"> smessage-resources parameter="sathya"?> «plug-in className="org apache struts.validator.ValidatorPlugin"> “setpropery property="pathnames valu 32 struts validatorvalidstar- les xml: WEB-INF/validasion nual’ pivgein <<istrus-config> validation xral g ieee soi SOOONTTE mean optic ae nee Suleiman see earch enn argh eyeing arg! key="S(var:minlength)*. name="minlength” resource="alse"/> tecltoy Rebivetrg Lyasth SE SER cmon enmtertee Fweder Rebivetrg erie <var> «, Value Sernanganl ream Stared evar Sao tee oa evan idngth</ver-name> eval 10 </var-value> an cate <field property="pwd" depends~"required,mask"> “<magzhame="nnask" key**mesmask'?> -<afg0 eye"inputpwd"”> evap <var-name>mask</var-name> <vat-value>YA-Z]{2}[0-z}*[0-9]8-Mvar-value> iar <file> tor 31 Says Teno st 2 543 Sad S45 546 347 543 549 sso 333 534 555 356 337 Sitorin-validation> sathya. properties assword certors.required=(0} is required errors minle gth=(0} should contain atleast {1} characters errors. maxleneth={0} shold not exs22:! 1 cheer <%@ taglib uri= apply date rule hutpu/struts apache ore/tege-bean’ prefix: <himl:errors > <shiml:form ‘beaniessage key="input date" + <htmltextproperty="dob"/><bes” ‘ction="something.do"> <intnsubmit value=*click'"> -<Jhtm:form> snansnnmnnasuiccess jsp % out.printin("Success") befor javs impor org.apache struts.validator.ValidatotForm; "> public class { private abcform extends ValidatorForm String dob; et Public String getDobt) { return do: ) Public void setDob(String dob) { this.dob , lob; "====abcaction java====" ‘isvport org.apache struts action. import javax.servlet.ntp.*; 3. public class { public abeactionextends.Action Acti 3g-findForward( “succes <servie> «<serviet-name> action </servlet-name> <servletclass> org.apache.struts.action.ActionServlet</servlet-lass> <load-on-startup> | </load-on-startup> <init-param> <param ame> config </param-name> tpv/steuts apache orgtags-himl" prefix="htmt bean" >, *n, >nforiard exeite(ActionMapping mapping. ActionForm form.HpServletRequesteq,HipSer a < . Says Techpolegies 601 <param-value> /WEB-INFistruts-config.xml s/param-value> 602 <Finiteparam> 603 <servlet> 604 <gervletsmapping> 605 le-name> action </servletsnaine™ 606 <urlepattern> *.do </url-pattern> 607 <servlet-mapping> 608 </web-app> 09 vestruts-config,xml=s Get DUCTS PE steuts-contig PUBLIC 612 Apache Software Foundation!/DD Sirus Configuration 1 3/EN" 613 “hupi//steuts apache ora/didy/struts-config | 3.dtd"> 614 <strus-config> 61S <form-beans> 616 <form-bean name="fimi" type" 617 </form-beans> 618 <ection-meppings> 619 <action path="/something” name="fern!" type="abcaction" validate="true" input="Venterjsp"> 620 <forward name="success" path="/success,jsp"”> : 621 </eetion> 22 <lagtioe-mappings> 623, <message-resources parameter="sathya"/> 24 <plugrinclassName="org spache.strus validator Validasorlugln™> 825 sset-property propeny="patnnames* 626 value="/arg/apache!strus/validatorvaliggr-rules.xml/ WEB-INF/vatidation xml" 627 <Iplugein> 628 <struts-config> 629 smeeaanmmmemevalidation xm] frm 630 <Tarversion="1.0" encoding="ISO-BES9-1" 2 7 631 <IDOCTYPE form-validation PUBLIC 632 *W/Apache Software Foundation//DTD Commons Validator B 3 633 "hutpsjakartagpache cre/commonsydtds/validator | 3_ 0.0 634 <1~ yalidation.aml > 635. <Corcavalidation> 636 <formset> 637 <font name="fem1"> 638 <field propeny="dob 639 epends="requiredidated> 640 <arg0key="inputdate™ 61 wap *, 62 sme> detePattemsivatename> 63 <vavahueddMeniryeivarvelue> ws 644 <iva> 645 tfeld> 1650 _input.date=Dateiof Birth 651 _errorszequired™(0} is required 652 < erofS.daté(0} isnot a valid date 658 636 eee tnennenncn 637 Ths following application is to create an user-defined validation rule and to apply it form input A Satya Technologies 661 <Q caglid-usi="intp.isteus apache orgitags-bes" prefixe"bean!™ 26> | 662 <Q taglib vri="Itpvisieuts apache ose/tags-iyl" prefix= "him" > 663. <tumiertorsi> 664 <himiform action="testing.do"> 668 <beansmescage key="ingut phone”’> : <hum-text propery") he 666 <humlsubmit value="click"> . 867 <fhmform> é 08 uo2e88p ~ 669 <% outprintin("<hl> Success </hi: i 670 failure,isp ~ 671 oe ty et : 672g orapuce srs iaor Valder, ee 674 public class myform extends ValidaorForm asf 616 private String; o ; H 617 public String getT1G ¢ , 78 return 1; * oo) 680 public void setT¥(String ) { ( 681 thisat th; r a2} 63 oa myscton jv 685. impor orgapache sus action” &6 import javax servisxbip.“; : 687 public lags myaetion extends Action % 88 i ey 639 public ActionForward execute ActionMapping ee of 691 retum mapping findFonvara( "success", 2H ! 692 63 698 VE ator aa ter “anpor or apache. commons. validata impor org apache.struts.validata.*; 698 impor org apache struts actions, 9 impor javaxserviechtip*; 2 lass myalidator © 702 public static boolean validatePhone( Object o,ValidatorAstion va,Fiekd fActionMessages errors, Validator v,Hp® 703 {fet katy 704 String sw" Validators getValueAsSting(o,£gePropeny()) 705 shar ehis[) =sttoChdrArray(), 706 int epuntmp, chow C11 707 foriitigg; Kohestengih; ++) chat ¢* 708 te prtespaoe C09) 708 PiRCaracecisdigi(enrsiDy Fay, 0 2 no count ae(etaxe® le mM oN se HE ak y ‘ nz (eount 10) Oe cent m ( e 3 tid enon ata key Ress hse. ns return false; wa10 64 c= my nt (get 7 ase , 18 return trues salutes, m9} Jetse £ - oo vant add (Sa epicesre) Re@one’ mab ltee area OT ADS Freer Orin Late, Respa Hepsi Saryyn Tithnolonies BS 736 BI 28 p 740 7a 782 18 146 147 138 19 150 151 152 153 154 755, 156 187 158 139 760 761 182 763 ™m 7 na 778 76 ™ 78 79 780 ~ web.xml = soe else <?xml version="1.0" encoding : <IDOCTYPE webapp PUBLIC yobs bUC ‘Sun Microsystems, nc./DTD Web Application 2.3/EN" Tgp: java sun com‘didiwvebsapp_2 3d yt <sveb-app> <serviet> servlet name>action</servet-name> <servie-class>org.apache struts action.ActionServlete’serviet- class ~<param-name>config-/param-name> <param-value>/WEB-INFistruts-config.xml</psram-value> ‘<ipit-parer> i <load-on-startup>2<dload-on-stertup> <iserylen> ie * <!-~ Standard Action Servlet Mapping > s <<servletsmapping> Me, Ee <servletsname>action</servie-name> <url-pattern>*.do</url-pattern> ‘serviet-mapping> « -<iweb-app> + struts-config xm <Paml version="1.0" encoding="is0-8859-1 DOCTYFE stuts-contig PLBLI a Apache Sofware Foundation/OTD Suuts Configurations] 3//EN" utp/isiruts apache org/dtds/strute et <siruts-conti is <form-beans> : <form-bean name="frm!" typ </form-beans> <action-mappings> “tein aesing? rome" pe Hagen valiate=truenpr=inptjon> ‘forward name="success” pat jsp <action> . laction-mappings> % <message-resources parameter="app"?> <plugsin className~"org apaghiegrosaliatoeValdatorPughn'> <setepropery property=paihfidins" aligatoerules xml, jation.xml"/> <Iplugein> “<struts-config> Bog encoding=180-€859-1" il pipe epee oe “arg ey input.phone"/> <forn-validation> - enw Prop ete gennmnnnn input,phone=phone no cerrors.phone™{0} is not correct 35 aks Min Say Tehyeleuies 781 "a2 583 oy 785 786 788 927 2 830 BI 832! 833 834 835, 836 837 38 839 840 errors requted{0) is mandatory ‘The following example is based on DispatehAction un uu stews apache orgytags-hum!" prefix=*htm!" %> <%4i@, aglib usi="bxpulstruis apache org/tags-bean" prefix"bean" %> ‘<html: form action="dispatch do"> Deptno : <html:text property="éno"/><br> Order: <html:select propety="si"> <<him:option _value>"enamesAscending”> Ascendinge/tasal:option> -<html:option value="enamesDescending">Descending</huml:option> <fhtetselect> <br><br> -<buml:submit value#*cli numsform> ; ‘<14@ page import="java.util.*,packl.*” %6> % Object o ~ request gerartribute("veseit") ArrayList al =(array iso: 2 erator te tert, te whileGtsbasexa) { employee © =(employee)itnext(); out printings getEmpnaQ" —"re-getfname()*" "+e.g@Sal(); ‘out printin("<be>");, eminem Meh ‘package pack; public class employee { Sint empno; String ename; double sal; ppablic ira getmpnc return empno: } public void s pro) { thi ‘public void serSel(double sal) { this.sal = sal; } } package pack!; —dispatehform rem z os Sathya “Teehnoleyies S41 import org apache struts action ActionForm; 342 public clas dispachform extends ActionForm aa B44 inc dno; 4S Sting St; 846° public ine gerDno4) ( f* w ‘etre 2 ue) wh BA pubtic void serDnofinr de 1 i) 852 public Sting gotS1 ( ~~ | 83 retum sis, | ase} 835 public void setS!(String s1) { : 356 this] 315 a O 358) 859. creeennnene—nispction jv 860 package packl; G1 import org apache.struts actions. DispatchAction; 862 import orgapache.struts.action.*; By, ec? 862 impor juvex servlet htip.*; 864 impor java.sql.* SoS. impeneveut% 866 public class dispection extends DispatchAction > j 867 868 | conestion sommnt | 369i Canrestioneiand 870 { | 871 ty Fae ' a7 { j a3 Class forName(*sun jbo: sap hee: wr cone Dna on itodutyaScot igs 875 t 876 catch(Bxception €){ } m raimemn mm) 393i vance 880 t os t 1 engi aX | put lon? Ehvard enamesscending(ActionMapping mapping,ActionForm form,HttpServletRequest req, HitpSe { ion con = getconQ; ssagitlfcform dt ~(dispatchform)forn, td = dt getDno(); _Bisterem s1= con.creaeStaterentO); | 894 ArrayList al = new AreayListO 395 ResultSet rs = stexecuteQuen( select empno.ename,sl from emp where depino="'d+" order by enante"); i a9 while(rsnex() | 897 ( | age cemployee el=new employeed; I 899, el.setEmpno(ts.getint(1)); 5900 el setBname(rs getSting(2); ve 901 el. stsal(s getDouble()) : 902 suaaicel i 903 } 508 CloseCannetion): 905 req seiAtibute( "eau 906 ‘return mapping findF orward("“success"); oo) bet” ; { 903 public ActionForward enarnesDescending( Action Mapping mapping AstionForm form itggeTE Regs 909 { . ai saspaehign df “dispatch form; se? 912 ine d = df.getDno(); te 93 ‘Statement st = con.createStatement(); 914 ArrayList al = new ArrayList(); as ReeutSet s = stexecureQuery(slea empnoname st from emp Pt orderbyena 16 siile(snext0) 37 i aig employee ei=new employee a9 eh setBmpno(rs.getint(1}) 920 el.setEname(rs.getString(2) 1 eh setSel(rs.getDouble());, 922 al.add(el); 923 4 924 closeConnection(); os Seq setatbuteestt al 226 retum mapping findForwara‘suxces oe 928 ) 929} $3) 0 x — 931 Seba 7 32 pence tis 953 cpersername> aston <serd 934 <servlet-lase>orgapacte su contre ierveclas> 935 Soat-onstartup> | oed-onaflups 936 <iitporam> 937 “<paramnarse> config </para-narte> 538 _<param-value> WEB ANE Aga confi.sml pram vhse> 939 <fnieparan> : 380 deere 941 <servlet-mapping> 982 <oemicename> ac vane 983 Surbpatem> "dy 384 ere 543 <iweb-ap 4g —— 947 <?xml versione UTE-8"7> 948 <tb0 949 ‘Configuration 1.3//EN" 950 = 951 Xrruseen 952 gsi 953 fogiean name="" typeo"packlsisptchfomn”> . 954 </6RiPbeans> q 983 <action-mappings> i 956 <action path="/dispatch” name="f1" type="pack!.dispaction” 957 parumeter's1"> 956 _<forward nme="sucess” pathe"/sucessjsp"> 959 </action> _ / 960 <Icton-mappings> 38 Hips </struts-config> lor 1013 tor 1015 1016 1017 tote 1019 120 The following example is based on LookupDispatchaction a ipactieur shri yaar yea jispatch.do"> Deptno : <htmlstext praperty="dno"/><bs> -<html:submit property="s1"><bean:message key="btakey"-</html:submit> <tr: submit property="st"><bean:message key="btn? key" >himi: submit “<Sunlsform> Odject o = request getAttribute("result”); ArrayList al =(ArrayListo, Iterator it = al.terator(); ‘white(ithasNexiQ) Objext 0} = ew, out pringn(ot soStingO}s -~---~dispatehform java impor org apache snus acion Ationtorn, spb Sophia eens Acton oye { oF inne; eer Sing sts Py publi getDno0 ¢ Sey retum do, } public String getS1Q, > ‘wept publi¢ class dispaction extends LookupDispatchAction public Connection getcon() * Connection con-null; wry ae ib, om, Reser ‘sat 39 | Satyr Tehnolonies 1024 4 voz Class forName('sun jdbe.odbe JdbeOabeDriver) : von con=DriveeMansger gesConnecion(idberodbereshya" aco get", ’ 1024 } { as carciException 1026 return con, un} 18k pili AsonFonl nner ActnNasng ping Asner om ggg i, tos 4 ’ } 1030, Connection con * getcon(): - i ee 1032 ind = dtgesDno0; ae - ; 133 Statement st= oon crestetatement(); q 1034 ArrayList al = new ArrayList(); vas ResultSet rs = exeauteQuery select empno.enemesal from emp wf onder by 1036 while(rs.next()) 037 ni ; 1038 saddles getin(l} “ts glSting(2}+" “tra.gestringt i 1039 : : 4040 ) i d toat ceqsetAstbute(esul’ al}, ‘ i toa return mapping fndForward(‘success i ‘ oa Cm» 1044 public ActionForward enamesDescending(ActionMappin# mapping,ActionForm form, tHtpServietRequest vos 1036 c * 047 aispetchiocm d¢=lepethformform; joss intd= dfgetDn00; 1049 Statement = con eeateStatement 1050 ArayList l= new ArrayListQ; 1051 ResultSet s = st-executeQuery('s sal fram emp where deptnam"sdé" order by <x 1052 while(rs.next()) £ 1083 t “as 1038 aladd(s.getint( kon ing@a)+" “es getString(3)); 1055 ’ 1056 req setAtribute(*resulal} 1057 retura mapping fndForward(succes": 1058 1059 060 1061 1062 1063 1064 tgs 1066 1067 1068 1069} 1070 1071 1072" ggg, 1073. “<servigfiname> action </servlet-name> 1074 <BfEt-class> org-apache struts.action,ActionServiet/servlet-class> 1075 load-on-startup> | </load-on-startup> 1076 <init-param> 1077 <param-name> config </param-name> 1078 <param-value> /WEB-INF/struts-config.xml </param-value> 1079 <init-parans> 1080 </servie> ee 60. ee EEE pHtips tot 1082 1083 asi ss rose ost Joss 1089 092 1093 1094 1095 1096. 1087 1098 1099 1100 no naz 1103 1106 107 1108, 1409 mo rr nz nD ii nis m6 m7 ns ans 1120 12 ne 1123 1124 4125 1126 1127 4138 1129 1130 31 1132 133 134 1135 1136 437 1138 1139 ma0 Ss echnoloyios. servletamapping? sofvler-name> action </servlet-name> wr-pattern> *o <furl-pattern> ~veb-app> !DOCTYPE strtsconfe PUBLIC enn tia <suuscontigr ‘fernivbean> “formebean name="" type <lform-beans> action napping> <acrion path="dispatch" name="f1" type="dispaction” parameler=" <tonward namne="ysccess” path="/saccess jsp"? <iastion> é eS = <<Jaction-mappings> nppltcabionReSowes ~oeseage-resaurces parameterexsbya’> ‘iseus-confie> ‘dispatchform"!> : Gaeta? Appin Court Sek Nake Proper es een DP Appinbeont aoe Prop AppicedinResoureetets—PR:prperbes “Wh. benyaceyerse, ben keys dese gh * ‘The following is product exemple with multip eggats and with database connectivity o> Seopotucinpninre fp <%@ taglib uri="hupu alia fas I" prefixe*html” 4 _gsgtd><bsProguctName:<it><ta> t>chunPens property profucname"><té> F 482 2b>Noofltems:</b></td> <td><html:text property="noofitems"/></td> <n “> <td><b>SoldRate:</b><hd> <td><html:text property="soldrate"/><td> i Soi yo_Techrologies ‘ SS Sa) te 1142 <tr> 1183 <1ge<b>PurchageRate:</b><td> 1144 <td><humb:text property="purchagerate’/></td> 14s <nte 1146 <tr> 1147 <td><b>Soldltems:<b><td> 1148 <td><tuml:text property="solditems" ></td> t 1149 <> % = 8 inpur ype=“submit® value="store”><hd> 1133 <> 1153 <heapie> 1138 <thtm:form> 1136 <Pauml:herml> . ee yO 1159 <r productdisplay.isp~95> 1160 saeco Ht <Q gage imporejrate 9 1162. <form name="m" method post™> (N63 able border="1" bortercolor="green™ essing cla Nees NGS. wits tegen , vss oa rodnasc techs Mee osctneeotanseoenas 18 > tesolcmese che i Soto ctaemectocas tint Swiaheiows cosets ca 1172 Sdwiahe-ioo™ couche 4 : 1125 Soustherow scene Und <i> a’ 195. Ste L176 <table border="1" bordercotor="red" cell 1g="0" celispacing="0"> i oe AVI List ist(Linnyrequest gota displis); 1179 iftist=nul)¢ f V180 — Rerttorier=hst whilefiterhasNextO){ sie 1194 <1a4iithe"5"> <input type="checkbox” name="pdeleteitem" value="<to= productid %>"></td> 1195. <td wieth="95"><b><a href"javascript:productedit(<Y¢= productid %>)"> <Yé= productid %e> </a> </b><itd> 1196 <td width="100"><b><%6= productname Yo><Ib><ité> 1197 <td width="100"><b><%= noofitems %></o>~<td> 1198 <td width="100"><i><%e= solditems ¥o<Ib><ts> ; 1199 <td width="100"><b><%= balance %></b><ha> 1200. <td width=" LO0"><b><%¢= purchagerate Yer<fo>-<ne> 1201 <1d width="100"><bo<%6e soldrate %></b> </td> 1202 <td widtn="100"><b><Ye profit 9></bo-<Ita> 1203 <2) 96> 1204 <a> 1205. </table> 1206 <table> 1207 <u> 1208 <id> <input type="burton” value="delete' 1209 <td> <input type="button" value="insert® 1210 <> 1213 functicn productedi(pid) w24 1215 document frrnacti 1216 document.rm.submit(); 1217} 1218 function deleteproduct() 1219 1220 document.fira.action="delereproduct 1221 document frm.submit 122) 1223. function insertproduet() ira { 1223 document fmaction="getinseriprod (225 Savumentam.subming, 127} 1228 <script 1229 1230 <%e producteditform jsp--16> 11 1232 <4 page impore="ava.uti.*" > 1333 <4) taglib uri="htip Sakata apach 1234 <table border="1" border Color="pet 13s 1736 <himbehim! focale="true™ 1237 <himlsform action="getprodeditdo"> <b> 1238 <b>ProdustName:</t> 1239 <himi:text property="prod ° 1240 <toNoofitemast> Tae Sent pope eye ie Ba “ne Veet bo She Bae Vise Soruciig’ fe Sn geeincne 1248 <heml; “"productid"/> <br> eS mit iow" EA 131 fg re 2 es a 1 <ettlatomjen > 1285 === 1256 package product; 1287 import javax.servlet http HitpServietRequest; 1258 import org-apache.sirutsction.ActionForm; 1259 import org.apache.strats.actioa.ActionMapping; 1260 public class ProductForm extends ActionForm{ jvascriptdelteproduet()> <td> vaseripcinsertpreducr()"> <td> ‘getproductforupdate.do?productid="+yids shim!” prefix="htmt" %> 1dding="0" cellspacing>"0"> 261 1262 1263 164 1265, 1266 1267 1268 1268, 1270 ay an 134 4275 126 1207 18 1299 4280 1281 1282 1283 1284 1285 1286 12? 1288 1289 1290 1291 1292 1293 1294 19s 1296 1297 1298 1299 1300 Bor 1302 1303 1304 1305 1306 1307 1308 1309 13t0 Bu 1312 ind B14 13S 1316 ABT 18 ino 1320 public ProductForm)| ‘super(); ' elven proaucti Private Sg produce: Prva nets 2 Private int soldtems; Go, - riteint baane, , privat it oleate Peat it purebageae Pratt ben vena balance, a a OS alence = balance; O public int getNootitems() { ‘return noofitems; ) thisaoofitems = noone, ) Hm ublic int getPraductid() 4 retum producti, 1 public void setPraduetidgim productid) { this.productid = productids 1 Laecremanmem SD se etn 1 public void setProductname(String product 1 public int gexProfiO { return profit; 1 public void setProfit(iny ro this. profit = prof } public int get t etm } public i@fint purchagerate) { serrate = purchagerate: 3 a fiems0 { items; . setSolditems(int solditemns) { issoldtems ~slafems: atc in gest { return soldrate; y Public void setSoldrate(intsaldeste) { this-soldrate = soldrates public void reset(ActionMapping mapping HitpServietRequestreq){ athys “Techmelogive this produetid0, ¢his:produesname=" this:np0 “tems=0; This balance=0, ‘his sola.tem: thisacidrane™D; is-purchagerate=O; this. protie=d, 1332 <to- GetProduetaction javar-%6> 1334 package product; 1335 import org.apache,struts.action.*; | 1836 impor javaxcservit.*; 1337 impor javaxservict.ti.*; 338 mpon javaio.%s | 1339 impor: javasgl.Connection; 1340 import jave.sg.ty | 1341 impor: javat*; 15342 public class GetPeaductAction extends Action{ 1543 "public GetProductction( { 7) super); sd canstiusioy stub 1 ie | ne rarer mse mie 1350 yt ProdueiForm productform=(Produ t ‘Connection con * ConnectionPool fetCnngetion(1); Suring pidereq.getParamergg("productiggy#” int productidInteger ro String vsgl="selest prodieinamt PreparedStatement pstmt=c0n. pstma.setIni(I,productid), ResultSet res=psumt gxtayteQuery(); List arrayList=new, % B gotSting( productname" oofitems(res gtIn("noofitems" . \aitemstres.getint(solitems")}: ¥ setS¥pdrate(res.getini(*soldrate")); i productforn.sePurchagerae(res geda("purche; | gent porchagerate”)resgetint"soldrate"); 1378 <Yo- ProdyotDetaitsjava¥or B39 1300 pags ps ——— P| {BEL public clas ProduciDet( Bae Sevan presut fee Song prota 135 naa, 1385 priate insoles 1386 Privat balnce 137 priest te lv in puntgor (3 etateim pate 1390 ‘public im getBalance() { 1393 public yoid sealant anc) { 1394 this.balance = balance, 1395 } 396 publicin geoo ira) { 1397 return neofems, ‘308 ) 1399 Public yd seats notes) ( 1400 thse ~nooftens: 1401 } 1402 Public int getProductid() { 1403 evens ‘aoe ) tas public vid saroducin producti "306 ths proud» producti 1408 public String geiProductname() { "409 Tetum peda; m0 44d public void setProductname(String, 1432 this.productname ~ prodgetnar 4a ) sist 4 public am getProsit() { # tals re ote te, 1446 t 1417 public void setPrafitiint profit) { tae thisprott= tas a0 1420 taz2 ta23 tea 14a 1928 ed a8 1429 id setSolditems(int solditems) { 130 rw Sacbiome~ solders rat (al PMc i geste 133 etary elt: 1434 wat, 1435 public void setSoldrate(int saldrate) { ie thssoldate = sold 187 ) 1438} 1439 =e 1440 <¥6-- GetPeaductinsertPagejava~¥4> aa laa laa 1444 “1445 146 a7 Laan 1449 nso 1452 1433, 1454 Mass 1436 \4s7 1458 1459, 1460 1461 1462. 1463 46a 468 1466 467 1468, 1469 1470 an 1472 1473 a7 1475 147% 1477 1478 1479 1430 1481 1482 1483 1484 1485, 1486 1487 1988 1489 1490 1491 1492! 1493 4494 lags 1496 1997 1498 1499 1500 package product, impor javax servlet htp.HupServletRequesti import javax servlet. http HipServletResponse; impor orgapache struts aio. Action; import org-apache.struts.action.ActionEorm; impor org-apache,struts.action.ActionForward; ieaport orgapache struts action. ActionMapping, public class GetProductinsertPage extends Action { cecur ag tind orward("success! ) y <%- ProduetStoreAction java--¥6> package products impor javai.]OException; ienpor java s].Connection; import javasql ResultSet, impor javasql Statement; impor javauiArrayList {import java.util. Lis: impor java.sl. imyon Javan Servier ServletExee impor jevax servlet http HitpServletRequest; port javax servlet hp HitpServletResponse; ‘impor org apache struts.action. Action; import org.apache.struts.nction.ActionForm; import org.apache struts action ActionForva impor orgapacte suts.action Action apriggeap tte ots Prdsictin engl site public Brodyct&tore Action) { ma 7595 anosenened coats iad mnectionPool.getConnection(!); prepareStatement(vsql); roductid); 9 fuctform getNoofitems(); tuctform.getSolditems(); ctform.getNoofiterns(-productform.getSaldtemsQ), 6 productform.getSoldrateQ); .produtform.getPurchagerate()s S.productform.getSoldrate()-produstform getPurchegereteQ); executeUpdate; commit; pstmit.close( Joatch( Exception €){ eprintStackTraceO); + setu mapping findForward("sproduct"); 4 producid productname noofitemssolditems,balance soldrate purchagerte profitval nolo 1503 < .- ProducDispActionjave-t6> 1503 package product; 1306 impart java.io JOException, pa 1507 impor jaya.sql-Connection; + 1508 import java.sql ResultSet; , 1509 import java.sqlStatement 1510. impor java util Arras? 1512 impor javax servlet Servletxception; 1513 impor javax serviethtp-HpServietRequest; 1514 impor javax servlet http HtpServictResponse; 1515 import ong apache struts.action Acton; o~ 1316 impor erpapache frac AetinFons 1517 import org.apache.struts.action.ActionForward; eu * 1514. impor erpapache tact AsonMnplng 1519 public class ProductDisp Action extends Action{ 1520 ‘public ActionForward execute(ActionMapping mapping, Actiongfm % FipSenetequst eipserietResporse esprows Sev OBxcetion{ yf ProductFonm prodctforn=(ProduetFommform; (fe ‘Connection con = ConnectionPoo!-getConnestion() Statement sumt=con.createStatement(); palace etcipredamans ot ay 1527 “solditems,balance,soldrate,purchagerate profit from prouwyy"; 1528 ResultSet res=stmt.executeQuery(vsql); 1529 List arrayList=new ArrayList(); 1530 while(res.next0){ say ‘ProductDetals details=new Prodi 132 details setProductidires.getins'pro 123 details serProductname(® 1534 deals setNooftemstres, 1535 details setSolditems(res fetint 5 setBalance(res.getint("balan 1 1337 details setSoldrate(res.getint('saldrete")), 1538 details setPurchagergg@fagg getlnt(*purchagerate")}; 1539 details setProfit i); import javax.serviet http. i import java.sql.*; } i mena | 1558 public class ProductEdit extends Action{ tis patra ee 1560 super; 6 1361 1362 1563 1566 1565 1366 1567 1568 1569 Satue Tevologies {TODO Auto-generated vonsirsctor stub } public ActionForward execute(A wt Connection con = ConnectionPool getConnection( ‘PreparedStatemnent pstmt=con.prepareStatement(vsq!); ProductForm productform=(ProductForm)form; String vsql="update product set productname=?,noofitems=?,solditems=7,soldrate=?,purchag re products, pamusestng petcioenpePravemm). °° psimt setint3,producttorm.getSoldivems)) pstmt sent productfarm getSoldrate(); ~~, pstmt etli(S productform getPurchagerte); pstmt setint(6,productform getProductidQ); pstmtexecuteUpdateO; con.claseQ; “ore ProductDelAction java-¥4> Jcath(Excepton 2){ © ‘epritStackTraced; “~ ) return mapping-findForward("productedt"y O package product; import java.io.*; enna > port java.sq.*; Import jevecseriet; impor javax servlett.*; public class ProductDelAction extends Actioa’ # ie ProductDelAction() { id sopen0;, TODO Auto-generatefeonstMgy ab public ActionForward execute(ActionMapping mapping,ActionForm form, ‘RupServieRequest agen ServietResponse resp)throws ServletException IOException eter Values("pdeleteitem"); product where productid=?*; i set PreparedSt reStatement(vsal); } ‘<Yéoe ConnectionPool java-%> package products :Mapping mapping, ActionForm form,HttpServletRequestreq,HttpServletResponse t nologis 1621 import java.sql. Connection; \622__ import java,sql DriverMenager: 1623 import java.sql_PreparedStatement; 1624 import java sql. ResultSet; 1625 public class ConnectionPoo! { 1626 public ConnectionPooi() { 1628 } 1829 public static Connection getConnection{im conType) { oS iS ee me geet eee aaa! 1 em Dg een sm 1636 = 1637 } entch (Bxception e) { O 1638 e.printStackTrace(); oo ~ 1641 d 16a 5 ae ie GS a tee public void process(HupServietReduestygquest, HttpServletRespondt res throws IOException, ServletException { 17 Wrap multipart requests with a special wrapper request ~ processMultip 0; 1 Identify the path compbneg Wail 1 se to select & map String path = processPRgh« Stud, response); ie¢path—= mat) retum; 1 if (og jsD&RMgenabRO) sing a + request getMethod() + wt path +", fe for the current user if requested ssContent(request, response), sNoCache(request, response); 11 General purpose preprocessing hook if ((processPreprocess(request, response)) { return; } 1/Tdentity the mapping for this request ‘Action Mapping mapping id Sathya “Technologies, 1682 if (mapping == null) { eg on 1685, , 1691 processActionForm(request response, mapping); ag eed 1693 if (process Validate(request, response, form, mapping)) { 1699} 1700 if /processinclude(eeques, response, mapping) { 1701 return, ue 3 ™, 1703 4/ Create or acquire the Action instance to. se 708 process hs 1705 Aetion ation = 6 1706 procesAcionCreate(equest, response, appli 1707 ull) { 1708 109 1710 77all he Action instance ATM AatlnPorvard forts 1712" rocessAutonPerfonn(request, m3 action, form, ng 1714 Process the returned Acti 1715 processForwardConfig(requ 16) 7 1718 im19 ¥720 vai 1722 1723 1724 172s 1726 van 1728 ne 1730 1731 1732 1733 v4 1735 ServletContext ctx = getServletContent(); 1736 MyCoumer me =(MyCounter) ctx getAttribute(“counter"); 1737 outprintin("The no of requests = "+me.getCount()} TBE 1739. =e —_ 1740 <6 MyAction java ‘The following application Sa echnelyyins 1742 package pack’: i742. import org apache sts action. *; 1744 impor javaxservet.tp: 1745 public class MyAction extends Action 1766 a 1737 "public ActionForward execute(ActionMapping mapping ActionFare foment ima 1749 retum mapping CndForwars(*success"); an 150} 1151) age 1754 sour —— 1755. package pack! 1756 import javax.servit. Co ‘ot 1757 import javax serviethup:HtpServletRequest; a i 1758 import jvax sera ttp itpServietRespons; s 1739. import ong apache sutsaction Request rocessor 1760 public class MyRequestProcessor extends RequestProcessor W761 1762 protected boolean processPreprocess(HttpServietRequest re Response res) 1763 1764 System out prntn(‘entered imo sequen processor"), 1765 ServietContext ct servlet. getServlerCantent(); 5766 Onin o «er Uist siyCounter me : 1768 ‘me.incrememt(); * 1769 return ue; 170 wma wn 3 1713 ood sPlugin java a 17 senanumenmnunmwcrnenmg bangs 1775 package packl; Fe 4176. lmpor javas servlet ServetException; TTT import juvax.serviel.*; 1778 import org apache struts.actic Servier; 1779. impor orgapache struts ct 1780 _ import org.apache.struts.« ss ¥781 public class MyPlugin imp! fugin 172 1783 public vaid ima v5) 1786 publi Bg inltggtionServiet servlet, ModuleConfig config) throws ServletException i267 at 1788 System. inside init() of plugin class" 1789 F mc = new MyCounter();, 1790 seriet getServletConteri 1791 \ttribute("counter",me); Uy 1793 ry i 1794 ate i 1795 <YocMyCounterjava-¥o> ! 1796 — ) V397 package packl; { 1798 public class MyCounter{ i 1799" intcounts i 1800 pubic void incremect() _ ee Sits —Tshnwtoins 192 stiles;nsent page="7footerjsp" Nush="true"/> 1922 <body> 1923. <Sreral> 1924 Consider this 18P for bsp: 1925 <%4@ tnglib urie"WEBANEAites Nd” prefix="tiles" %o> 1926 <html> 1927 <body> 1928 <%e- include header ~%> 1929. <tiles:insert page>"/hender jsp" flust (OW Wena ue" e 1932 <Ho- include footer ~24> 1933 <tiles:insert page=*/Tooter jsp" flush="true'/> 1934 <body> 1935 <Ahemi> 1936 1937 1938 1939 194D Solution 4: Splitting bodies ya 4942 Consider this ajsp: 1943 <%@ tag uris"/WEB-INFhiles.ta" pret 1944 tami elude header => Saf ey 1946 <% 1947 <tlesingen page=" Meaderjsp" Nush="tue"”> 1948 <~include body ~Y> 5 1949. tiles:insert page=" Body op" ush="tue"> 4 1950 <¢- include footee 8 1951 <tiles:insert page="/footer jsp" flush "true" f= 1952 Poody> 1953. <humi> ad 1984 1953. Consider mis bjsp 1956 <26) glib uri="/WEB-INPhiles.1 prefix Mies” > 1957 <at> 1988 <body> 1959. <Yom include bender ~26>- 1960 <tles:insert page=" 1961 <6- include body ~%6> 1962. <tilesinser page=" 19683 1964. <tilesinser 1965 1966, 4963 1968 Soba tly from the Tiles inset solution. Schtion 4 separates the core bodies info their individual pages, 1969 Consiehftlwing JSP for Body: 1970 guess. & 1971 ape as 1972 ‘ollowing JSP for Body jsp: 1973 “Ba bod) 14 <p 1995 1976 177 1978 Solution 5: Templating ti 1919 eer 1980 <4@ tagb uri="/ WEB-INFMilesld oP gos nue Slush "srue"> refin= "tiles! 4 Satu Temotogios 1981 <bimi> 1982 <body> V983<e- include heater 1984 <tilessinsert ame ut 1986 <e-inctude body ~ jr (987 tiles:insertatribute="body"> ory i 1988 . 1989 Ye jnclude footer ~¥6> <body> <Sherl> Consider this a.jsp: AQ taglib uri=" WEB-INF/tiles tld" prefix="tiles" %> Silene pae="yeu op" fash <iiles:put name="ener” value=" Meader jop'> “ <tiles:put name="body" value="/aBody jsp" -tiles:put name="footer” value="/footerjsp"”> <Atilessinser> ° Consider this bsp: <%4Q talib urim" WEB-INF tiles 1d” prefixe "tiles" %> silessinser page=" tayaut jap” dush="true"> ‘tilesiput name="header” value="Vheaderjsp"> <tiles:put name="body" value="VbBody jsp"”> ‘put name="footer" value="footerjsp"!> Solution 6: Struts and Tiles <?xml version=",0" encoding="IS -<component-definitions> <definition name="2Def" “<put name="header" vak <<put name="footer" <put name="body" valhg=" </definition> ayoutjsp"> svaluegy/eaderjsp"?> "footer sp'> g,value="/bBody ep"> ef" path="/layoutjsp"> vvalue="/headerjsp"/> Hfooter" value="/footer,jsp"”> "body" value="/eBody,jsp"/> feompogfent-definitions> ‘<1-- Standard Action Serviet Configuration (with debugging) > <serie> <serviet-name>action</servlet-name> -<servlet-olass>orgapachse struts action. ActionServiet</servletclass> chnolouis 20a 2042 2043, 2085 204s 24g 2047 2048 2089 2082 205: 2054 2055 2056 2087 2058 2059 2060 206) 2062 2063 2064 2067 2088 2069 2070 2071 20 2073 207 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 7092 2093 2094 2095 2096 2097 2098 2099 2190 <servietclase> orgiapache strates, ActionComponentServlet</servlet-class> init-param> ‘<param-nan»>definitions-configs/param-ame> <pacam-value>/WEB-INFHtileDefinitions.sml</param-value> <tiniteparam> cBervie> package com.mialanstrls action ‘import orgapache-struts.action.*; Import javax.serviet. tp. public cass DoFirst extends Action ( ) public ActionForward perform ‘ActionMepping aMapping, ‘ActionForm aForm, HispServletRequest sRequess, HinpServletResponse aResponse Mt return sMapping,findForward("success <<forward name="success" psth="aDef'/> <taetion> ‘action path="7o" ‘ype="com malani.struts.act <<forwasd name~'success" p <action> <action path"/c" ‘ype=*com,malanistrus.action.DaFir <forward name="successiepath="cDet"> action= ‘name="aDef" exiends="baseDef"> "body" valuen"/aBody, <detinition name="bDef" extends="baseDef"> ~<put name="body" value="/oBody jsp"”> ‘<idefinition> <definition name="eDef" extends="baseDet"> put name="body" value="/cHody,sp"*> <definition> Cr pss iou hie comguration fle upon suegess. The Struts acti y 2406 Tiles example with TitesPlugin eer eee ‘al verson=".0" encoding IS0.8859.1"%> 2114 <IDOCTYPE web-app 2115 PUBLIC "/Sun Microsystems, ne//DTD Web Apolieation 2.3/EN" 2116 "nuliavasin.comizes/dtds/cb-ape 2 3dtd"> 217 «webapp ; ZING <I Aston Servet Configoration —> 29 <senlee -<servletname>action</servletname> -<servlet-class>org apache: struts action ActionServiet</ <init-param> <parany-name>config/param-name> u <pacumevalue>/ WEB-INFisinns-config xmi</parar tineparam> <inivpra> <paranename>chsinConfg/pramname> ‘<param-value>org/apache/strutstile <fnieparin> “load -ntartp> <Moad-ontactp etserte> re ‘<!-- Action Servlet Mapping --> 2 ‘sarap ed <serviet-rame>action</s Surtpatan* cturglaens cervtetminge <<l~- The Usual Welcome File List -> <welcome-file-list> ‘<welcome-fileindex e-fle> <<fweleome-filedis> </web-app> —— ~ <IDOCTYPE strt Api jon//DTD Struts Configuration 1.3/EN" : uts-config "> 2146 <eteuts-co 2147 <form: 214s Paame="dataForm” type="org apache struts ection. Dyn ActionForm'> 249 property name="eid'type="javalang String’> 230 gos property name=*nane® type="ave lang String’ 2151 form-property name="adéress™type="java lng String" 1, 2153 -bean namne~"delForm" type="org apache seus action DynadctionFormt> 2184 “<form-property name="eid" type="javatang String’? 2188—_<fonmbean> 2456 </form-beans> 2187 <actior-meppings> 2158 <action patents” forward="My fies 2159 <action path~"inset” forward="inserTie"> 2160 <action path="Yupdate” forward="updateTile"/> <fetion path="7delete” forward 'deleteTile"”> jupdatedate” pame="dataForm" type~“updateA ction” scope ="suacess" lemain success" path=" redirect="fulse"7> <forward name="fuilure’ path="tileamain fllure™ redirec="false"7> sisiot pai” atsertdata” name>" |ype="insertAction' seope="ggssi <forward name="success" satheilesminacems! ~ Perec’ sforerd rane aeteain eee ityre* </action> <action path="/deletedata” name="delForm" type="delAction ion" ‘<forward_numes"success” path="tle.mai success” J redirect="false"/> -<forward same="faiure” oy, path="tile:main.filuee” . g 5 t i F i <set-property property="definitions-cont eet property property="module Aware’ <phug-ie> <strut-contig> him" %> <td> Emp -<id><himlsext property="eid"/><itd> tee > <td> Empla} Fnd><td>-<buml:text propery="name" /></d> ate < ee AMiress </td><td>himl:testarea property="address"/> </td> 122 align="center"><html:submiy><html:resev> </td> uri-"*hitp/struts apache orategs-himl” prefixe"himl"> action="insertdata"> <table> <> <td> Employee Id </td><td><humlstext yeoperty="<id"><itg> < <td> Employee Name <(td><id>chirnktent propery="name'> <a> ep P= FE =f a ERE 0 Transitional//EN" “bytp! wp) "8 inl PUBLIC "3/W3C/DTD XHTML 1.0 Transitional/EN* "hutpu/vo, B/shtml 1/0) i oats ea € : Ss chnologios. sae <a> { <td> Employee Address <td><1d>huml:textaren property="address'/></d> <n a <td colspan=2 align="center">chiml submit chiml:reset> <ité> <ae j <ible> (3 <<Sntmt:form> - ; 230. co Coen ase Us AMA ML LW Franstiona\/EN" "hap2iunewe. wg ign L/D Test 2252 <¥@ agli wri=-htas sts apache oretags- hm" prefix~" hi!" : 2253. <himiiform stion="deletedata™> 24 ates 223 < 2236 <1d> Employee Id <td><td><him-textpropertyeid"?></d> 237 sie ¢ '] j fer ot ae 5 9 <td colspan=2 align="center"> chtmbsubmit><himl:res GBOCTYPE hen PUBLIC WSC /OTO METAL 1.07 oe snnpincw.n5 cre T Ry colk cet Mnyfunas anc atecctanr eetopaagt ae Paneer “Cable widt-"1 0% heighe="1099" By cetipadding=#" > <tr> - 3 <td align~"centery "> -ctilescinsert aff ser" > <ne> <u> <b—-Content > Fl colepane'2> inser atribute="footer" > a> i niles i <toody> -<thiml> i a [} 2278 Av aligcenter” styiew*eckor:#000035; background-color HCCDOF9: font-size: 2px; forn-weight: 900; |) 2279 textalign: center; border-width: Ip; bordersye: soid;height SOpx"> Tiles Sample Application o> F | 2280 <font style="color:#000083;backgroundscoior #CCDOES; font-size: 1px; fontowe ene! 2281 textalign: center>Develaped in Struts Exadel Studio<font><tiv> 2282 BaseFooter js 2283 <aiv align="center" style="color #000033; background-color: FCCD9F9; font-size: I 1px; font-weight: 900; 2284 texvatlgn: center, border-width: Ipx,borderse: slidjheight30px"> All Rights Are Reserved By Sathya Technolo 2285 <font style="colar:#000033; background-color: #CCD9F9; font-size: px; font-weight: 100; 2286 cexalig:center™>Developed in Suis Exadel Studlo</font><idiv> 2287 oer hE Pre 288 “able wiathor100%6"> we 289 te ee Rol ite 2292 ea WY 2st 298 shots ) 2296 <Yon(String)request.getAttribute("Action")26> © ‘ 2297 Operation has Successfully Compleies<fb><ha>-<ir> 2298 </table> 2299 ~~ salt jsp <table width="I 23000 <> D0 Ad align="center"> <b> 2302 <font calor="red"> Warnings/fon> 2303 ‘<Hon(String)request.getAtribute( "Action")%> 2304 <t>Sorry The Operation You Have Done is Failede/b> 2305 a 2306 Bor <tabie 2308 DatabaseBean java—-——-m 2309. impor jas 2310 import java. B11 publicclass DatabaseBean 2312 ( 2313 Connection con; 23\4 Statement st; 2318 PreparedStatement peest, 2316 itis 2317 public void serConnection)) 318 219 wy 2320 ‘ 2321 Bn 2323 B24 3325 2326 Bn 22 7329 730 Bie, B32 nection) 2333 pulift int insertOuta(nt vid String name,String edd) 2334 2335 ‘ystem.outprintn("insertDataQ:DatabaseHean"); 2336 System.outprntlo(eld""4namers" 9268); 2337 ty 2338, 4 2339 System out printin("Connectian “+con}, Bao ston createStatement(); tion():DatabaseBean"; ennectionidbe:braclethi localhost 1521:seya", "scot" "tiger"; nection Successfully Created "+eon}; nut pitig"Connecton Not Established; 81 +i Sathya “Tedneloyios ‘String qry"inser into StrutsEmployee values System out println(qry);, instexecuteUpdate(qry); System.out printin("Data Inserted Suscessfully"), stelose(); return U5 ‘tnamee"\ ‘inch Exception €) { eprintStackTrace(); ,jstem.ounpeinuinc She Value of"); - return 0; }finserDat) public int updateData(int eid String name,String add) t wv ee ( i ‘System-out.printin("wpdateData():DatabaseBean"); 7 st-con crefeStatementQ; ‘Sifng query~"update StutsEmployee setname="#n System.out printin(query) iFstexecuteUpdate(query); . ‘System out printla(*Data Updates Soceessuly siclose0 iRie=0) Tetum 0; ese rerum 13 "radd-+"Y where ei catch(Bxception 2) £ { eprintStackTrace();) System out pristin( "Up ‘The rum * Wo wpdsteDatagy public int deleteData(int eid) Py AG i sBata()DatabaseBean”); Y 0: ‘eprintStackracel); y ‘System.outprintin("del Qry : The Value of i "+i); retum 0; Wi deleteDats() Lal 82. a = Bhnvloyies: 2401 public void eloseCeanection() wo 2803 y 3808 { 2405 System out printtn(“closeConnestion():DanabaseBean"); 2406 con.close(); 2407 System out pratin( "Connection Clases Successfully"); 2408 7 2409 ‘catch(Exception ) 2410 Dat 4 epotea er 2413 YeloseConsecsion() 2414 /(DotabaseBean DAIS nn insestAction java-——- 2416 impor orgapache struts action. 2417 import org.epache.struts.actian.DyseActionF orm; 2418 import bean.DatabaseBean: 2419 public class insertAction extends Action. 240 { 2421 _DatabaseBean dbean; bean = new Dacabase bean seiConnection\); Sag ‘DynaAction orm myForm = (DynaActionFortfiggn; System. out printin(myForm); String cid>(Sting)myFors get("eid"); int erapidInteger-parseint(eid); String name~(String)myForm gett String edd=(Steing)myForm, ‘System out printin(empics System.out printin "Rs 0) Intresult= — dbean-inses add); System. out println( "Result is "re ‘doean.closeConnection(); request setAttribut n'"nsert’ if (resut—=1) ‘return mapping. 'success"); alse return: ara("fallure™); import orgs ion, 2448. import ts action DynaactionFomn; 2449 import ‘ 2480 fe ion extends Action 2451 2452, ABatabaseBean dbean; 2453 2456 2ASS ‘System out printhn "delAction(:Del Action 2456 dibean = new DatabaseBean(; 2457 bean setConnectionQ; 2458 Dyradctionform myForm = Dyna ActionFocn)forms, 2459 $ystem.out.prinn(myFerm); 2460 String ide{String)myForm.ge("eid"); ube ActionForward execule(ActionMepping mapping, ActionForm form, HitpServletRequest request, HstyServiet =e See Se 246 2462 2463 2864 2465 2466 2467 2466 2469 2810 297 2473 2414 2475 2416 2477 2878 2479 2480 2481 2482 2483 2484 2485 186 2487 2488 2489 2490 2491 2492 2193 2498 2495 2496 2497 289% 2499 2300 2501 2302 2503 2508 2505 2306 2507 2308 2509 2510 asi. 25124 2513 2514 2515 2516 2517 2518 2519 2520 Bholpyies int empid-Integer parseint(eid); System aut priatin(eia in resule=dbean.deleteData(empid); System aut.priaun(empia, ddbean.closeConnection(), sequest setartibute," Action’ Dele"; retum mapping indForward("suecess"), ” oe if (result-=1) else ‘apo, import org apache struts.action.*; impor bean.DatabaseBean; { DarabaseBean doeun; | WY —— SP public cts updatection extends Action ~ pic ewe ecu ctcn Mn mun wie. ipseneiRequest request, Hse System.out printin(“execute():updateaction"); Lr ie bean = nev DatebaseBear’y; ————~ ylpurcllag SECT DynaActionForm myForm = (DynaActionFégiform® ‘System.out printin(myForm); String eid=String)myForm,get("eld"); int empidInteger.parselnteid) String add=(String)myForm get("s ; seated = String name=(StringymnyForm gett" = oe eae iy Systemout Brinn inemetat) dbean.closeConnection); request.setatbute("A if (resul=1) retum mapping fn else return mapping, ("success" "fiture’) ~--~ <{DOCTYPE tiles-definitions PUBLIC Eoundon/TD Tiles Gontgwrionlen* “definition YY Tiles” path="/pages/MyTilesHHome jsp"> ~<put ngftRaheaBet” value="/pages/BaseHeader jsp" /> <put content” value="/pages/LeftNavigation jsp"”> it jain-content” value="/pages/welcome,jp"> pupmanieoter” value= pages BaseFotr sp" > spiniige= <Idefinition> definition name~"tite.main failure* zame="tile.main success” extends="MyTiles"> *main-content" value="/pages/success,jsp /> extendon"MyTiles"> <put narne="main-content” value="/pages( failure jsp > <Idefinition> definition name="ingertTile" extende="MyTiles"> ‘<put name="main-content” val ‘pages/insertjsp" /> 2521 <idefinition> 2522 <definition name: eteTile" extends="MyTTiles"> 2523 <putname="main-content” value="/pages/deletejsp" > 2524 <idefinition>> 2525. <definition name="update 2526 2527 2528 2520 extends="MyTiles slue="/pagesupdate 2831 Create ateble‘in pg before defn $06) Creole, toble Shatsemptogee (ef naenber ) Pde S$ Ute SOL) Table weated => Cidbe—ig¢ dint tile ve Tequteed ty 1b folder of Example, q dedtiagy’ galfon iy NB toglt wh Zbrep |] shut afeche> <oble, wctthe= Noo'h cyte St beck pond alerice congiig forte rp41 oh te f ee pa Foal, borcueatyle, e ae ee > Inset <[ han ttn > ftd> efo> <> <H4 atin -rcontey* heights 305 <hinlztine ection 2 * pelate' mologiow. ~ this Exom, gor. Gram’ vatichavs (15), ey) * i conte’ halghte 30> Fone tene ac bions” Delete’ > Baletekc) him :ink > <td> <) by, 2 fbeble> =O SO toe leone» SsP <b> <canter > Hello weleome To T7les Exampk. <)eente> <b>. update </him' line > olias ely i Sathys Technologies Struts 2.x ‘Apache Struts is a free open-source framework for creating Java web applivations. Apache Strurs 2 is ar elegant, extensible framework for building enterprise-resdy Java web application -she framework is designed 1 streamline the full development cycle, from building, to deploying, to maintaining applications over time. ‘The Apache Struts Project offers two major versions of the Struts framework. Stnits 1 is recognize. 45 the most popular web application framework for Java. The 1.x framework is mature, well-documented, anc widely supported. Seats 1 is the best choice fer earns who whe rrnven snfations © Smuts 2 was originally known ac WehWork 2. Aer working independently for several years, the WebWork and Struts communities joined forces to create Struts 2. The 2.x framework is the best choice for team. who value elegant solutions to difficult problems. Web applications differ rom conventional websites in that web applications can create a dynamic response, Many websites deliver only static pages. A web application can interar with databases and business logic engines to customize a response. Web applications based on JavaServer Pages sometimes commingle database code, page design code, ane control flow code, In practice, we find that unless these concerns are separated, larger applications become difficult to maintain, One way to separate concerns in a software application is to use a Model-View-Controller (MVC) architecrure. The Model represents the business or database code, the View represents the page design code, ant the Contratfer represents the navigational code, The Smuts framework is designed to te! applicasons sat utite 2 MVC aychivectue Apache Struts 2is a robust extensible tamework for building enterprise-class Iava-based web applications that uses Inversion of Control (IoC) and the proven architectural patern, Model-View-Controller (MVC). Struts 2 is also ideally suited for developing visually rich and highly interactive Web 2.0 applications since the support for AJAX is built right into the framework Struts 2 builds upon the popular Swurs iamework. Like Strus, its goals are to make web application development more effeient, extensible, maintainable and scalable. Struts 2, however, also enables Aspect-Oriented ‘Programming (AQF) using interceptors eading to extremely modular code, it aiso adds powerfa! festures such 35 «a plugin framework, JavaServer Faces (ISF) integration, and XML-free configuration. Differences between struts! and struts? Struts2 is more powerful framework as compared to struts}. The table given below describes some differences between struts] and struts2 Feature : { struts 1 Struts 2 | i 1 | [ While in Struts 2, an Action class | implements an Action iaterftce, slong ' | with other interfaces use optional and ! Sirus} extends the absract tase class | csiom services. Struts 2 provides a base. | a | by its action class, The problem with | ActionSupport class that implements lasses | strutsi is that it uses the abstract classes | commionly used interfaces. Although an | rather than interfaces. ‘Action interface is not necessary, any i POIO object along with an execute ! signature can be used as an Struts 2 Action object. Struts 2.x Material Satya Teclrologies ‘Threading Model Struts | Actions are s:ngletons therefore » they must be thread safe because only cone instance of a class handles all the | requests for that Action. The singleton | strategy restricts to Struts 1 Actions and | requires extra care to make the action | resources thread safe or synchronized | Struts 2 doesn't have thread-safety issues | as Action objects are instantiated for each requeit. A servlet container generates | roany throw-uway objects per request, and one more object does ot impose a performance penalty or impact Ewbage Servlet Dependency Harvesting Input ‘Actions are dependent on the servlet APL because HitpServletRequest_ and HiupservleiResponse is passed 10 the execute method when an Action is invoked therefore Stl. r \ | i | \ Sirus! application hes a major problem | while testing the application because the execute method exposes the Servlet | APL. Struts TesiCase provides 4 set of | mock obj for Sms. | Struts 1 recieves an input by creating an ‘ActionForm object.. Like the action classes, all ActionForms class must ‘extend a ActionForm base class. Other || SevaBeans classes cannot be used as || ActionForms, while developers creste ‘edundam classes to receive the input. DynaBeans is the best altemative to ‘eats the conventional ActionForm classes. Container does not treet the Struts 2 Actions as # couple. Servlet contexts are ‘typically represented as simple Meps that allow Actions 10 be tested in isolation, Struts 2 Actions can still access the original request and response, if required. While other architectural elements directly reduce or elirainate the need to nocess the HupServetRequest or HiupservieResponse. | To test the Struts 2 Actions instantiate the | Action, set the properties, and invoking ‘methods. Dependency Injection also | ‘makes testing easier. Strats 2 requites Action properties as input properties that eliminates the need of 8 second input object. ‘These Input properties may be rich object types, since ‘they may “have their own properties, Developer can access the Action Properties from the web page using the faglbs, Struts 2 also supports the ActionForm pattem, POO form objects ‘and POJO Actions as well. E Expression ‘Language Binding values into views ‘Struts integrates with ISTL, so it uses the JSTL EL. The EL has basic object ‘graph traversal, but relatively weak collection and indexed property support. context by using the standard JSP ‘mechanism. fs 1 binds objects imo the page ‘Strus 2 can use JSTL, but the framework also supports a more powerful and flexible ‘expression language called "Object Graph Notation Language" (OGNL). a Struts 2 uses a ValueStack technology to make the Values accessible to the tglibs without coupling the view to the object to vebich it is rendering. The ValueSteck strategy enables us to reuse views across & range of types, having same property name but different property types. oe Struts I ActionForm properties are almost in the form c° Strings. Commons-Beanutils are used by used by Struts 1 for type vonversion. Converters are per-class, which are not configurable per instance. Type Conversion Struts 1 uses manual validation that is ActionForm, or by using an extension 10 the Commons Validator. Classes can hhave different validation contexts for the same class, while chaining to sub-objects is not | Validation | ii validations on | allowed. I [ each module in Stu 1 has a sepuate | Gone action | Reet roses (itech, le Brecution | lle Actions in the module mus share the same Vifecyele. Struts? flow diagram: | XWork Validation In Struts 2 different lifecycles are created ‘Smuts 2 uses OGNL for type conversion | and converters to convert Basic and common abject types and primitives as well, one by using tne valiaa meinod anu ae Gamework. The Xwork Validation Framework allows | chaining of validations into sub-properties | using the validations defined for the properties class type and the validation context, fon a per Action basis via Interceptor Stacks. Custom stacks are created and used with different Actions, as required.s Sattye Technologios ‘Struts? programmatic validation: In this example we will see how we can validate a login page using Struss 2. Let's first create the login page, We use Struts Ul tags to create the login page. The <s:head > tag should be placed in the head section of the HTML page. The sthead tag automatically generates links to the ess and javascript libraties shat are netessary to render the form elements The s:form tag contains all the form elements. The action attribute contains the action name to wich the form should he sfurited. TH ston : nivecture. In wus example we use struts.xml file to do the configuration The textfield tag is used create a text box. The label attribute ofthe textfield tag contains the name to be displayed on the page and the name atribute contains the name ofthe property in the action class to be mepped. The password tag is same as the textfield tag except thatthe input value is masked. The submit tag is used 10 create a submit buton, the value "Login" represents the label ofthe button. Loginisp ‘Y@iaglib uri="/sruts-tags" prefiv="s" ¥o> <himb> shead> <title> Login Pagesittle> <ohead <head> <body> <form action="Login"> <<textfield name="userNamie" label="User Name" > <<sipassword name="pessword!” label="Pessword" /> <s:submmt value="Login” > <is:form> <toosye ‘<totmi ‘When the user clicks the Login button the request will be forwarded to the Login action, ‘We do the action mapping using the struts.xml file. First we need to create a package for our acti struts.xml struts> ‘package name="defaul extends="struts-default"> ‘Struts 2.x Material--- 89 een Satyys. Trehnoieyioe action name="Login” class="pack | LoginAction"> <esult name ipout">Mloginjsp<result> ‘result name="success">/successjspsiresult> <action> sistruts> Here our “default” package extends "struts-default” package. By extending the “struts-default” package the action wl by default inherit the set of imereeprors defined in the defaultsack. The “struts-default® package is defined in the struts-defoultxml file. ‘All the comnton tasks done by the Actions are sepsrated and pleced in different inteeeptors. You can define an inverceptor stack for each action. Most commonly used imtérceptors are grouped in defaultstack of the struts-default package. The defaultstack will be sufficient in most cases. The inteceptors will be fired in the order in which they ‘are declared in the stack both before and after tne action is executed ere the "Login action is mapped 10 the “LoginAction® cass in the “pack!” package, The results are defined using the “<result>" clement, f any Validation errors occur the user willbe forwarded to the login.jsp page. Ifthe login is successfull then the user will be forwarded to the suecess,jsp page. Our Login Action class extends ActionSuppor. It is good to extend ActionSupport class as it provides default implementation for most comrnon tasks. Loginction public class LoginAction extends ActionSupport { private String userNam private Sting password; public Loginaction { : public String execute) « seturn SUCCESS; 5 public void validate() t & ‘Struts 2.x Material - -- 90 Sathya Technologies if (getUserMamet).tength() == 0) addFieldErrac("userName", "User Name is required"), | else if (getUserName().equals("Eswar") { addFieldError("userName", “Invalid User"); if (getPassword0.length() == 0) ( addFieldError("password”, getText("password.required”)}; ) public String gettseedvame() ( retumn userName; public void setUserName(String userName) { this.usetName = userName; ) public String gerPasswordl) { etum passwords 1 public void setPassword( String password) { this password = password; | ) ) ‘The ActionSupport class implements Action interface which exposes the execute() method. a ‘The following constams are declared in the Action interface which can be sed 26 Tetarn values in the executed) method. public static final String ERROR = “error” i public static final String INPU’ input” | | | public state inal String LOGIN = “login” | | ‘Struts 2.x Material -~- 91 Sattyn “Thapolegics public static Fine! String NONE = “none” public static final String SUCCESS « “success” ERROR is retumed when the action execution fails. INPUT js returned when the action -equires more input from the user. LOGIN is rerumed when the user is not logged inte the svstem NONE is returned when the action execution is successfull and there are no views to display. ‘SUCCESS is returned when the action executed successfully and the corresponding result is displayed to the user. Now lets see the roles played by the different interceptors. “The params interceptor helps in transfering the request data onto the action object. “The workflow interceptor controls the flow of cotrot. ‘The workflow interceptor checks whether the action implements the Validateable interface , ifit does, the workflow ‘interceptor will invake the validated method of the Actian class, in che validate() metnod we valigate the user name and the password, If the validation fatls an error is added using, the addFiledError( method. ‘The validated) method doesn't setum any errors, instead it stares all the errors with the help of the ValidationAware interface, ‘Naw the workflow interceptor will check any validation errors has occured. If any error has accured the workflow “rerceptor will stop the request processing and transfer the control fo the input page with the appropriate error messages. Struts2 Aware Interfaces: For getting Hip specific object when we need them in our action, struts 2 uses a technique known as Dependency injection and inversion of Control. In this technique, the aware interfaces than we wank to use are injected in the action class. These interfaces are called aware interfaces because the interface names always en with ‘Aware. Aware interfaces require tht a single setter method is implemented, so thatthe resource may be used. Struts 2 implements interface injection which is one of the forms of dependency injection patter. It is something like implementing the required interface, which exposes some methods to the implementing class. In struts 2 we have the following aware interfaces 1) Application ware interface 2) SessionAware interface 3) ParameterAware interface 4). ServletRequestAware interface 5). ServletResponseAware interface Struts 2.x Material - - - 92 Dattya Technolog org.apache.strus.interceptor.ApplicationAware interface is ued to expose @ method to an action class which sets an Application Map object in this acvion class, ‘The Map object contains different objects which are accessible from whole application. ‘The keyivalues added into this map is available similar to other application scope attributes, Ant key -vive paitsStoseM ui ppaalius Map ga De avvessed LAGM ally ACOH UF jsp page ‘The ApplicationAware interface has one method, setApplication(), and by implementing ths interface we need to override this method in our class. Forex: public class TestAction extends ActionSuppostiruplements ApplicationAware « private Map m; public votd sevApplication(Map m) { this mem; : public String execute() throws Exception ‘The key/value pair stored in Application Mep can be accessed in ajsp page lke the following. property value="#application.key"> Or <siproperty value~"#application| key’ 2) SessionAware: ‘The org apache struts2. interceptor SessionAware interface is used to handle client session within our ‘ction, ‘Struts 2.x Material - Saya Technologies ‘The SessionAware interface has one method setSession() and by implementing this interface we need to override the method in our class, ‘The action class implementing SessionAware interface can access session attributes inthe form of Session Map. We can add, remove and obtain different session attributes by manipulating this map. Han ai stig ox an acuon class will be difficult Forex, public class TestAction extends ActionSupport implements SessionAware { private Map session; public void setSession(Map session) cl this session=sessions ) public String execute() throws Exception { : ) 3) ParameterAware: ‘The org apache.struts2.interceptor.ParameterAware interface is used when an action wants to handle input parameters, Alle input parameters wth ts namelvalve ar set in a parameter Map. ‘This interface has a single method setParameter(), by implementing this interfuce into our class we need to override the method, Forex: public class TestAction extends ActionSuppor iraplements ParameterAware t | aetog, Witte sana equ she tp resuet parame sp then this oefe be implemened win ur n, ape i. Sey Teapetegios private Map params; public void setParameter(Map params) ( this. params=params; public String execute() throws Exception { 4) ServietRequestAware: By default, an action class in struts2 does not contain HttpServietRequest abject. It we need it then it can be injected into our class by implementing this interface. ‘This interface has a single method, setServietRequest(), by implementing this interface we need to override the method. fan action class implements ServietRequestAware interface then the action class tie6 to Servlet API. $0. sunt testing of an action class will be difficult. Forex: public class TestAction extends ActionSupport implements ServietRequestA ware ( private HttpServietRequest request; public void cetServietRequest(HlapServletRequest request) ( this request = request; } public String execute) throws Exception ( Struts 2.x Material... 0+ Sathya Technologies 5) ServietResponseAwa By default, an action class in struts2 does not contain HupServietResponse object. ft we need it then it can be injected into our class by implementing this interface. ‘This interface bas a single method, setServletResponse(), by implementing this interface we need to ‘override the method. I an action class implements ServietResponseA ware interface then the action class tied to Servlet API. So unit testing of an action class will be difficult For ex public class TestAction extends ActionSupport implements ServletResponseAwase t private HutpServietResponse response; { this.response = response; a public String execute() throws Exception ‘Struts 2.x Material -- - 96 | public void seiServietResponse(HtpServietResponse response) Satya Tectrologies Steuts 2 interceptors Struts2 provides very powerful mechanism of controlling a request using Interceptors. Interceptors are responsible far most ofthe request processing. They are invoked by the « ontoller before and after invoking action, thus they sits between the controller and action. Interceptors performs tasks such as Logging, Validation, File Upload, Double-submit guard etc. ‘/webapp/user.action” A ie terceptor Scott 1. Request is generated by user and sent 10 Serviet container tun determines appropriate a 2. Servlet container invokes FilterDispatcher filter which 2. One by one Intercetars are applied before calling the Action. Interceptors performs tasks such 2s Logging, Validation, File Upload, Double-submit guard et. 3. Action is executed and the Result is generated by Action. 4. The output of Action is rendered in the view (ISP, Velocity, etc) and the result is retuned to the user Thus the Struts? Interceptors removes cross curting tasks such as logging from action components and create cleaner separation of MVC, ‘Struts2 comes with default list of Interceptors already configured in the application in struts-default.xml file. We can create our awn custom Invetceptots and plugin into a Struts? based web application. Framework creates an object of Actionlnvocation that encapsulates the action and all the interceptors configured ‘or that action, Each interceptors are called before the action gets called. Once the action is called and result is generated, each intereepfors are again called in reverse order to perform post processing work. Jterceptors can alter the workflow of action. it may prevent the execution of action Example: In this example you will see how the interceptors are invoked both before and afer the execution of the ‘action and how the results are rendered back to the user. Let's understand this with the help of the following, diagram. Struts 2.x Material --- 97 (Hameaat] Rendefresulttothewser | ‘The following actions happen in a sequence when a request comes to the Struts 2 framework. Satya Technologics . Framework firs finds which Action class to invoke for this request and discovers the interceptors associated withthe action mapping. . ‘Now the Framework creates an instance of Actiontnvocation and calls its invoke() method. At this point the Frameworks hands the control over to the Actioninvocation for further processing ofthe request. . Actiontavocation isthe one which encapsulates the action and the associated intercteptors. -Actioniinvocation knows in which sequence the interceptors should be invoked, . ActionInvocation now invokes the intercept() method of the first interceptor in the stack. We will understand this with the help of an example, Our example is very simple it uses only one interceptor for logging details. . ‘The Logginglnterceptor’s intercept() method contains the following cade. public String intercept(ActionInvocation invocation) throws Exception ( ‘Pre processing logMessage(invocation, START_MESSAGE); String result = invocation.invokeQ; f Struts 2.x Material Sanya “Teechnologivs ‘Most processing logMessage( invocation. FINISH_MESSAGE), return result; {As you can see ist the loghtessage() metnod 1s calcd and the message is logued, this 1s the pre processing done by the logger interceptor, then the invoke() method of vieActionlnvocation is. again called, this time the Actioninvocation wilt call the next intercetor in the stack and this eycle will continue til the last interceptor in the stack. After the execution of all the Interceptors the action class will be invoked. Finally a result string will be retumed and the corresponding view will be rendered. This isthe normal flow of events ‘But what if an validation error oceurs, in this case the request processing will be stopped. No further interceptors will be invoked. Action will not be executed. The control flow changes, now the interceptors executed 0 far will be invoked inthe reverse order ta do the post processing if any and finaly the result will be rendered to the user. Lets came back to the normal Mow. 14-041 cast tne Logger interceptor is the only interceptor in the stack, 30 after logging the “START_MESSAGE", the Actionfavocation's invoke() method will invoke the action. Cur ection, simply retums "success", then again the logger interceptor will be invoked to do the post processing, this time the “FINISH_MESSAGE" is logged and the result is retumed, Based on the result the corresponding view will be rendered to the user. We get the following benefits by using the interceptors. Exremely flexiabe, Cleaner and focused Action classes Provides code readbilty and code reuse Testing process becomes easier. We can add only the interceptors we need to the stack and customising the action processing for each request ‘Now lets sce the flow of the example, n the index.jsp page we forward the request tothe "TestLogger* URL. <META HTTP-EQUIV="Refresh" CONTENT="0,URL=TestLogget.action"> ‘The TestLogger URL is mapped to the TestLoggerAction class in the struts.xml file, <IDOCTYPE struts PUBLIC "WiApache Software Foundation/DTD Struts Configuration 2.0/EN" “hp istrutsapacheorg/dtdistuts-2.0.did"> <ant> Rite Dv Mareial On, Sathys Techno logics <package names"test” extends="struts-default"> action name~"TestLogeer" cla "TestLoggerAction"> <interceptor-ref name= <result names"success">/success,jsp</result> ‘<Ipackage> <itruts> ‘The interceptor-ref element is used to add a interceptor reference 10 the action. All the interceptors are defined in the struts-default package ofthe struts-default xml fle. Now the execute() method of the TestLoggerAction class will be invoked. The execute()method just prints a statement and returns success. ‘public class TestLoggerAction public String execute() t ‘System.out printin("Inside Action, return "success"; ) ‘Based on the mapping in the XML configuration file the user will be forwarded to the success page. ‘The following log messages are logged in the console. INFO: Starting execution stack for action {fTestLogger Inside Action INFO: Finishing execution stack for action //TestLogger Struts 2.x Material 6 tapi» prefix <hemt> : <body> > wertly ation <siform action="verify"> <sitextfidd-name="uname" Iabel="Enter Username" <br> <e:pagsword name=" pw" tabel="Enter Password" <br> <isiform> </body> ‘<n eb nf ‘<web-app> “fiter> “fiter-name> strus2 <filter-name> ~fiter-tinas> orgapache.struts2 dispatcher FlterDispatcher</iter-class> <iier> “fltermapping> <filer-name> struts? </ilter-name> “uf-pattern>/*Clurkpattern> <fficersmapping> <meb-ape> <u version 2 ‘DOCTYPE struts PUBLIC : “iapeche Software Foundation/DTD Struts Configuration 2.0/EN" “hiipustrutsapache.org/dtda/steyts-2.0.dts"> <siruts> include We="struts- default!" <package name="packI™ extends="struts-default"> action watwe="'veriGy" class=" LopinAction”™> ‘result name="suceess"> /uceese ep “ressit> result name="error"> /ailarejsp <Iresull> <iacion> <ipnckage> Stina -LoginAction.java- Import com.opensymphony.xwork2.ActionSupport; public class LoginAcilon extends ActionSupport private String uname,pwds public String getPwd0 { return pwd; ¥ ‘public void setPwl(String pwd) { this.pwd » pwd; , Dubie String getUnarne() { fetorn-oname; 1 Publle void etUname(String uname) { this.ungme= uname; 7 oblic String execute t if{unamecequals("sathya") ee pwd.equats("struts2")) return SUCCESS; 3 alse “success” Satya _“Technoloaies return ERROR; ) Newer"; success. jsp <> o@ tagiid prefixe"s" uri="/struts-tags"%> U entered Username <s:property value=" uname?» <br> Uentered Password <s:property value=" pwd"/> <br> Login Success faiture.isp~ <n2> <%@ taglib prefix! Uentered Username <s:property value="'uname"/> <br> Ueentered Password <s:property value="pwd"/> <br> Login Failed <i> " urie"istruts-tags'%> ‘Application? Login. jsp-— <%@ taglid prefixes” uriaMstruts-tags" YO <temtl> <body> <seform aetion=""verify"> atfield names""uname” keyo"entersser"> <be> p=enter.pwa"> <br> "center> <web-app> <filter> <filter-name> struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher</ilter-class> <itilter> <fter-mapping> <<filter-name> struts? </fiter-name> -<url-pattern>/#<Jurl-pattern> <filter-mapping> <Iweb-app> ~struts.xm ‘<2uml version="1.0" encoding! <!DOCTYPE struts PUBLIC ‘it pache Software Foundation//DTD Struts Configuration 2.0/EN" “hetpr//struts.apache.ore/dtds/struts-2.0.dtd"> <struts> ‘<include file="st LoginActionjave——- import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport 102 as: ral nt M3 124 125 126 at 128 130 By 134 as 136 137 338 139 140 Mi 143 a 145 447 348 149, 150 181 12 353 154 155 156 381 158 159 160 x6 ier 163 168 165 166 1 167 168 169 m1 va 13 m4 115 vi6 ut 18 9 180 Sa wolegise i private String unamespwd; public String getPwal) { return ps } publi void setPwa(String pwd) ( ‘this.pwo = pwd; 1 , stm ates acces publle void setUnsme(String uname) ( cxar > ceSS ny thisuname™ uname; na cntooble a 1h SY oe es y fea Ho wolfe ublle String executed ry HE * i im aoe a if(uname.equals("fathya") && pwd.equais("struts2" return SU! ot geklent ants method il od Bonk ee ee A a ed thisaddActionError(getText(”user.pwd.invalla")); return ERROR; Aron Refourte L punctle roeltipley publie voi validate) ont emr oc wwre ¥ ‘ at SEP. i iffuname.equals(’") | unamelength ud) “ape Fp. this.addFleldError(" uname" ,getText("user.wrong")); Mepwa.equals(” I prdengthOm=0) this.addFieldError(" pwa",gerText(" pwd.wrong”);, y? -ApplicallonResourees.propertier enterasertater Username enter,pwd=Enter Password tser.yrong=<font color'red’> Useruame must be entered </font> pwdowrong=<font colors’red’> Password must be entered </font> user.gwd.lavalid=<fant color eynn’>Username and Password sre invalid <ont> struts.propertles———————————— struts,custom.i18n.resources=ApplicationResources BEERS {Paneer <hi> <%@ taglib prefis="s" uri="/struts-tags"9%6> Ventered Username <s:property values""uname"/> <br> Uentered Password <sxproperty value=" pwd"? <br> Login Success > Applications "/strats-tags" %> og <%@ tag prefixes <ai> <body> <siform sction=verify"> <sisubmit value="Click'" align="center"> { <iscform> i <foady> them struts.xml <?xml yersion="1.0" encoding="UTF-8" a semen Sathya Technolonics si <(DOCTVPE struts PUBLIC 182. "-//Apache Software Foundation/DTD Struts Configuration 2.0/EN" 183 “pists apache onwidtdslsrruts-2.v.01d"> 194 <struts> 185 <indlude file="struts-default.xml"> 186 <package name="'packl" extends~'struts-defaule"> 187 <action name~"verify" class="LoginAction"™> 139 ~/action> . 490 <ipackage> ir <struts> 1m ‘Login Action java 193 import com.opensymphony.xwork2.A\ 194 import org-apache.struts2.interceptor.*; 195 import java.util; 196 public class LoginAction extends ActionSupport implements ApplicationAware 497 { 8 Map {99 gullievod scAppicason(Map 200 { 200 shism=m; public String executeQ, m mn - 113 <%6@ taglib prefixes" urla"Zstrutstags" o> hane of Map obser 24 a : seal = “tute cour tne controtier'internaltyy property value="appticatos.cname"> < hak BS <tgronery applicatlos.ena crested reme). a ee 29 m0 Pa 221 4G taglid prefixe"s" urim"/struts-tags” > 2 <himP> 223. <body> JRA <sefarm action="verity!"> 2S <sitextfield name="uname" labele"Enter Username"/> ne <be 227 <sipassword name="'pwa"" Inbel="Enter Password" ><br> 228 <sisubmit value=™CYiek” align="center"> BS. <a version=""1.0" encoding "UTE" t> 24 <IDOCTYPE struts PUBLIC 2S. “Apache Software Foundation//DTD Struts Configuration 2.0/EN" 236 "itpe/steuts.apnche-org/dids/struts-2,0udtd"> 237 <strus> 2d “Sinclude file~"struts-defauttamt" 29 <package name="'pack!" extends="strats-default"> Ua <action naase="verity” class=" Logindction"> Sathya “Teshnologies. -sresult>/suecess.jsp <result> “<inction * <action same="next"' class"NextAction" > <resu.o/enceess Lspteesule> <laetion™ -<ipackage> <istruts> 25L apart java 252. publi case LaginAction extends ActionSupport implements SesionAware 2 vn stig ssamepe 235° Map m 256 ——_gublie String getPwa0 ( 287 retuen pwd; 2a 259 public void setPwa(String pw) { 260 this. pwd = ped 21} 262 public String getUnamed { 263 return aaame: 264 US pacts 266 thissuname = uname; 27) 268 public void setSession(Map m) 29 20 thism=my, am} m obs tosg mf 24 sm.put(user",uname) 2s mput¢"pass" ped); 276 return SUCCESS; am 4 278) xe NextA ction jaya 280 Import org.apachestrutsZ.interceptor.*: 281 import comopensymphony.xwork?."; 282 import javasutiLs 283 public class NextAction extends ActionSupport implements SessiovAware 2a 285° Map m 286 public void setSesston(Map m) 7 288 thism=ms 29} 290 public String executed mf 202 String s1=(String)m.get(*user")s 293 String s2=(String)m.get("pass"); 298 Systemout.printdn(st+" "2), 295 resurn SUCCESS; 296 27 } 298 ————-—-sectssjsp-———~ 299 <h2> 300 tag, prefie="s" urin"trutetags"™%6> EE, ee EE Sty F achnologios 301 52 303 304 305, 306 307 308, 309 32 313 34 315 316 37 38 319 320 3B 322 323 34 336 <s:form setion="next"> <s:submnit values ‘ei i <is:form> -suce.ss1.jsp <Y%0@ tapi prefise"y" urie/struts-tags™%> <s:property value="ssession.user/> <br> <s:property value="iisession,pass!'> Applications ‘Sow taglib prefixes” uri="/struts-tags”” %>- <bimi> <body> <s:actionerror?> <siform actian="verity"> <sitestfield/name="uname" label="Enter user " required="true'/> <br> 4 ssitestfield name="age” label="Enter age " required="true" /> <br> I <s:subnlt value="Click" align="center"> ; </ssform> $ <body> : ential 3 <2xmil version="1,0" encoding ADOCTYPT svins HUE “/Apas le Softcave Fosislavion/ OUD Struta Coufguradian 20V/EN" pide didsstruts2 Ould" <u> Include flem"strutedefault.xmt”> <package name="pack!” extends~"struts-default"> action names" verify” cla ‘<result name*"succes: result namee'ertae"> /uglijap result Sresult nme*"input>/oginJap <reault> “nctlon> <ipnckage> <itrate> . _ -LoginAction,javnavmw= Import com.opensymphony.xwork2-ActlonSupportt pebie cw LopoacionetndsActonSuppor private String unamey private Int age, Publle in getaged & return Age) ) Sublle vold eetAge(int age) ( thinage= ager ) ‘ublie String getUnamet { return anaes } ‘puluiie void seiUname(@iring uname) { ‘thinuneme = uaemes ! wubite String exveute() return 8UCCEE 361 362 363 365. 366 367 368 370 amt 3m 313 374 35 316 a 378 379 388 401 410 ar 412 413 44 415 a6, 47 a8 419 20 Saye “Tedmolegies ‘<?xml version="1,0" encoding="UTF-8"2> <IDOCTYPE validators PUBLIC ‘“./#QpenSymphony Group//XWork Validator 1.0.2/EN" ~phip:/www.opensymphony.comyxwork/awork-validator=1.0.2,dtd"> <validators> <field name="uname"> ‘<field-validator type="requiredstring"> <parain name="trim''>truectoaran> wuessageruser Hans 1S HeqUTESiMessAge ‘ifield-validator> <iiels> ‘<field namew"age"> ‘field-validator typee"Int"> ‘<param name="min">20</param> <param name="max">40</param> -<message>age should be between 20 and 40</inessage> <Mield-validator> <ffield> <Wvalidators> U entered Username <s:property value=" uname"> <br> Uentered Password <s:property value=" pwd" > <br> Login Success <ho> aS Er a ‘Applications uri="/struts-tags" %> "verify"> ‘<s:submit value="Click" align="center"> 1s} ‘<txml version= "1.0" encodings" UTF-8" > <IDOCTYPE struts PUBLIC ‘“ilApache Software Foundation/DTD Struts Coafigueatlan 2AVEN" “hetou/strutsapache.org/dtds/etruts:2.0.dtd"> <trut> velude Me=strute-defwult.xml"/> ‘ <package name~""packt" extends~" strats-default"> action name="verify" class="LoginAction' l <intercepiorref name="mer"> ! interceptor-ref name="corspleStaek"> <result name="success"> /success.jsp <resull> -<taction> ‘ipackage> struts weno LOgiMAI01 ja VB public class LoginAction { publ String execute) try { 1 Thread.steep(a0ngy; a emmmeagenat et catch(Exception e) 0 ~-—success.isp eet -<2xml version="1.0" encoding="UTF-8" 2> <{DOCTYPE struts PUBLIC ~/Apache Software Foundation//DTD Struts Configuration 2.0/EN" "nhitp://struts-apacheorgidtds/steots-2.0.dtd"> esrrut> uelude file="struts-default.xm package name=""pack!" extends="struts-default"> <action name="test" class="Testaction"> <<interceptorsref name="completeStack"> ‘<interceptor-ref name=""execAndWalt"> ‘<param narme="delay">3000</param> <lintereeptor-ret> <result name="wait"> /waitjspelresult> <result name="success"> /success,jsp <Jresult> </action> <ipackage> <struts> —TestActio ‘able cass TestAction ( public String execute) ( try ‘Thrend.sleep(8000); ) cateh(Exception e) a) return "success"; Wt sp <him> <head> <META HTTP-EQUIV="Refresh" content=" <head> <body? ‘<font color="blue"> <h2> Loading <tbody> <Ihteal> <Ih2> </font> SCC 088 gp <% ‘out printin("success"); we oT Says STechnologics at 48 483 484 485 486 487 488 480 490 on 42 493 494 495 Sathya Technologios ‘Applications aemnenloginsp: <%@ page content ype="weatihtmbjchurser=UTE: <%@ tngllb prefixes" uri="/struts-.ags" %> <html> chead> <head> ‘<ul> Struts 2 localization example</it> <exform actions" verity"> “<sitextfield key=" global.asername” name="uname" > -<appassword kuy='"global password” uame="pved"> <s:submit key="globalsubmit" name="submit" > <Issform> <sturl id="localeEN" action="locsle" > <e:param name=" locale” >enis:param> scur> id="localezhCN" action="locale” > <s:paramt name=""request locale” >zh_CNs:param> <s:ur> fde"oealeDE" action="lacale” > param name=""request_locale" >de</s:param> issue $05 <Surtid="localeFR" action="locale” > 506 <param name""request Joeale >fr<lsiparam> 807 eur ‘508 <s:a href="% {localeEN}" >Engiish</s:a> 509 <s:a href="%4{localechCN}" >Chinesets:a> 510 <s:a href-"%{localeDE)" >Germancis SUL aca beefo"% (localePR\" >Franceista> 312 <Ibody> 313 <Ihtm> S14 ——————~struts = 318. <tumil version=".0" encoding="UTF-8" > S16 <{1DOCTYPE struts PUBLIC 517 ‘-//Apache Software Foundation//DTD Struts Configuration 2,0/EN* S18 "hltoy/strots.apache.ong/dtds/struts-2.0.dtd" 819 <struis> S20 <canstaut name~"struts.custom.i18n.resources" value="global" > S21 _<consiayt name~"struts.devMode” values"«rue"> STL <inglude flen"strvte-deteuteara! 523 <package nanie~"pack!" estends="struts-detoult"> 524 <action name="verify" cass" Loginaction" 52 <result name~"suceess"> /successjsp <Iresul> 526 <result name~"error”> Mailurejsp <iresale> 827 <actlon> $28 <action name="locale" class="LacaleAction"> 529 <resule-oginsp<iresult> 30 </action> SB package 532 <struts> Se 534. public class LocaleAction 835 ( 536 public String executed s7 538 return "success"; 39) 540} ee sae annem neem SETI AIAG PIII eo sn 542 383 544 S45 546 54? 548 542 Ss 352 553 554 558 851 ~ LoginAction.java import com.opensymphony.xwork2.ActionSupport; public clase LaginAction extends ActionSupport t ‘peivate String enamepwds Public String getPwa\) { return pwd; ) Dublie void serPued(Steing prvi) | 1 public String getUnsme(){ return uname; ) public void setUname(String uname) ( ‘this.name = unm ) public String exteuted) ( ‘fiunameequats("sathya") && pwd.equals("struts2”)) ‘return SUCCESS} se return ERROR: Global messages ssername = Username password = Password global-submit =Submit lobal_fr.properties-———~ Global messages global.username = Nom d'utilisateur global.password = Mot de passe global.submit = Soumettre -—~--~~global_de,properties-- Global messages global.username = Benutzername global:password = Kennwart global.submit » Binreichen ~——--globsl_zh_ CN.properties—~- ‘Global messages ‘slobaLuseraamte = w7528w6237uS40d global.password = \wSbe6\u7801 ‘global submit=u63d0\udend ~=-success.isp- <i> <%@ toglib prefis—"s" uri="/struts-tags"%> Uentered Username <s:property value=""uname"/> <br> Uentered Password <s:property value=" pwa"?> <br> Login Success <a> ———faiture.jsp-———————— <ta> - ‘<%@ taglib prefix="'s" uri="/struts-tags"%> Uentered Username <s:property value=""uname''f> <br> Uentered Password <s:property values"pwd""> <bs> Login Falied <> SE ENTS RP LS, no}</div><section class="_1A5SlX"><div class="_13Fwm2"><div class="J21xEw" data-e2e="recommender-list"><h2 class="_2zE7Q5" data-e2e="list-title">You might also like</h2><ul class="_1LVQoI" data-e2e="list-content-wrapper"><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/861291062/ASP-net-Core-9-Web-API-Cookbook-Luke-Avedon-Garry-Cabrera-Z-Library-1" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Core 9 Web API Cookbook (Luke Avedon, Garry Cabrera) (Z-Library)</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/861291062/149x198/c99b6dcaa8/1750444984?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/861291062/298x396/c0c3bbdc67/1750444984?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2x9K4q"><span class="Icon-module_wrapper_LUeQrI _3BAw53"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.18 14.055a2 2 0 0 1-1.857 1.257H4.498a3.11 3.11 0 0 1-1.39-.328A3.812 3.812 0 0 1 1 11.574V5.312h3.382l2.103-3.206a2 2 0 0 1 3.203-.52l.433.433A3 3 0 0 1 11 4.14v1.172h2a3 3 0 0 1 3 3v.037c0 .763-.146 1.52-.43 2.228l-1.39 3.478Zm-9.682-.743h7.148a1 1 0 0 0 .928-.629l1.14-2.848A4 4 0 0 0 14 8.349v-.037a1 1 0 0 0-1-1H9V4.14a1 1 0 0 0-.293-.707L8.274 3 6.17 6.206a2 2 0 0 1-1.789 1.106H3v4.262c0 .686.388 1.314 1.002 1.62.154.078.324.118.496.118Z" fill="currentColor"></path></svg><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></span></span><div>100% (1)</div></div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Core 9 Web API Cookbook (Luke Avedon, Garry Cabrera) (Z-Library)</div><div class="_3UuYwh zs8qzW">670 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/419374596/02-HOPEX-IT-Architecture-Training-Handout-pdf" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">02-HOPEX IT Architecture - Training Handout PDF</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/419374596/149x198/e02d016d61/1563807459?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/419374596/298x396/42f68c3a13/1563807459?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">02-HOPEX IT Architecture - Training Handout PDF</div><div class="_3UuYwh zs8qzW">121 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/doc/212595338/Struts2-x-Sekhar" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Struts2.x Sekhar</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/212595338/149x198/481ab24408/1715990083?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/212595338/298x396/3c95ba43e8/1715990083?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Struts2.x Sekhar</div><div class="_3UuYwh zs8qzW">270 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/303784623/Factory-Studio-User-Guide" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Factory Studio User Guide</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/303784623/149x198/0cff393e74/1496817847?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/303784623/298x396/e345815492/1496817847?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2x9K4q"><span class="Icon-module_wrapper_LUeQrI _3BAw53"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.18 14.055a2 2 0 0 1-1.857 1.257H4.498a3.11 3.11 0 0 1-1.39-.328A3.812 3.812 0 0 1 1 11.574V5.312h3.382l2.103-3.206a2 2 0 0 1 3.203-.52l.433.433A3 3 0 0 1 11 4.14v1.172h2a3 3 0 0 1 3 3v.037c0 .763-.146 1.52-.43 2.228l-1.39 3.478Zm-9.682-.743h7.148a1 1 0 0 0 .928-.629l1.14-2.848A4 4 0 0 0 14 8.349v-.037a1 1 0 0 0-1-1H9V4.14a1 1 0 0 0-.293-.707L8.274 3 6.17 6.206a2 2 0 0 1-1.789 1.106H3v4.262c0 .686.388 1.314 1.002 1.62.154.078.324.118.496.118Z" fill="currentColor"></path></svg><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></span></span><div>100% (1)</div></div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Factory Studio User Guide</div><div class="_3UuYwh zs8qzW">218 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/461009761/NEW-NTJ-SPRING-pdf" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">New NTJ Spring PDF</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/461009761/149x198/28c9f83516/1730459276?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/461009761/298x396/13d6f84f6d/1730459276?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2x9K4q"><span class="Icon-module_wrapper_LUeQrI _3BAw53"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.18 14.055a2 2 0 0 1-1.857 1.257H4.498a3.11 3.11 0 0 1-1.39-.328A3.812 3.812 0 0 1 1 11.574V5.312h3.382l2.103-3.206a2 2 0 0 1 3.203-.52l.433.433A3 3 0 0 1 11 4.14v1.172h2a3 3 0 0 1 3 3v.037c0 .763-.146 1.52-.43 2.228l-1.39 3.478Zm-9.682-.743h7.148a1 1 0 0 0 .928-.629l1.14-2.848A4 4 0 0 0 14 8.349v-.037a1 1 0 0 0-1-1H9V4.14a1 1 0 0 0-.293-.707L8.274 3 6.17 6.206a2 2 0 0 1-1.789 1.106H3v4.262c0 .686.388 1.314 1.002 1.62.154.078.324.118.496.118Z" fill="currentColor"></path></svg><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></span></span><div>100% (1)</div></div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">New NTJ Spring PDF</div><div class="_3UuYwh zs8qzW">282 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/805669959/FSD-unit-4" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">FSD Unit - 4</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/805669959/149x198/b7dcd8b5a0/1734421810?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/805669959/298x396/584dded42e/1734421810?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">FSD Unit - 4</div><div class="_3UuYwh zs8qzW">23 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/845739763/devops-notes" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Devops Notes</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/845739763/149x198/0d6f88454f/1743649880?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/845739763/298x396/5b7e189364/1743649880?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Devops Notes</div><div class="_3UuYwh zs8qzW">70 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/790687938/module-1-2-notes" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Module 1&2 Notes</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/790687938/149x198/4ef01598bf/1731310312?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/790687938/298x396/95c45c8748/1731310312?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Module 1&2 Notes</div><div class="_3UuYwh zs8qzW">26 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/318765044/Leanstacks-Marionette-Spring" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Leanstacks Marionette Spring</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/318765044/149x198/429380a6bd/1468962972?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/318765044/298x396/a3d833059b/1468962972?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Leanstacks Marionette Spring</div><div class="_3UuYwh zs8qzW">236 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/622906559/manual-testing-notes" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Manual Testing Notes</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/622906559/149x198/1a1fa07c9c/1710525574?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/622906559/298x396/b27e92636e/1710525574?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Manual Testing Notes</div><div class="_3UuYwh zs8qzW">69 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/801794855/C2-notes" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">C2. Notes</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/801794855/149x198/5e7b5a94a9/1733566585?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/801794855/298x396/d902118efc/1733566585?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">C2. Notes</div><div class="_3UuYwh zs8qzW">35 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/864692650/CleanArchitecture" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Clean Architecture</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/864692650/149x198/a6fac9ef9d/1747778346?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/864692650/298x396/d8b0b9f66e/1747778346?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Clean Architecture</div><div class="_3UuYwh zs8qzW">56 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/38596568/sg247497" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">SG 247497</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/38596568/149x198/6807348d17/1350107467?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/38596568/298x396/74f636bdf8/1350107467?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">SG 247497</div><div class="_3UuYwh zs8qzW">690 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/890004757/Microsoft-Reference-Architecture-for-Commerce-Version-2-0-Pro-Other-1st-Edition-Microsoft-Corporation-instant-download" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Microsoft Reference Architecture For Commerce Version 2 0 Pro Other 1st Edition Microsoft Corporation Instant Download</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/890004757/149x198/19c97328eb/1753130916?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/890004757/298x396/d6864cd9cb/1753130916?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2x9K4q"><span class="Icon-module_wrapper_LUeQrI _3BAw53"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.18 14.055a2 2 0 0 1-1.857 1.257H4.498a3.11 3.11 0 0 1-1.39-.328A3.812 3.812 0 0 1 1 11.574V5.312h3.382l2.103-3.206a2 2 0 0 1 3.203-.52l.433.433A3 3 0 0 1 11 4.14v1.172h2a3 3 0 0 1 3 3v.037c0 .763-.146 1.52-.43 2.228l-1.39 3.478Zm-9.682-.743h7.148a1 1 0 0 0 .928-.629l1.14-2.848A4 4 0 0 0 14 8.349v-.037a1 1 0 0 0-1-1H9V4.14a1 1 0 0 0-.293-.707L8.274 3 6.17 6.206a2 2 0 0 1-1.789 1.106H3v4.262c0 .686.388 1.314 1.002 1.62.154.078.324.118.496.118Z" fill="currentColor"></path></svg><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></span></span><div>100% (2)</div></div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Microsoft Reference Architecture For Commerce Version 2 0 Pro Other 1st Edition Microsoft Corporation Instant Download</div><div class="_3UuYwh zs8qzW">53 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/6546595/Websphere5-0" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Websphere5 0</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/6546595/149x198/fc623f771c/1399632841?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/6546595/298x396/9daf549712/1399632841?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Websphere5 0</div><div class="_3UuYwh zs8qzW">680 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/718885683/IBM-Framework-for-E-Business-Technology-Solution-and-Design-Overview-Ibm-Redbooks" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">IBM Framework For E Business Technology Solution and Design Overview Ibm Redbooks</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/718885683/149x198/28641d4ad0/1752205158?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/718885683/298x396/d8535dba47/1752205158?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2x9K4q"><span class="Icon-module_wrapper_LUeQrI _3BAw53"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.18 14.055a2 2 0 0 1-1.857 1.257H4.498a3.11 3.11 0 0 1-1.39-.328A3.812 3.812 0 0 1 1 11.574V5.312h3.382l2.103-3.206a2 2 0 0 1 3.203-.52l.433.433A3 3 0 0 1 11 4.14v1.172h2a3 3 0 0 1 3 3v.037c0 .763-.146 1.52-.43 2.228l-1.39 3.478Zm-9.682-.743h7.148a1 1 0 0 0 .928-.629l1.14-2.848A4 4 0 0 0 14 8.349v-.037a1 1 0 0 0-1-1H9V4.14a1 1 0 0 0-.293-.707L8.274 3 6.17 6.206a2 2 0 0 1-1.789 1.106H3v4.262c0 .686.388 1.314 1.002 1.62.154.078.324.118.496.118Z" fill="currentColor"></path></svg><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></span></span><div>100% (1)</div></div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">IBM Framework For E Business Technology Solution and Design Overview Ibm Redbooks</div><div class="_3UuYwh zs8qzW">480 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/835235239/Clean-Arch" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Clean Arch</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/835235239/149x198/7d9a0a131a/1741092125?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/835235239/298x396/aadf390c97/1741092125?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Clean Arch</div><div class="_3UuYwh zs8qzW">7 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/442581748/NEW-KV-RAO-CORE-JAVA-pdf" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">New KV - Rao Core Java PDF</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/442581748/149x198/72d564bc74/1716166951?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/442581748/298x396/ced10d8229/1716166951?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">New KV - Rao Core Java PDF</div><div class="_3UuYwh zs8qzW">382 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/441291725/NEW-KV-RAO-CORE-JAVA-pdf" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">New KV - Rao Core Java PDF</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/441291725/149x198/79d4f5c9b9/1716078725?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/441291725/298x396/e0fc596054/1716078725?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">New KV - Rao Core Java PDF</div><div class="_3UuYwh zs8qzW">382 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/376273496/New-Kv-rao-Core-Java-2" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">New KV - Rao Core Java</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/376273496/149x198/67594a8caf/1545272249?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/376273496/298x396/0e49102d43/1545272249?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">New KV - Rao Core Java</div><div class="_3UuYwh zs8qzW">382 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/813408324/Lab01-ProductManagement-Using-ASP-net-Core-Web-API-1" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Lab01 - ProductManagement - Using ASP - Net Core Web API</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/813408324/149x198/a5dd213077/1736385080?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/813408324/298x396/2ece31c360/1736385080?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Lab01 - ProductManagement - Using ASP - Net Core Web API</div><div class="_3UuYwh zs8qzW">16 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/37740968/sg247614" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Getting Started With Ibm Websphere Business Services Fabric V6.1</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/37740968/149x198/16f5f12bd7/1330266441?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/37740968/298x396/8343de9590/1330266441?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Getting Started With Ibm Websphere Business Services Fabric V6.1</div><div class="_3UuYwh zs8qzW">540 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/225027977/Rational-Application-Developer-for-WebSphere-Software-V8-Programming-Guide" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Rational Application Developer For WebSphere Software V8 Programming Guide</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/225027977/149x198/41bd337e13/1409021312?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/225027977/298x396/dbdfeee5ba/1409021312?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Rational Application Developer For WebSphere Software V8 Programming Guide</div><div class="_3UuYwh zs8qzW">1,946 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/692374377/Front-end-development-roadmap" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Front End Development Roadmap</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/692374377/149x198/a37aaad161/1710557068?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/692374377/298x396/523d281d7c/1710557068?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Front End Development Roadmap</div><div class="_3UuYwh zs8qzW">9 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/745611785/Internship-Report-by-Aakanksha-Jaiswal" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Internship Report by Aakanksha Jaiswal</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/745611785/149x198/b1a8dd86d8/1719417780?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/745611785/298x396/108449dbb1/1719417780?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Internship Report by Aakanksha Jaiswal</div><div class="_3UuYwh zs8qzW">39 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/879698001/sest-5" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Sest</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/879698001/149x198/2bf28dcc8a/1750693565?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/879698001/298x396/a66a5cd931/1750693565?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Sest</div><div class="_3UuYwh zs8qzW">14 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/493723932/ArchestrA-Training-Manual-Class-1" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">ArchestrA Training Manual Class 1</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/493723932/149x198/b97f9e4579/1612761815?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/493723932/298x396/a35fd1a319/1612761815?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">ArchestrA Training Manual Class 1</div><div class="_3UuYwh zs8qzW">314 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/265412564/RAD-V8-ProgramminRAD-V8-Programming-Guide-Redbook-sg247835g-Guide-Redbook-Sg247835" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">RAD V8 ProgramminRAD-V8-Programming-Guide-Redbook-sg247835g Guide Redbook Sg247835</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/265412564/149x198/682e4f41b4/1431680001?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/265412564/298x396/843d946a0f/1431680001?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">RAD V8 ProgramminRAD-V8-Programming-Guide-Redbook-sg247835g Guide Redbook Sg247835</div><div class="_3UuYwh zs8qzW">1,916 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/889982234/Designing-Enterprise-Applications-with-the-J2EE-Platform-2nd-Edition-Inderjeet-Singh-instant-download" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Designing Enterprise Applications With The J2EE Platform 2nd Edition Inderjeet Singh Instant Download</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/889982234/149x198/8b8e90f3dc/1753118286?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/889982234/298x396/767254f686/1753118286?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2x9K4q"><span class="Icon-module_wrapper_LUeQrI _3BAw53"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.18 14.055a2 2 0 0 1-1.857 1.257H4.498a3.11 3.11 0 0 1-1.39-.328A3.812 3.812 0 0 1 1 11.574V5.312h3.382l2.103-3.206a2 2 0 0 1 3.203-.52l.433.433A3 3 0 0 1 11 4.14v1.172h2a3 3 0 0 1 3 3v.037c0 .763-.146 1.52-.43 2.228l-1.39 3.478Zm-9.682-.743h7.148a1 1 0 0 0 .928-.629l1.14-2.848A4 4 0 0 0 14 8.349v-.037a1 1 0 0 0-1-1H9V4.14a1 1 0 0 0-.293-.707L8.274 3 6.17 6.206a2 2 0 0 1-1.789 1.106H3v4.262c0 .686.388 1.314 1.002 1.62.154.078.324.118.496.118Z" fill="currentColor"></path></svg><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></span></span><div>100% (2)</div></div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Designing Enterprise Applications With The J2EE Platform 2nd Edition Inderjeet Singh Instant Download</div><div class="_3UuYwh zs8qzW">53 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/832665021/1735914925888" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Technical Jargons That Business Analyst Should Be Aware Of: Diwakar Singh</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/832665021/149x198/75a11b40f5/1740509654?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/832665021/298x396/9be41bc507/1740509654?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Technical Jargons That Business Analyst Should Be Aware Of: Diwakar Singh</div><div class="_3UuYwh zs8qzW">29 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/686043140/NET-Developer-Roadmap-2023-1699044865" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">NET Developer Roadmap 2023 1699044865</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/686043140/149x198/5cfc5d5a8f/1700540621?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/686043140/298x396/aeeb3308df/1700540621?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">NET Developer Roadmap 2023 1699044865</div><div class="_3UuYwh zs8qzW">22 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/882142408/unit-5-java-aktu-java" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Unit 5 Java, Aktu Java</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/882142408/149x198/6ace188717/1751212646?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/882142408/298x396/1cb66ba8e8/1751212646?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Unit 5 Java, Aktu Java</div><div class="_3UuYwh zs8qzW">12 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/687618455/module-1-2" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Module 1-2</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/687618455/149x198/b837438464/1716427988?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/687618455/298x396/7675f38140/1716427988?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Module 1-2</div><div class="_3UuYwh zs8qzW">52 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/708302973/JAVA-Notes-Part-1" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">JAVA Notes Part 1</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/708302973/149x198/997f832edd/1716485295?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/708302973/298x396/425929a523/1716485295?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">JAVA Notes Part 1</div><div class="_3UuYwh zs8qzW">187 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/770502819/SE-notes-1st-unit" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">SE Notes 1st Unit</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/770502819/149x198/0833e8119e/1726668127?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/770502819/298x396/d9cdf9fac3/1726668127?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">SE Notes 1st Unit</div><div class="_3UuYwh zs8qzW">42 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/775070825/MAD-Assignment-1" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">MAD Assignment 1</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/775070825/149x198/ac63a4f351/1727789293?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/775070825/298x396/f419ca72b2/1727789293?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">MAD Assignment 1</div><div class="_3UuYwh zs8qzW">20 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/665607890/architecture-of-complex-web-applications" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Architecture of Complex Web Applications</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/665607890/149x198/71b2f84247/1710535875?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/665607890/298x396/0d99d66a29/1710535875?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Architecture of Complex Web Applications</div><div class="_3UuYwh zs8qzW">257 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/81612338/Cast-Iron-Admin" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Cast Iron Admin</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/81612338/149x198/f418e93f0f/1357867843?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/81612338/298x396/c9f8e4e5ff/1357867843?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Cast Iron Admin</div><div class="_3UuYwh zs8qzW">546 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/727119754/Softwares-notes" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Softwares Notes</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/727119754/149x198/6f47cc170d/1714210758?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/727119754/298x396/85be26b22b/1714210758?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Softwares Notes</div><div class="_3UuYwh zs8qzW">52 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/800715309/Assignment" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Assignment</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/800715309/149x198/9c663910b4/1733333282?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/800715309/298x396/28a4341b78/1733333282?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Assignment</div><div class="_3UuYwh zs8qzW">7 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/doc/6725997/Web-Services-RedBook" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Web Services RedBook</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/6725997/149x198/1c0630cfea/1751910483?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/6725997/298x396/825afb2ccd/1751910483?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2x9K4q"><span class="Icon-module_wrapper_LUeQrI _3BAw53"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.18 14.055a2 2 0 0 1-1.857 1.257H4.498a3.11 3.11 0 0 1-1.39-.328A3.812 3.812 0 0 1 1 11.574V5.312h3.382l2.103-3.206a2 2 0 0 1 3.203-.52l.433.433A3 3 0 0 1 11 4.14v1.172h2a3 3 0 0 1 3 3v.037c0 .763-.146 1.52-.43 2.228l-1.39 3.478Zm-9.682-.743h7.148a1 1 0 0 0 .928-.629l1.14-2.848A4 4 0 0 0 14 8.349v-.037a1 1 0 0 0-1-1H9V4.14a1 1 0 0 0-.293-.707L8.274 3 6.17 6.206a2 2 0 0 1-1.789 1.106H3v4.262c0 .686.388 1.314 1.002 1.62.154.078.324.118.496.118Z" fill="currentColor"></path></svg><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></span></span><div>100% (1)</div></div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Web Services RedBook</div><div class="_3UuYwh zs8qzW">624 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/443732283/NEW-KV-RAO-CORE-JAVA-pdf" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">New KV - Rao Core Java PDF</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/443732283/149x198/0fc1202fa2/1715995867?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/443732283/298x396/d53c4bfb5d/1715995867?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">New KV - Rao Core Java PDF</div><div class="_3UuYwh zs8qzW">382 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/874071886/SA-SE3030-Finl" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">SA - SE3030 Finl</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/874071886/149x198/510a40b3e7/1749536494?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/874071886/298x396/af8f48a831/1749536494?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">SA - SE3030 Finl</div><div class="_3UuYwh zs8qzW">2 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/692374077/Full-Stack-Web-Developer-Roadmap" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Full Stack Web Developer Roadmap</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/692374077/149x198/59b94dc7f5/1710567585?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/692374077/298x396/3ef5409eff/1710567585?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Full Stack Web Developer Roadmap</div><div class="_3UuYwh zs8qzW">13 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/865865463/PRN232Lab-01" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">PRN232Lab 01</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/865865463/149x198/5c3c68348b/1747972720?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/865865463/298x396/52436ad736/1747972720?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">PRN232Lab 01</div><div class="_3UuYwh zs8qzW">26 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/566427867/Advanced-IOS-App-Architecture-by-Rene-Cacheaux-Josh-Berlin-Z-lib-org" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Advanced IOS App Architecture by René Cacheaux Josh Berlin</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/566427867/149x198/50fb28d33e/1745221256?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/566427867/298x396/2cc62cd469/1745221256?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2x9K4q"><span class="Icon-module_wrapper_LUeQrI _3BAw53"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.18 14.055a2 2 0 0 1-1.857 1.257H4.498a3.11 3.11 0 0 1-1.39-.328A3.812 3.812 0 0 1 1 11.574V5.312h3.382l2.103-3.206a2 2 0 0 1 3.203-.52l.433.433A3 3 0 0 1 11 4.14v1.172h2a3 3 0 0 1 3 3v.037c0 .763-.146 1.52-.43 2.228l-1.39 3.478Zm-9.682-.743h7.148a1 1 0 0 0 .928-.629l1.14-2.848A4 4 0 0 0 14 8.349v-.037a1 1 0 0 0-1-1H9V4.14a1 1 0 0 0-.293-.707L8.274 3 6.17 6.206a2 2 0 0 1-1.789 1.106H3v4.262c0 .686.388 1.314 1.002 1.62.154.078.324.118.496.118Z" fill="currentColor"></path></svg><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></span></span><div>100% (2)</div></div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Advanced IOS App Architecture by René Cacheaux Josh Berlin</div><div class="_3UuYwh zs8qzW">334 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/468150560/SATEESH-GUPTA-SIR-CORE-JAVA-NOTES-pdf" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Sateesh Gupta Sir Core Java Notes PDF</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/468150560/149x198/b7975fee97/1716190732?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/468150560/298x396/53adf591cc/1716190732?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Sateesh Gupta Sir Core Java Notes PDF</div><div class="_3UuYwh zs8qzW">420 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/867701892/sepm-QB" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Sepm QB</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/867701892/149x198/452a3a75b5/1748319366?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/867701892/298x396/4f1f72341a/1748319366?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Sepm QB</div><div class="_3UuYwh zs8qzW">19 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/540652105/Clean-Architectures-in-Python" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Clean Architectures in Python</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/540652105/149x198/2844c2615c/1730272518?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/540652105/298x396/f17df10fa9/1730272518?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2x9K4q"><span class="Icon-module_wrapper_LUeQrI _3BAw53"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.18 14.055a2 2 0 0 1-1.857 1.257H4.498a3.11 3.11 0 0 1-1.39-.328A3.812 3.812 0 0 1 1 11.574V5.312h3.382l2.103-3.206a2 2 0 0 1 3.203-.52l.433.433A3 3 0 0 1 11 4.14v1.172h2a3 3 0 0 1 3 3v.037c0 .763-.146 1.52-.43 2.228l-1.39 3.478Zm-9.682-.743h7.148a1 1 0 0 0 .928-.629l1.14-2.848A4 4 0 0 0 14 8.349v-.037a1 1 0 0 0-1-1H9V4.14a1 1 0 0 0-.293-.707L8.274 3 6.17 6.206a2 2 0 0 1-1.789 1.106H3v4.262c0 .686.388 1.314 1.002 1.62.154.078.324.118.496.118Z" fill="currentColor"></path></svg><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></span></span><div>100% (1)</div></div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Clean Architectures in Python</div><div class="_3UuYwh zs8qzW">153 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/658150616/interview-que-ans" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Interview Que Ans</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/658150616/149x198/eee4af0b7a/1710575551?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/658150616/298x396/eee65bf5af/1710575551?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Interview Que Ans</div><div class="_3UuYwh zs8qzW">31 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/73817325/Industrial-Training-Report" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Industrial Training Report</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/73817325/149x198/1697470c3f/1336004149?v=1" srcSet="https://imgv2-1-f.scribdassets.com/img/document/73817325/298x396/23f0b4cfeb/1336004149?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Industrial Training Report</div><div class="_3UuYwh zs8qzW">48 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/doc/124908995/Phalcon-Php-Framework-Documentation" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Phalcon PHP Framework Documentation</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-1-f.scribdassets.com/img/document/124908995/149x198/0eca3f3844/1389636368?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/124908995/298x396/d48bfb7869/1389636368?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Phalcon PHP Framework Documentation</div><div class="_3UuYwh zs8qzW">635 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/889375580/Managing-Information-Access-1-st-Edition-William-Moore-pdf-download" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">Managing Information Access 1 ST Edition William Moore PDF Download</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/889375580/149x198/8d71613653/1752745368?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/889375580/298x396/ea35e70262/1752745368?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">Managing Information Access 1 ST Edition William Moore PDF Download</div><div class="_3UuYwh zs8qzW">52 pages</div></div></div></div></li><li class="_2ariaX" data-e2e="document-list-item"><div class=""><div data-e2e="list-item-info" class="_1x3wi9"><a class="jKsa3q" data-e2e="list-item-link" href="https://www.scribd.com/document/142013810/Sg-246167" target="_blank"><span style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal">SG 246167</span></a><div class="DocumentThumbnail-module_wrapper_ljLM72"><img class="DocumentThumbnail-module_image_0tTQ0O _2Jhoqp" data-testid="thumbnail" alt="" loading="eager" src="https://imgv2-2-f.scribdassets.com/img/document/142013810/149x198/8a4c0e7610/1380624155?v=1" srcSet="https://imgv2-2-f.scribdassets.com/img/document/142013810/298x396/9a4711a529/1380624155?v=1 2x" style="width:80px;height:106.66666666666667px"/><svg class="DocumentThumbnail-module_tagOverlay_hN0eTR" viewBox="0 0 108 145" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H35V15C35 17.2091 33.2091 19 31 19H0V0Z" fill="var(--color-charcoal-400)"></path><text x="8" y="13" fill="var(--spl-color-text-white)">PDF</text></svg><div class="DocumentThumbnail-module_stack_66zCPf"></div><div class="DocumentThumbnail-module_stack_66zCPf"></div></div><div class="_1wdVHx"><div class="_1zgq1v"><div class="_2Uoa2G">No ratings yet</div></div><div class="_33xQ8e _2kfau2" data-e2e="doc-info-title">SG 246167</div><div class="_3UuYwh zs8qzW">654 pages</div></div></div></div></li></ul></div></div></section></div><div class="GridColumn-module_wrapper_soqyu- GridColumn-module_hide_below_l_7M0-Xa GridColumn-module_extended_xl4_2_1yIW6E GridColumn-module_extended_xl3_2_mt-u-v GridColumn-module_extended_xl2_3_m7b4Yd GridColumn-module_extended_xl_3_-M4jBh GridColumn-module_extended_l_3_BRh6gm GridColumn-module_extended_m_3_WS7F6q GridColumn-module_extended_s_3_80JJD4 GridColumn-module_extended_xs_3_1WuHyd GridColumn-module_extended_xxs_3_glgZEz"></div></div><div class="GridRow-module_wrapper_Uub42x GridRow-module_extended_Bvagp4"><div class="GridColumn-module_wrapper_soqyu- GridColumn-module_extended_xl4_12_UeyicL GridColumn-module_extended_xl3_12_TsrxQ- GridColumn-module_extended_xl2_12_ceos-a GridColumn-module_extended_xl_12_7vx87Y GridColumn-module_extended_l_12_gCRsqg GridColumn-module_extended_m_8_bDZzOd GridColumn-module_extended_s_4_ZU5JoR GridColumn-module_extended_xs_4_NH6tlg GridColumn-module_extended_xxs_4_dHKOII"></div></div></div><footer class="Footer-module_wrapper__7jj0T _1ZsTbw" id="global_footer"><h2 class="visually_hidden">Footer menu</h2><div class="GridContainer-module_wrapper__7Rx6L GridContainer-module_extended__fiqt9"><div class="GridRow-module_wrapper__Uub42 GridRow-module_extended__Bvagp"><div class="GridColumn-module_wrapper__soqyu GridColumn-module_extended_xl4_12__Ueyic GridColumn-module_extended_xl3_12__TsrxQ GridColumn-module_extended_xl2_12__ceos- GridColumn-module_extended_xl_12__7vx87 GridColumn-module_extended_l_12__gCRsq GridColumn-module_extended_m_8__bDZzO GridColumn-module_extended_s_4__ZU5Jo GridColumn-module_extended_xs_4__NH6tl GridColumn-module_extended_xxs_4__dHKOI"><div class="BackToTopLink-module_wrapper__HTQnD visually_hidden"><a data-e2e="back-to-top-link" href="#global_header" class="BackToTopLink-module_link__EOy-v">Back to top</a></div></div></div><div class="GridRow-module_wrapper__Uub42 GridRow-module_extended__Bvagp"><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_below_s__Lbw11 GridColumn-module_extended_xl4_2__1yIW6 GridColumn-module_extended_xl3_2__mt-u- GridColumn-module_extended_xl2_2__A8qwF GridColumn-module_extended_xl_2__QYBNc GridColumn-module_extended_l_2__iqMJD GridColumn-module_extended_m_2__9nXEO GridColumn-module_extended_s_2__-n3HH GridColumn-module_extended_xs_2__C9iyY GridColumn-module_extended_xxs_2__1MEQR"><div class="Footer-module_horizontalColumn__vuSBJ"><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">About</p><ul class="Footer-module_columnList__fqabA"><li><a aria-disabled="false" aria-label="About Scribd, Inc." class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_about_column_about_scribd_link" href="https://www.scribd.com/about"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">About Scribd, Inc.</span></span></a></li><li><a aria-disabled="false" aria-label="Everand: Ebooks & Audiobooks" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_about_column_everand_books_audiobooks_link" href="https://www.everand.com" target="_blank"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Everand: Ebooks & Audiobooks</span></span></a></li><li><a aria-disabled="false" aria-label="SlideShare" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="shared.footer.slideshare" href="https://www.slideshare.net/" target="_blank"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">SlideShare</span></span></a></li><li><a aria-disabled="false" aria-label="Join our team!" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_about_column_join_our_team_link" href="https://www.scribd.com/careers" target="_self"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Join our team!</span></span></a></li><li><a aria-disabled="false" aria-label="Contact us" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_about_column_contact_us_link" href="https://www.scribd.com/contact" target="_self"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Contact us</span></span></a></li></ul></div></div><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_below_s__Lbw11 GridColumn-module_extended_xl4_2__1yIW6 GridColumn-module_extended_xl3_2__mt-u- GridColumn-module_extended_xl2_2__A8qwF GridColumn-module_extended_xl_2__QYBNc GridColumn-module_extended_l_2__iqMJD GridColumn-module_extended_m_2__9nXEO GridColumn-module_extended_s_2__-n3HH GridColumn-module_extended_xs_2__C9iyY GridColumn-module_extended_xxs_2__1MEQR"><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">Support</p><ul class="Footer-module_columnList__fqabA"><li><a aria-disabled="false" aria-label="Help / FAQ" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_support_column_help_faq_link" href="http://support.scribd.com/hc/en-us"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Help / FAQ</span></span></a></li><li><a aria-disabled="false" aria-label="Accessibility" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_support_column_accessibility_link" href="https://support.scribd.com/hc/en-us/articles/210129586-Accessibility-Notice"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Accessibility</span></span></a></li><li><a aria-disabled="false" aria-label="Purchase help" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_support_column_purchase_help_link" href="https://support.scribd.com/hc/en-us/sections/202246306"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Purchase help</span></span></a></li><li><a aria-disabled="false" aria-label="AdChoices" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_support_column_adchoices_link" href="https://support.scribd.com/hc/en-us/articles/210129366"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">AdChoices</span></span></a></li></ul></div><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_below_s__Lbw11 GridColumn-module_extended_xl4_2__1yIW6 GridColumn-module_extended_xl3_2__mt-u- GridColumn-module_extended_xl2_2__A8qwF GridColumn-module_extended_xl_2__QYBNc GridColumn-module_extended_l_2__iqMJD GridColumn-module_extended_m_2__9nXEO GridColumn-module_extended_s_2__-n3HH GridColumn-module_extended_xs_2__C9iyY GridColumn-module_extended_xxs_2__1MEQR"><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">Legal</p><ul class="Footer-module_columnList__fqabA"><li><a aria-disabled="false" aria-label="Terms" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_legal_column_terms_link" href="https://support.scribd.com/hc/en-us/articles/210129326-General-Terms-of-Use"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Terms</span></span></a></li><li><a aria-disabled="false" aria-label="Privacy" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_legal_column_privacy_link" href="https://www.scribd.com/privacy" target="_self"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Privacy</span></span></a></li><li><a aria-disabled="false" aria-label="Copyright" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_legal_column_copyright_link" href="https://support.scribd.com/hc/en-us/sections/202246086"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Copyright</span></span></a></li><li><a aria-disabled="false" aria-label="Do not sell or share my personal information" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_legal_privacy_request_form_link" href="https://support.scribd.com/hc/articles/360038016931-Privacy-Rights-Request-Form"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Do not sell or share my personal information</span></span></a></li></ul></div><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_below_s__Lbw11 GridColumn-module_extended_xl4_2__1yIW6 GridColumn-module_extended_xl3_2__mt-u- GridColumn-module_extended_xl2_2__A8qwF GridColumn-module_extended_xl_2__QYBNc GridColumn-module_extended_l_2__iqMJD GridColumn-module_extended_m_2__9nXEO GridColumn-module_extended_s_2__-n3HH GridColumn-module_extended_xs_2__C9iyY GridColumn-module_extended_xxs_2__1MEQR"><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">Social</p><ul class="Footer-module_columnList__fqabA"><li><a aria-disabled="false" aria-label="Scribd on Instagram" class="TextButton-module_wrapper__ZwW-w SocialLink-module_wrapper__7Rvvt" data-e2e="footer_social_column_instagram_link" href="https://www.instagram.com/scribd/"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl"><span class="SvgIcon-module_wrapper__1fPqw SocialLink-module_iconImage__JSzvR"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" class="SvgIcon-module_icon__sUHUn"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 3.081c1.602 0 1.792.006 2.425.035.584.027.902.124 1.114.207.26.096.497.249.69.448.2.194.353.43.45.691.082.212.18.53.206 1.114.029.633.035.823.035 2.425 0 1.602-.006 1.792-.035 2.425-.027.585-.124.902-.207 1.114a1.99 1.99 0 01-1.138 1.138c-.212.082-.53.18-1.114.207-.633.029-.823.035-2.425.035-1.602 0-1.792-.006-2.425-.035-.585-.027-.902-.124-1.114-.207a1.858 1.858 0 01-.69-.449c-.2-.193-.353-.43-.45-.69-.082-.212-.18-.53-.206-1.114-.029-.633-.035-.823-.035-2.425 0-1.602.006-1.792.035-2.425.027-.585.124-.902.207-1.114.096-.26.25-.497.449-.69.193-.2.43-.353.69-.45.212-.082.53-.18 1.114-.206.633-.029.823-.035 2.425-.035L8 3.081zm0-1.082c-1.629 0-1.833.007-2.473.036-.64.03-1.076.132-1.457.28-.4.15-.763.387-1.063.692-.305.3-.541.663-.692 1.063-.148.381-.25.818-.279 1.457C2.007 6.165 2 6.37 2 8s.007 1.834.036 2.474c.03.64.13 1.075.279 1.456.15.4.387.763.692 1.063.3.305.663.541 1.063.692.381.148.818.25 1.457.279.638.029.844.036 2.473.036 1.63 0 1.834-.007 2.474-.036.64-.03 1.075-.13 1.456-.28a3.068 3.068 0 001.755-1.754c.148-.381.25-.818.279-1.457C13.993 9.835 14 9.63 14 8c0-1.63-.007-1.833-.036-2.473-.03-.64-.13-1.075-.28-1.456-.15-.4-.386-.763-.691-1.063a2.946 2.946 0 00-1.063-.692c-.381-.148-.818-.25-1.457-.279C9.835 2.007 9.63 2 8 2v-.001zm0 2.92a3.081 3.081 0 100 6.162A3.081 3.081 0 008 4.92zm0 5.082A2 2 0 118 6 2 2 0 018 10zm3.923-5.204a.72.72 0 11-1.44 0 .72.72 0 011.44 0z" fill="currentColor"></path></svg><span style="border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;word-wrap:normal">Instagram</span></span> <!-- -->Instagram</span></span></a></li><li><a aria-disabled="false" aria-label="Scribd on Facebook" class="TextButton-module_wrapper__ZwW-w SocialLink-module_wrapper__7Rvvt" data-e2e="footer_social_column_facebook_link" href="https://www.facebook.com/Scribd/"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl"><span class="SvgIcon-module_wrapper__1fPqw SocialLink-module_iconImage__JSzvR"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" class="SvgIcon-module_icon__sUHUn"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 2a6 6 0 01.938 11.927V9.734h1.397L10.602 8H8.937V6.875c0-.474.233-.938.978-.938h.757V4.462s-.08-.014-.21-.032a9.524 9.524 0 00-.887-.08 6.278 6.278 0 00-.246-.005c-1.37 0-2.267.83-2.267 2.334V8H5.54v1.734h1.524v4.193A6.002 6.002 0 018 2z" fill="currentColor"></path></svg><span style="border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;word-wrap:normal">Facebook</span></span> <!-- -->Facebook</span></span></a></li><li><a aria-disabled="false" aria-label="Scribd on Pinterest" class="TextButton-module_wrapper__ZwW-w SocialLink-module_wrapper__7Rvvt" data-e2e="footer_social_column_pinterest_link" href="https://www.pinterest.com/scribd/"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl"><span class="SvgIcon-module_wrapper__1fPqw SocialLink-module_iconImage__JSzvR"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" class="SvgIcon-module_icon__sUHUn"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.217 12.268A5.98 5.98 0 018 14c-.62 0-1.218-.094-1.78-.269.246-.4.606-1.045.738-1.563l.375-1.427c.193.375.766.691 1.373.691 1.808 0 3.111-1.664 3.111-3.733 0-1.985-1.62-3.467-3.698-3.467-2.593 0-3.966 1.738-3.966 3.63 0 .884.47 1.975 1.22 2.326.113.054.178.03.202-.08l.058-.233.11-.448a.179.179 0 00-.04-.173c-.246-.3-.444-.854-.444-1.368 0-1.323 1.003-2.602 2.711-2.602 1.477 0 2.509 1.002 2.509 2.44 0 1.62-.82 2.745-1.886 2.745-.588 0-1.033-.489-.89-1.086.062-.255.143-.517.222-.772.142-.46.277-.898.277-1.228 0-.46-.246-.845-.76-.845-.602 0-1.086.622-1.086 1.457 0 .528.177.889.177.889s-.592 2.514-.7 2.983c-.12.518-.075 1.247-.02 1.722A6.003 6.003 0 012 8a6 6 0 016.653-5.965A5.988 5.988 0 0113.99 8.01a5.981 5.981 0 01-1.773 4.258z" fill="currentColor"></path></svg><span style="border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;word-wrap:normal">Pinterest</span></span> <!-- -->Pinterest</span></span></a></li></ul></div><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_below_m__-PoVO GridColumn-module_extended_xl4_2__1yIW6 GridColumn-module_extended_xl3_2__mt-u- GridColumn-module_extended_xl2_2__A8qwF GridColumn-module_extended_xl_2__QYBNc GridColumn-module_extended_l_2__iqMJD GridColumn-module_extended_m_2__9nXEO GridColumn-module_extended_s_2__-n3HH GridColumn-module_extended_xs_2__C9iyY GridColumn-module_extended_xxs_2__1MEQR"></div><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_below_m__-PoVO GridColumn-module_extended_xl4_2__1yIW6 GridColumn-module_extended_xl3_2__mt-u- GridColumn-module_extended_xl2_2__A8qwF GridColumn-module_extended_xl_2__QYBNc GridColumn-module_extended_l_2__iqMJD GridColumn-module_extended_m_2__9nXEO GridColumn-module_extended_s_2__-n3HH GridColumn-module_extended_xs_2__C9iyY GridColumn-module_extended_xxs_2__1MEQR"><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">Get our free apps</p><ul class="mobile_icons wrapper__app_store_buttons"><li class="wrapper__store_button" data-e2e="app_store_btn"><a aria-label="Scribd - Download on the App Store" class="app_link ios_btn" data-e2e="ios_btn" href="https://apps.apple.com/us/app/6448807714?mt=8&pt=298534"><div class="app_store_img"><img class="LazyImage-module_image__uh0sq" alt="Scribd - Download on the App Store"/></div></a></li><li class="wrapper__store_button" data-e2e="app_store_btn"><a aria-label="Scribd - Get it on Google Play" class="app_link google_play_btn" data-e2e="google_play_btn" href="https://play.google.com/store/apps/details?id=com.scribd.app.reader0.docs"><div class="app_store_img play_store_link"><img class="LazyImage-module_image__uh0sq" alt="Scribd - Get it on Google Play"/></div></a></li></ul></div></div><div class="GridRow-module_wrapper__Uub42 GridRow-module_extended__Bvagp"><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_above_s__NbVNC GridColumn-module_extended_xl4_12__Ueyic GridColumn-module_extended_xl3_12__TsrxQ GridColumn-module_extended_xl2_12__ceos- GridColumn-module_extended_xl_12__7vx87 GridColumn-module_extended_l_12__gCRsq GridColumn-module_extended_m_8__bDZzO GridColumn-module_extended_s_2__-n3HH GridColumn-module_extended_xs_2__C9iyY GridColumn-module_extended_xxs_2__1MEQR"><div class="Footer-module_verticalColumn__-CR6f"><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">About</p><ul class="Footer-module_columnList__fqabA"><li><a aria-disabled="false" aria-label="About Scribd, Inc." class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_about_column_about_scribd_link" href="https://www.scribd.com/about"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">About Scribd, Inc.</span></span></a></li><li><a aria-disabled="false" aria-label="Everand: Ebooks & Audiobooks" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_about_column_everand_books_audiobooks_link" href="https://www.everand.com" target="_blank"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Everand: Ebooks & Audiobooks</span></span></a></li><li><a aria-disabled="false" aria-label="SlideShare" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="shared.footer.slideshare" href="https://www.slideshare.net/" target="_blank"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">SlideShare</span></span></a></li><li><a aria-disabled="false" aria-label="Join our team!" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_about_column_join_our_team_link" href="https://www.scribd.com/careers" target="_self"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Join our team!</span></span></a></li><li><a aria-disabled="false" aria-label="Contact us" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_about_column_contact_us_link" href="https://www.scribd.com/contact" target="_self"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Contact us</span></span></a></li></ul></div><div class="Footer-module_verticalColumn__-CR6f"><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">Legal</p><ul class="Footer-module_columnList__fqabA"><li><a aria-disabled="false" aria-label="Terms" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_legal_column_terms_link" href="https://support.scribd.com/hc/en-us/articles/210129326-General-Terms-of-Use"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Terms</span></span></a></li><li><a aria-disabled="false" aria-label="Privacy" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_legal_column_privacy_link" href="https://www.scribd.com/privacy" target="_self"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Privacy</span></span></a></li><li><a aria-disabled="false" aria-label="Copyright" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_legal_column_copyright_link" href="https://support.scribd.com/hc/en-us/sections/202246086"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Copyright</span></span></a></li><li><a aria-disabled="false" aria-label="Do not sell or share my personal information" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_legal_privacy_request_form_link" href="https://support.scribd.com/hc/articles/360038016931-Privacy-Rights-Request-Form"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Do not sell or share my personal information</span></span></a></li></ul></div></div><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_above_s__NbVNC GridColumn-module_extended_xl4_12__Ueyic GridColumn-module_extended_xl3_12__TsrxQ GridColumn-module_extended_xl2_12__ceos- GridColumn-module_extended_xl_12__7vx87 GridColumn-module_extended_l_12__gCRsq GridColumn-module_extended_m_8__bDZzO GridColumn-module_extended_s_2__-n3HH GridColumn-module_extended_xs_2__C9iyY GridColumn-module_extended_xxs_2__1MEQR"><div class="Footer-module_verticalColumn__-CR6f"><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">Support</p><ul class="Footer-module_columnList__fqabA"><li><a aria-disabled="false" aria-label="Help / FAQ" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_support_column_help_faq_link" href="http://support.scribd.com/hc/en-us"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Help / FAQ</span></span></a></li><li><a aria-disabled="false" aria-label="Accessibility" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_support_column_accessibility_link" href="https://support.scribd.com/hc/en-us/articles/210129586-Accessibility-Notice"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Accessibility</span></span></a></li><li><a aria-disabled="false" aria-label="Purchase help" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_support_column_purchase_help_link" href="https://support.scribd.com/hc/en-us/sections/202246306"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Purchase help</span></span></a></li><li><a aria-disabled="false" aria-label="AdChoices" class="TextButton-module_wrapper__ZwW-w FooterLink-module_wrapper__V1y4b" data-e2e="footer_support_column_adchoices_link" href="https://support.scribd.com/hc/en-us/articles/210129366"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">AdChoices</span></span></a></li></ul></div><div><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">Social</p><ul class="Footer-module_columnList__fqabA"><li><a aria-disabled="false" aria-label="Scribd on Instagram" class="TextButton-module_wrapper__ZwW-w SocialLink-module_wrapper__7Rvvt" data-e2e="footer_social_column_instagram_link" href="https://www.instagram.com/scribd/"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl"><span class="SvgIcon-module_wrapper__1fPqw SocialLink-module_iconImage__JSzvR"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" class="SvgIcon-module_icon__sUHUn"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 3.081c1.602 0 1.792.006 2.425.035.584.027.902.124 1.114.207.26.096.497.249.69.448.2.194.353.43.45.691.082.212.18.53.206 1.114.029.633.035.823.035 2.425 0 1.602-.006 1.792-.035 2.425-.027.585-.124.902-.207 1.114a1.99 1.99 0 01-1.138 1.138c-.212.082-.53.18-1.114.207-.633.029-.823.035-2.425.035-1.602 0-1.792-.006-2.425-.035-.585-.027-.902-.124-1.114-.207a1.858 1.858 0 01-.69-.449c-.2-.193-.353-.43-.45-.69-.082-.212-.18-.53-.206-1.114-.029-.633-.035-.823-.035-2.425 0-1.602.006-1.792.035-2.425.027-.585.124-.902.207-1.114.096-.26.25-.497.449-.69.193-.2.43-.353.69-.45.212-.082.53-.18 1.114-.206.633-.029.823-.035 2.425-.035L8 3.081zm0-1.082c-1.629 0-1.833.007-2.473.036-.64.03-1.076.132-1.457.28-.4.15-.763.387-1.063.692-.305.3-.541.663-.692 1.063-.148.381-.25.818-.279 1.457C2.007 6.165 2 6.37 2 8s.007 1.834.036 2.474c.03.64.13 1.075.279 1.456.15.4.387.763.692 1.063.3.305.663.541 1.063.692.381.148.818.25 1.457.279.638.029.844.036 2.473.036 1.63 0 1.834-.007 2.474-.036.64-.03 1.075-.13 1.456-.28a3.068 3.068 0 001.755-1.754c.148-.381.25-.818.279-1.457C13.993 9.835 14 9.63 14 8c0-1.63-.007-1.833-.036-2.473-.03-.64-.13-1.075-.28-1.456-.15-.4-.386-.763-.691-1.063a2.946 2.946 0 00-1.063-.692c-.381-.148-.818-.25-1.457-.279C9.835 2.007 9.63 2 8 2v-.001zm0 2.92a3.081 3.081 0 100 6.162A3.081 3.081 0 008 4.92zm0 5.082A2 2 0 118 6 2 2 0 018 10zm3.923-5.204a.72.72 0 11-1.44 0 .72.72 0 011.44 0z" fill="currentColor"></path></svg><span style="border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;word-wrap:normal">Instagram</span></span> <!-- -->Instagram</span></span></a></li><li><a aria-disabled="false" aria-label="Scribd on Facebook" class="TextButton-module_wrapper__ZwW-w SocialLink-module_wrapper__7Rvvt" data-e2e="footer_social_column_facebook_link" href="https://www.facebook.com/Scribd/"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl"><span class="SvgIcon-module_wrapper__1fPqw SocialLink-module_iconImage__JSzvR"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" class="SvgIcon-module_icon__sUHUn"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 2a6 6 0 01.938 11.927V9.734h1.397L10.602 8H8.937V6.875c0-.474.233-.938.978-.938h.757V4.462s-.08-.014-.21-.032a9.524 9.524 0 00-.887-.08 6.278 6.278 0 00-.246-.005c-1.37 0-2.267.83-2.267 2.334V8H5.54v1.734h1.524v4.193A6.002 6.002 0 018 2z" fill="currentColor"></path></svg><span style="border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;word-wrap:normal">Facebook</span></span> <!-- -->Facebook</span></span></a></li><li><a aria-disabled="false" aria-label="Scribd on Pinterest" class="TextButton-module_wrapper__ZwW-w SocialLink-module_wrapper__7Rvvt" data-e2e="footer_social_column_pinterest_link" href="https://www.pinterest.com/scribd/"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl"><span class="SvgIcon-module_wrapper__1fPqw SocialLink-module_iconImage__JSzvR"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" class="SvgIcon-module_icon__sUHUn"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.217 12.268A5.98 5.98 0 018 14c-.62 0-1.218-.094-1.78-.269.246-.4.606-1.045.738-1.563l.375-1.427c.193.375.766.691 1.373.691 1.808 0 3.111-1.664 3.111-3.733 0-1.985-1.62-3.467-3.698-3.467-2.593 0-3.966 1.738-3.966 3.63 0 .884.47 1.975 1.22 2.326.113.054.178.03.202-.08l.058-.233.11-.448a.179.179 0 00-.04-.173c-.246-.3-.444-.854-.444-1.368 0-1.323 1.003-2.602 2.711-2.602 1.477 0 2.509 1.002 2.509 2.44 0 1.62-.82 2.745-1.886 2.745-.588 0-1.033-.489-.89-1.086.062-.255.143-.517.222-.772.142-.46.277-.898.277-1.228 0-.46-.246-.845-.76-.845-.602 0-1.086.622-1.086 1.457 0 .528.177.889.177.889s-.592 2.514-.7 2.983c-.12.518-.075 1.247-.02 1.722A6.003 6.003 0 012 8a6 6 0 016.653-5.965A5.988 5.988 0 0113.99 8.01a5.981 5.981 0 01-1.773 4.258z" fill="currentColor"></path></svg><span style="border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;word-wrap:normal">Pinterest</span></span> <!-- -->Pinterest</span></span></a></li></ul></div></div></div><div class="GridRow-module_wrapper__Uub42 GridRow-module_extended__Bvagp"><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_above_m__zwIrv GridColumn-module_extended_xl4_12__Ueyic GridColumn-module_extended_xl3_12__TsrxQ GridColumn-module_extended_xl2_12__ceos- GridColumn-module_extended_xl_12__7vx87 GridColumn-module_extended_l_12__gCRsq GridColumn-module_extended_m_8__bDZzO GridColumn-module_extended_s_4__ZU5Jo GridColumn-module_extended_xs_4__NH6tl GridColumn-module_extended_xxs_4__dHKOI"><p class="Footer-module_columnHeader__gcdjp Footer-module_scribdRebrandColumnHeader__OzOfB">Get our free apps</p><ul class="mobile_icons wrapper__app_store_buttons"><li class="wrapper__store_button" data-e2e="app_store_btn"><a aria-label="Scribd - Download on the App Store" class="app_link ios_btn" data-e2e="ios_btn" href="https://apps.apple.com/us/app/6448807714?mt=8&pt=298534"><div class="app_store_img"><img class="LazyImage-module_image__uh0sq" alt="Scribd - Download on the App Store"/></div></a></li><li class="wrapper__store_button" data-e2e="app_store_btn"><a aria-label="Scribd - Get it on Google Play" class="app_link google_play_btn" data-e2e="google_play_btn" href="https://play.google.com/store/apps/details?id=com.scribd.app.reader0.docs"><div class="app_store_img play_store_link"><img class="LazyImage-module_image__uh0sq" alt="Scribd - Get it on Google Play"/></div></a></li></ul></div></div><div class="GridRow-module_wrapper__Uub42 GridRow-module_extended__Bvagp"><div class="GridColumn-module_wrapper__soqyu GridColumn-module_extended_xl4_12__Ueyic GridColumn-module_extended_xl3_12__TsrxQ GridColumn-module_extended_xl2_12__ceos- GridColumn-module_extended_xl_12__7vx87 GridColumn-module_extended_l_12__gCRsq GridColumn-module_extended_m_8__bDZzO GridColumn-module_extended_s_4__ZU5Jo GridColumn-module_extended_xs_4__NH6tl GridColumn-module_extended_xxs_4__dHKOI"><div class="Footer-module_horizontalDivider__Z6XJu"></div></div></div><div class="GridRow-module_wrapper__Uub42 GridRow-module_extended__Bvagp"><div class="GridColumn-module_wrapper__soqyu GridColumn-module_extended_xl4_7__-9AEI GridColumn-module_extended_xl3_7__B6ct2 GridColumn-module_extended_xl2_7__Nztja GridColumn-module_extended_xl_7__OFVFv GridColumn-module_extended_l_12__gCRsq GridColumn-module_extended_m_8__bDZzO GridColumn-module_extended_s_4__ZU5Jo GridColumn-module_extended_xs_4__NH6tl GridColumn-module_extended_xxs_4__dHKOI"><ul class="ContentTypeColumn-module_contentTypesList__WIKOq"><li><a aria-disabled="false" aria-label="Documents" class="TextButton-module_wrapper__ZwW-w ContentTypeColumn-module_contentTypeLink__K3M9d" data-e2e="footer_content_type_column_documents_link" href="/https/www.scribd.com/docs"><span class="TextButton-module_content__6x-Ra"><span class="TextButton-module_children__HwxUl">Documents</span></span></a></li></ul></div><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_below_l__7M0-X GridColumn-module_extended_xl4_5__PuEUy GridColumn-module_extended_xl3_5__aTZFP GridColumn-module_extended_xl2_5__UvHIq GridColumn-module_extended_xl_5__qmwN8 GridColumn-module_extended_l_5__VLQLS GridColumn-module_extended_m_5__HSrx- GridColumn-module_extended_s_4__ZU5Jo GridColumn-module_extended_xs_4__NH6tl GridColumn-module_extended_xxs_4__dHKOI"><div class="Footer-module_bottomRightContainer__5MVkq"><div class="ScribdFooterLanguageMenu-module_wrapper__6nJjp"><div class="ScribdFooterLanguageMenu-module_languageCopy__IvHMZ">Language<!-- -->:</div><div class="DropdownMenu-module_wrapper_-3wi4F"><button aria-disabled="false" class="ButtonCore-module_wrapper_MkTb9s TextButton-module_wrapper_ZwW-wM TextButton-module_default_ekglbr DropdownTrigger-module_wrapper_-Xf-At ScribdFooterLanguageMenu-module_currentLanguage__-ZykZ" data-e2e="footer_current_language_button" id="" aria-haspopup="menu" aria-expanded="false" data-state="closed" type="button"><span class="ButtonCore-module_content_8zyAJv"><span class="ButtonCore-module_children_8a9B71">English<span class="SvgIcon-module_wrapper__1fPqw"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" class="SvgIcon-module_icon__sUHUn"><path d="M8.24 11.66L4 7.41 5.41 6l2.83 2.83L11.07 6l1.42 1.41-4.25 4.25z" fill="currentColor"></path></svg></span></span></span></button></div></div><div class="Footer-module_bottomCopyright__WjBga" data-e2e="footer_copyright_text"><span>Copyright © 2025 Scribd Inc.</span></div></div></div></div><div class="GridRow-module_wrapper__Uub42 GridRow-module_extended__Bvagp"><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_below_l__7M0-X GridColumn-module_standard_xl_12__x8-4j GridColumn-module_standard_l_12__ndEV7 GridColumn-module_standard_m_8__JIpAV GridColumn-module_standard_s_4__Yz20V GridColumn-module_standard_xs_4__QcV7o GridColumn-module_standard_xxs_4__7w6eo"><div class="Footer-module_copyrightAwareness__znGWg">We take content rights seriously. <a href=https://support.scribd.com/hc/en-us/articles/210129026-Frequently-Asked-Questions-about-Copyrights-and-the-DMCA>Learn more</a> in our FAQs or <a href=https://support.scribd.com/hc/en-us/articles/210129146-REPORT-COPYRIGHT-INFRINGEMENTS-AND-ABUSE-HERE>report infringement here</a>.</div></div></div><div class="GridRow-module_wrapper__Uub42 GridRow-module_extended__Bvagp"><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_above_l__UT1-z GridColumn-module_standard_xl_12__x8-4j GridColumn-module_standard_l_12__ndEV7 GridColumn-module_standard_m_8__JIpAV GridColumn-module_standard_s_4__Yz20V GridColumn-module_standard_xs_4__QcV7o GridColumn-module_standard_xxs_4__7w6eo"><div class="Footer-module_copyrightAwareness__znGWg">We take content rights seriously. <a href=https://support.scribd.com/hc/en-us/articles/210129026-Frequently-Asked-Questions-about-Copyrights-and-the-DMCA>Learn more</a> in our FAQs or <a href=https://support.scribd.com/hc/en-us/articles/210129146-REPORT-COPYRIGHT-INFRINGEMENTS-AND-ABUSE-HERE>report infringement here</a>.</div></div><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_above_l__UT1-z GridColumn-module_extended_xl4_12__Ueyic GridColumn-module_extended_xl3_12__TsrxQ GridColumn-module_extended_xl2_12__ceos- GridColumn-module_extended_xl_12__7vx87 GridColumn-module_extended_l_12__gCRsq GridColumn-module_extended_m_8__bDZzO GridColumn-module_extended_s_4__ZU5Jo GridColumn-module_extended_xs_4__NH6tl GridColumn-module_extended_xxs_4__dHKOI"><div class="ScribdFooterLanguageMenu-module_wrapper__6nJjp"><div class="ScribdFooterLanguageMenu-module_languageCopy__IvHMZ">Language<!-- -->:</div><div class="DropdownMenu-module_wrapper_-3wi4F"><button aria-disabled="false" class="ButtonCore-module_wrapper_MkTb9s TextButton-module_wrapper_ZwW-wM TextButton-module_default_ekglbr DropdownTrigger-module_wrapper_-Xf-At ScribdFooterLanguageMenu-module_currentLanguage__-ZykZ" data-e2e="footer_current_language_button" id="" aria-haspopup="menu" aria-expanded="false" data-state="closed" type="button"><span class="ButtonCore-module_content_8zyAJv"><span class="ButtonCore-module_children_8a9B71">English<span class="SvgIcon-module_wrapper__1fPqw"><svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" class="SvgIcon-module_icon__sUHUn"><path d="M8.24 11.66L4 7.41 5.41 6l2.83 2.83L11.07 6l1.42 1.41-4.25 4.25z" fill="currentColor"></path></svg></span></span></span></button></div></div></div></div><div class="GridRow-module_wrapper__Uub42 GridRow-module_extended__Bvagp"><div class="GridColumn-module_wrapper__soqyu GridColumn-module_hide_above_l__UT1-z GridColumn-module_extended_xl4_12__Ueyic GridColumn-module_extended_xl3_12__TsrxQ GridColumn-module_extended_xl2_12__ceos- GridColumn-module_extended_xl_12__7vx87 GridColumn-module_extended_l_12__gCRsq GridColumn-module_extended_m_8__bDZzO GridColumn-module_extended_s_4__ZU5Jo GridColumn-module_extended_xs_4__NH6tl GridColumn-module_extended_xxs_4__dHKOI"><div class="Footer-module_bottomCopyright__WjBga" data-e2e="footer_copyright_text"><span>Copyright © 2025 Scribd Inc.</span></div></div></div></div></footer></div></div><script type="speculationrules">{"prefetch":[{"where":{"href_matches":["/","/doc/*","/docs/*","/document/*","/presentation/*","/what-is-scribd"]},"eagerness":"moderate"}]}</script></div> <script type="application/json" data-hypernova-key="doc_page" data-hypernova-id="9a306a6c-502b-4eac-bf19-278697c8e412"><!--{"assetEnvironment":"production","bodyProps":{"admin_panel_props":null,"breadcrumbs":[],"sharing_buttons_props":{"description":"","id":212594714,"message":null,"private":false,"thumbnailUrl":"https://imgv2-1-f.scribdassets.com/img/document/212594714/original/051018e73e/1?v=1","title":"Shekar Struts","twitterHashtag":null,"url":"https://www.scribd.com/doc/212594714/Shekar-Struts"},"show_bot_text":true,"bot_text":"###BOT_TEXT###","view_restricted_cta_test_enabled":false},"currentPage":{"isHamburgerMenuOpen":false,"isMegamenuTopBarVisible":true,"isStatsigEnabled":true,"navigationCategories":{"academic":{"totalCategoryCount":12,"categoryLinks":[{"dataName":"foreign-language-studies","name":"Foreign Language Studies","url":"https://www.scribd.com/docs/Foreign-Language-Studies","children":[{"dataName":"chinese","name":"Chinese","url":"https://www.scribd.com/docs/Foreign-Language-Studies/Chinese"},{"dataName":"esl","name":"ESL","url":"https://www.scribd.com/docs/Foreign-Language-Studies/ESL"}]},{"dataName":"science-mathematics","name":"Science & Mathematics","url":"https://www.scribd.com/docs/Science-Mathematics","children":[{"dataName":"astronomy-space-sciences","name":"Astronomy & Space Sciences","url":"https://www.scribd.com/docs/Science-Mathematics/Astronomy-Space-Sciences"},{"dataName":"biology","name":"Biology","url":"https://www.scribd.com/docs/Science-Mathematics/Biology"}]},{"dataName":"study-aids-test-prep","name":"Study Aids & Test Prep","url":"https://www.scribd.com/docs/Study-Aids-Test-Prep","children":[{"dataName":"book-notes","name":"Book Notes","url":"https://www.scribd.com/docs/Study-Aids-Test-Prep/Book-Notes"},{"dataName":"college-entrance-exams","name":"College Entrance Exams","url":"https://www.scribd.com/docs/Study-Aids-Test-Prep/College-Entrance-Exams"}]},{"dataName":"teaching-methods-materials","name":"Teaching Methods & Materials","url":"https://www.scribd.com/docs/Teaching-Methods-Materials","children":[{"dataName":"early-childhood-education","name":"Early Childhood Education","url":"https://www.scribd.com/docs/Teaching-Methods-Materials/Early-Childhood-Education"},{"dataName":"education-philosophy-theory","name":"Education Philosophy & Theory","url":"https://www.scribd.com/docs/Teaching-Methods-Materials/Education-Philosophy-Theory"}]}]},"professional":{"totalCategoryCount":21,"categoryLinks":[{"dataName":"business","name":"Business","url":"https://www.scribd.com/docs/Business","children":[{"dataName":"business-analytics","name":"Business Analytics","url":"https://www.scribd.com/docs/Business/Business-Analytics"},{"dataName":"human-resources-personnel-management","name":"Human Resources & Personnel Management","url":"https://www.scribd.com/docs/Business/Human-Resources-Personnel-Management"}]},{"dataName":"career-growth","name":"Career & Growth","url":"https://www.scribd.com/docs/Career-Growth","children":[{"dataName":"careers","name":"Careers","url":"https://www.scribd.com/docs/Career-Growth/Careers"},{"dataName":"job-hunting","name":"Job Hunting","url":"https://www.scribd.com/docs/Career-Growth/Job-Hunting"}]},{"dataName":"computers","name":"Computers","url":"https://www.scribd.com/docs/Computers","children":[{"dataName":"applications-software","name":"Applications & Software","url":"https://www.scribd.com/docs/Computers/Applications-Software"},{"dataName":"cad-cam","name":"CAD-CAM","url":"https://www.scribd.com/docs/Computers/CAD-CAM"}]},{"dataName":"finance-money-management","name":"Finance & Money Management","url":"https://www.scribd.com/docs/Finance-Money-Management","children":[{"dataName":"accounting-bookkeeping","name":"Accounting & Bookkeeping","url":"https://www.scribd.com/docs/Finance-Money-Management/Accounting-Bookkeeping"},{"dataName":"auditing","name":"Auditing","url":"https://www.scribd.com/docs/Finance-Money-Management/Auditing"}]},{"dataName":"law","name":"Law","url":"https://www.scribd.com/docs/Law","children":[{"dataName":"business-financial","name":"Business & Financial","url":"https://www.scribd.com/docs/Law/Business-Financial"},{"dataName":"contracts-agreements","name":"Contracts & Agreements","url":"https://www.scribd.com/docs/Law/Contracts-Agreements"}]},{"dataName":"politics","name":"Politics","url":"https://www.scribd.com/docs/Politics","children":[{"dataName":"american-government","name":"American Government","url":"https://www.scribd.com/docs/Politics/American-Government"},{"dataName":"international-relations","name":"International Relations","url":"https://www.scribd.com/docs/Politics/International-Relations"}]},{"dataName":"technology-engineering","name":"Technology & Engineering","url":"https://www.scribd.com/docs/Technology-Engineering","children":[{"dataName":"automotive","name":"Automotive","url":"https://www.scribd.com/docs/Technology-Engineering/Automotive"},{"dataName":"aviation-aeronautics","name":"Aviation & Aeronautics","url":"https://www.scribd.com/docs/Technology-Engineering/Aviation-Aeronautics"}]}]},"culture":{"totalCategoryCount":19,"categoryLinks":[{"dataName":"art","name":"Art","url":"https://www.scribd.com/docs/Art","children":[{"dataName":"antiques-collectibles","name":"Antiques & Collectibles","url":"https://www.scribd.com/docs/Art/Antiques-Collectibles"},{"dataName":"architecture","name":"Architecture","url":"https://www.scribd.com/docs/Art/Architecture"}]},{"dataName":"biography-memoir","name":"Biography & Memoir","url":"https://www.scribd.com/docs/Biography-Memoir","children":[{"dataName":"artists-and-musicians","name":"Artists and Musicians","url":"https://www.scribd.com/docs/Biography-Memoir/Artists-and-Musicians"},{"dataName":"entertainers-and-the-rich-famous","name":"Entertainers and the Rich & Famous","url":"https://www.scribd.com/docs/Biography-Memoir/Entertainers-and-the-Rich-Famous"}]},{"dataName":"comics-graphic-novels","name":"Comics & Graphic Novels","url":"https://www.scribd.com/docs/Comics-Graphic-Novels"},{"dataName":"history","name":"History","url":"https://www.scribd.com/docs/History","children":[{"dataName":"ancient","name":"Ancient","url":"https://www.scribd.com/docs/History/Ancient"},{"dataName":"modern","name":"Modern","url":"https://www.scribd.com/docs/History/Modern"}]},{"dataName":"philosophy","name":"Philosophy","url":"https://www.scribd.com/docs/Philosophy"},{"dataName":"language-arts-discipline","name":"Language Arts & Discipline","url":"https://www.scribd.com/docs/Language-Arts-Discipline","children":[{"dataName":"composition-creative-writing","name":"Composition & Creative Writing","url":"https://www.scribd.com/docs/Language-Arts-Discipline/Composition-Creative-Writing"},{"dataName":"linguistics","name":"Linguistics","url":"https://www.scribd.com/docs/Language-Arts-Discipline/Linguistics"}]},{"dataName":"literary-criticism","name":"Literary Criticism","url":"https://www.scribd.com/docs/Literary-Criticism"},{"dataName":"social-science","name":"Social Science","url":"https://www.scribd.com/docs/Social-Science","children":[{"dataName":"anthropology","name":"Anthropology","url":"https://www.scribd.com/docs/Social-Science/Anthropology"},{"dataName":"archaeology","name":"Archaeology","url":"https://www.scribd.com/docs/Social-Science/Archaeology"}]},{"dataName":"true-crime","name":"True Crime","url":"https://www.scribd.com/docs/True-Crime"}]},"hobbies_and_crafts":{"totalCategoryCount":12,"categoryLinks":[{"dataName":"cooking-food-wine","name":"Cooking, Food & Wine","url":"https://www.scribd.com/docs/Cooking-Food-Wine","children":[{"dataName":"beverages","name":"Beverages","url":"https://www.scribd.com/docs/Cooking-Food-Wine/Beverages"},{"dataName":"courses-dishes","name":"Courses & Dishes","url":"https://www.scribd.com/docs/Cooking-Food-Wine/Courses-Dishes"}]},{"dataName":"games-activities","name":"Games & Activities","url":"https://www.scribd.com/docs/Games-Activities","children":[{"dataName":"card-games","name":"Card Games","url":"https://www.scribd.com/docs/Games-Activities/Card-Games"},{"dataName":"fantasy-sports","name":"Fantasy Sports","url":"https://www.scribd.com/docs/Games-Activities/Fantasy-Sports"}]},{"dataName":"home-garden","name":"Home & Garden","url":"https://www.scribd.com/docs/Home-Garden","children":[{"dataName":"crafts-hobbies","name":"Crafts & Hobbies","url":"https://www.scribd.com/docs/Home-Garden/Crafts-Hobbies"},{"dataName":"gardening","name":"Gardening","url":"https://www.scribd.com/docs/Home-Garden/Gardening"}]},{"dataName":"sports-recreation","name":"Sports & Recreation","url":"https://www.scribd.com/docs/Sports-Recreation","children":[{"dataName":"baseball","name":"Baseball","url":"https://www.scribd.com/docs/Sports-Recreation/Baseball"},{"dataName":"basketball","name":"Basketball","url":"https://www.scribd.com/docs/Sports-Recreation/Basketball"}]}]},"personal_growth":{"totalCategoryCount":12,"categoryLinks":[{"dataName":"lifestyle","name":"Lifestyle","url":"https://www.scribd.com/docs/Lifestyle","children":[{"dataName":"beauty-grooming","name":"Beauty & Grooming","url":"https://www.scribd.com/docs/Lifestyle/Beauty-Grooming"},{"dataName":"fashion","name":"Fashion","url":"https://www.scribd.com/docs/Lifestyle/Fashion"}]},{"dataName":"religion-spirituality","name":"Religion & Spirituality","url":"https://www.scribd.com/docs/Religion-Spirituality","children":[{"dataName":"buddhism","name":"Buddhism","url":"https://www.scribd.com/docs/Religion-Spirituality/Buddhism"},{"dataName":"christianity","name":"Christianity","url":"https://www.scribd.com/docs/Religion-Spirituality/Christianity"}]},{"dataName":"self-improvement","name":"Self-Improvement","url":"https://www.scribd.com/docs/Self-Improvement","children":[{"dataName":"addiction","name":"Addiction","url":"https://www.scribd.com/docs/Self-Improvement/Addiction"},{"dataName":"mental-health","name":"Mental Health","url":"https://www.scribd.com/docs/Self-Improvement/Mental-Health"}]},{"dataName":"wellness","name":"Wellness","url":"https://www.scribd.com/docs/Wellness","children":[{"dataName":"body-mind-spirit","name":"Body, Mind, & Spirit","url":"https://www.scribd.com/docs/Wellness/Body-Mind-Spirit"},{"dataName":"diet-nutrition","name":"Diet & Nutrition","url":"https://www.scribd.com/docs/Wellness/Diet-Nutrition"}]}]}},"scribdRebrand":true,"selectedMobileBottomTab":"document","serverTimestamp":"2025-08-04T01:13:35Z","statsigClientApiKey":"client-WIJd796Cwa4NdE0bYoaQFqBHKyK5Pj5Ct7uODQkwhKs","statsigEnvironmentTier":"production"},"enablePseudolocalization":false,"flashes":[],"global":{"client":{"mobile":{"getMobileAppProps":{"androidStoreUrl":"https://play.google.com/store/apps/details?id=com.scribd.app.reader0&hl=en","iosStoreUrl":"https://apps.apple.com/us/app/542557212","app_download_link":"https://www.scribd.com/send_download_link","close_promo_url":"https://www.scribd.com/home/close_promo","doc_id":212594714,"email_address":null,"extra_classes":"app_download_promo","promo_id":null,"twilio_enabled":false,"track_page":"doc_page","success":true,"__locale":"en_US"}}},"config":{"facebook":{"app_id":"136494494209"}},"testAssignments":{"backupPaymentMethodsRollout":null,"docPageDesktopDocActions":{"testName":"doc_page_desktop_doc_actions_2025_q3","variant":"control"},"docPageMobileOutlineThumbnailsV1":null,"docPageDesktopOutlineThumbnailsV1":null,"docPageMobileWebAskAi":null,"docPageAscendeumWrapper":null,"docPageAscendeumMWeb":null,"personalized_archive_offer":"control","ask_ai_download":null},"paths":{"assetPath":"aHR0cHM6Ly9zLWYuc2NyaWJkYXNzZXRzLmNvbS8=\n","actions":{"add_to_library":"L3NhdmVkL2FkZA==\n","archive_plans_url":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9hcmNoaXZlL3BsYW5zP2RvYz0yMTI1\nOTQ3MTQmbWV0YWRhdGE9JTdCJTIyY29udGV4dCUyMiUzQSUyMmFyY2hpdmVf\ndmlld19yZXN0cmljdGVkJTIyJTJDJTIycGFnZSUyMiUzQSUyMnJlYWQlMjIl\nMkMlMjJhY3Rpb24lMjIlM0ElMjJkb3dubG9hZCUyMiUyQyUyMmxvZ2dlZF9p\nbiUyMiUzQWZhbHNlJTJDJTIycGxhdGZvcm0lMjIlM0ElMjJ3ZWIlMjIlN0Q=\n","audiobooksLink":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9hdWRpb2Jvb2tz\n","bestsellers_url":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9iZXN0c2VsbGVycw==\n","book_annotations":"L2Jvb2tfYW5ub3RhdGlvbnMvMjEyNTk0NzE0\n","booksLink":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9ib29rcw==\n","documentsLink":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9kb2Nz\n","faqUrl":"aHR0cDovL3N1cHBvcnQuc2NyaWJkLmNvbS9oYy8=\n","homeLink":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS8=\n","library_url":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9zYXZlZA==\n","load_recommenders":"L2RvYy1wYWdlL3JlY29tbWVuZGVycy8yMTI1OTQ3MTQ=\n","payment_fix":"L2FjY291bnQvcGF5bWVudF9wcm9maWxlX3VwZGF0ZQ==\n","payment_fix_url":null,"personalization_path":"L2RvYy1wYWdlL3BlcnNvbmFsaXphdGlvbg==\n","personalization_afa_path":"L2RvYy1wYWdlL2FmYQ==\n","pingback":["aA==\n","dA==\n","dA==\n","cA==\n","cw==\n","Og==\n","Lw==\n","Lw==\n","dw==\n","dw==\n","dw==\n","Lg==\n","cw==\n","Yw==\n","cg==\n","aQ==\n","Yg==\n","ZA==\n","Lg==\n","Yw==\n","bw==\n","bQ==\n","Lw==\n","ZA==\n","bw==\n","Yw==\n","dQ==\n","bQ==\n","ZQ==\n","bg==\n","dA==\n","cw==\n","Lw==\n","Mg==\n","MQ==\n","Mg==\n","NQ==\n","OQ==\n","NA==\n","Nw==\n","MQ==\n","NA==\n","Lw==\n","cA==\n","aQ==\n","bg==\n","Zw==\n","Yg==\n","YQ==\n","Yw==\n","aw==\n"],"register_download_attempt":"L2RvY3VtZW50X2Rvd25sb2Fkcy9yZWdpc3Rlcl9kb3dubG9hZF9hdHRlbXB0\n","request_document_download":"L2RvY3VtZW50X2Rvd25sb2Fkcy9yZXF1ZXN0X2RvY3VtZW50X2Zvcl9kb3du\nbG9hZA==\n","remove_from_library":"L3NhdmVkL3JlbW92ZQ==\n","upload_url":"L3VwbG9hZC1kb2N1bWVudD9hcmNoaXZlX2RvYz0yMTI1OTQ3MTQ=\n"},"props":{"download_receipt_modal":"L2RvYy1wYWdlL2Rvd25sb2FkLXJlY2VpcHQtbW9kYWwtcHJvcHMvMjEyNTk0\nNzE0\n","paused_user_download_modal":"L2RvYy1wYWdlL3BhdXNlZC11c2VyLWRvd25sb2FkLW1vZGFsLXByb3Bz\n","pmp_login_join_modal":"L2RvYy1wYWdlL3BtcC1sb2dpbi1qb2luLW1vZGFsLXByb3BzLzIxMjU5NDcx\nNA==\n"}},"features":{"desktopAdsExperience":null,"highlights":true,"isEligibleForPaidDesktopAds":false,"isEligibleForPaidMobileAds":false,"isEligibleForMobileAdsForAccess":false,"isEligibleForProgressiveProfileModal":false,"isEligibleForHouseAds":false,"showDocChatExperience":false,"taxonomyV4UgcBrowsing":true,"docChatAvailable":false}},"i18n":{"currentLanguage":{"prefix":"en","lcid":"en","href":"/language?id=en","lang":"en_US","name":"English"},"languages":[{"prefix":"en","lcid":"en","href":"/language?id=en","lang":"en_US","name":"English"},{"prefix":"es","lcid":"es","href":"/language?id=es","lang":"es-419","name":"Español"},{"prefix":"pt","lcid":"pt-br","href":"/language?id=pt-br","lang":"pt_BR","name":"Português"},{"prefix":"de","lcid":"de","href":"/language?id=de","lang":"de","name":"Deutsch"},{"prefix":"fr","lcid":"fr","href":"/language?id=fr","lang":"fr","name":"Français"},{"prefix":"ru","lcid":"ru","href":"/language?id=ru","lang":"ru_RU","name":"Русский"},{"prefix":"it","lcid":"it","href":"/language?id=it","lang":"it","name":"Italiano"},{"prefix":"ro","lcid":"ro","href":"/language?id=ro","lang":"ro_RO","name":"Română"},{"prefix":"id","lcid":"id","href":"/language?id=id","lang":"id_ID","name":"Bahasa Indonesia"}],"locale":"en-US"},"page":{"savedItems":{"212594714":false}},"personalization":{"trialDuration":null},"ratings":{"212594714":{"averageRating":0,"documentId":212594714,"downvoteCount":0,"ratingCount":0,"upvoteCount":0,"userRating":0}},"recommenders":{"ad_slot_recs":{"items":[{"id":861291062,"doc_uuid":"sbd/S7LXe6w4jVYyTYTDBhb1zls="},{"id":419374596,"doc_uuid":"sbd/2P9iuuuPNWMU6h8ns5BUCpM="},{"id":212595338,"doc_uuid":"sbd/3S3fQjrwzEltK8fht0RrAvg="},{"id":303784623,"doc_uuid":"sbd/KfeJCRvKVrH/m6vkURaPhaA="},{"id":461009761,"doc_uuid":"sbd/CRbOZzAmTfap38emB3F6k70="},{"id":805669959,"doc_uuid":"sbd/WYawjNuS0xE1ceMDFL7U85Y="},{"id":845739763,"doc_uuid":"sbd/hT02Ts0UqGxQN4JGioU7BUg="},{"id":790687938,"doc_uuid":"sbd/ureOwM//4Wr4qDfPMs9nTwM="},{"id":318765044,"doc_uuid":"sbd/kqcxImKWOYYgTD3XNVS6e5I="},{"id":622906559,"doc_uuid":"sbd/ugQoXEmDV4FRqZx9HirUhwQ="},{"id":801794855,"doc_uuid":"sbd/dT3Ter2ajIHxx2gqsm33QfU="},{"id":864692650,"doc_uuid":"sbd/1slIn6gxZA4cpm7aFtc/xJU="},{"id":38596568,"doc_uuid":"sbd/wpFUy7wdksDRNtDO3jXrbSA="},{"id":890004757,"doc_uuid":"sbd/6UURNPqngUMLt/yQkwoZw5A="},{"id":6546595,"doc_uuid":"sbd/yZpenK5HBGAyhPpslJb5KZQ="},{"id":718885683,"doc_uuid":"sbd/p9fD4hde47hs4XEub4Imcik="},{"id":835235239,"doc_uuid":"sbd/FQ06IBH7TQV/ujw3MvojCCo="},{"id":442581748,"doc_uuid":"sbd/EfJSCTidRoSoL6FgqiAd3Kg="},{"id":441291725,"doc_uuid":"sbd/gzDemCOMxbGD1ztE34cKR5g="},{"id":376273496,"doc_uuid":"sbd/8BgBGF9xf1ep6ORZwif2Io4="},{"id":813408324,"doc_uuid":"sbd/2qDMmcT3ZgngBurXswM0548="},{"id":37740968,"doc_uuid":"sbd/qJMe3DuIfNxcDARiEreGHa8="},{"id":225027977,"doc_uuid":"sbd/WRqY1b4x5MHyUuv2RV/RZ9Y="},{"id":692374377,"doc_uuid":"sbd/1rMQqzkqJJRqVjscw5qKB9c="},{"id":745611785,"doc_uuid":"sbd/8tyUresBXl5FfJj6E8FTwt0="},{"id":879698001,"doc_uuid":"sbd/sdyG8lrdsNJFi2CF1CNuygk="},{"id":493723932,"doc_uuid":"sbd/U2FzHY4U5YMhX9f/zYNGLh0="},{"id":265412564,"doc_uuid":"sbd/k7eVOrzSEk3Mgip6ahkPAoA="},{"id":889982234,"doc_uuid":"sbd/eyaraPKL6Q58gMklV1t0n8E="},{"id":832665021,"doc_uuid":"sbd/HAwbV3T0n1gGOOqC1JDOsjU="},{"id":686043140,"doc_uuid":"sbd/wLFg8oUX0vO2kojhMX3UB/I="},{"id":882142408,"doc_uuid":"sbd/5mE2zpn31xgD46wBL8iJUmw="},{"id":687618455,"doc_uuid":"sbd/xR7bg8y9ZjfYCAVBi4xcvqY="},{"id":708302973,"doc_uuid":"sbd/O4OPgyflq88RbERyF0CvXm0="},{"id":770502819,"doc_uuid":"sbd/cRLNInNfbgPxDaqOffYmeIQ="},{"id":775070825,"doc_uuid":"sbd/O/Y93Jvfs0M2QqWkstCwltM="},{"id":665607890,"doc_uuid":"sbd/fvQ5xd0I2edKuOdufp7NC64="},{"id":81612338,"doc_uuid":"sbd/Iut3B1jmlxIjKHiRp40kzHo="},{"id":727119754,"doc_uuid":"sbd/buj7gUQkupb37Ytxqx5KGI8="},{"id":800715309,"doc_uuid":"sbd/RiSDu6uvCIBExod5PTE/PLs="},{"id":6725997,"doc_uuid":"sbd/XwOaJISiG6OIxXjo1WXcpLE="},{"id":443732283,"doc_uuid":"sbd/Er1RbdwXgwrgfzNJibDJoiM="},{"id":874071886,"doc_uuid":"sbd/DvCfZfaOTRklaF4oa86nep0="},{"id":692374077,"doc_uuid":"sbd/5j0/OhyOB7/wE3cC0eFgCo4="},{"id":865865463,"doc_uuid":"sbd/Rx5EZ9IWf/OJSx0aeLVL4BI="},{"id":566427867,"doc_uuid":"sbd/n2yRaHgmZM1CO9Z2j3N1hhc="},{"id":468150560,"doc_uuid":"sbd/MW/8Pwtf4Gm92z432vf6a1o="},{"id":867701892,"doc_uuid":"sbd/Q2aZR60K591xQJw3wJS2HK4="},{"id":540652105,"doc_uuid":"sbd/fPwAPn9JILJVxFgvt5b9dvI="},{"id":658150616,"doc_uuid":"sbd/nAC95kyqeRkSM0QkjTJcUGg="},{"id":73817325,"doc_uuid":"sbd/iMQS7rtXvn/t6PHoHFgVnfo="},{"id":124908995,"doc_uuid":"sbd/0XTubt6DSPIijAd0ZcbicVc="},{"id":889375580,"doc_uuid":"sbd/8haAM6g4C392UnvfMXlDTuc="},{"id":142013810,"doc_uuid":"sbd/AiY1bAPxTrBubM0Q81KZ5l4="}],"ids":[861291062,419374596,212595338,303784623,461009761,805669959,845739763,790687938,318765044,622906559,801794855,864692650,38596568,890004757,6546595,718885683,835235239,442581748,441291725,376273496,813408324,37740968,225027977,692374377,745611785,879698001,493723932,265412564,889982234,832665021,686043140,882142408,687618455,708302973,770502819,775070825,665607890,81612338,727119754,800715309,6725997,443732283,874071886,692374077,865865463,566427867,468150560,867701892,540652105,658150616,73817325,124908995,889375580,142013810],"title_link":null,"title":null,"track_opts":{"compilation_id":"sbd/zA5W2WHCpzc/5HN65f2reRg=","module_id":"sbd/0ahDOuowGC0UsHHdD5xakfI=","widget_name":"ad_slots","track_id":"ad_slots"}},"viewport_bottom_recs":{"items":[{"id":861291062,"doc_uuid":"sbd/XYgVxUjJGeL3zi6vkoyzaRw="},{"id":419374596,"doc_uuid":"sbd/wzXQLGVRzNwKIctxBsJOS/Y="},{"id":212595338,"doc_uuid":"sbd/1oaJnC8u57DCnCIUsYypQYk="},{"id":303784623,"doc_uuid":"sbd/cq4nGlGR2dLkBvurVJ2jMdw="},{"id":461009761,"doc_uuid":"sbd/1gHG/fTSn/5u1KW50tscj5M="},{"id":805669959,"doc_uuid":"sbd/jEI/55XHKU/QD03ogRi5D7U="},{"id":845739763,"doc_uuid":"sbd/ilAII62z7tS9Wy3YQDSpD90="},{"id":790687938,"doc_uuid":"sbd/FVwe2QmfofZu5R45mJn6R80="},{"id":318765044,"doc_uuid":"sbd/W8aWco0eHqvUQl/9BmBBv30="},{"id":622906559,"doc_uuid":"sbd/sDUmZNX/cIsSVZZwQoSF5H4="},{"id":801794855,"doc_uuid":"sbd/AkWpTmlQWauPrrcuIwJurG0="},{"id":864692650,"doc_uuid":"sbd/7Z1/AKGu0exOTEkLoEqaoPA="},{"id":38596568,"doc_uuid":"sbd/wU8tPE6bAzhXQlIyYUHx7ag="},{"id":890004757,"doc_uuid":"sbd/DCXsEuS5PbvpUQItGPMnKlI="},{"id":6546595,"doc_uuid":"sbd/7DWAEWa1OIbYGtIBX/EgBGk="},{"id":718885683,"doc_uuid":"sbd/c/f76BKbeMAsCdKv5IYqFFw="},{"id":835235239,"doc_uuid":"sbd/Jus1jusCkjMpUXFSrNgHfZc="},{"id":442581748,"doc_uuid":"sbd/x9Huy07wmh5tQxo38Hr2hqM="},{"id":441291725,"doc_uuid":"sbd/VmR5MTf73sEtv05c7GrMAqM="},{"id":376273496,"doc_uuid":"sbd/AfweMP/qMGlYxYllWLU3L6I="},{"id":813408324,"doc_uuid":"sbd/707//x8GxWEI4TWfhrsEKJk="},{"id":37740968,"doc_uuid":"sbd/3vKWb9XGzkapQd2rAQhYGJc="},{"id":225027977,"doc_uuid":"sbd/dTlNW2YfZ6r1rjxqXF3p7ww="},{"id":692374377,"doc_uuid":"sbd/YslFzN1bd0T3ap8mQXjwWtg="},{"id":745611785,"doc_uuid":"sbd/5KY2aXyvPfwqfEro58kJrvA="},{"id":879698001,"doc_uuid":"sbd/fBfbGZPBELS9G2A3pG7UeCY="},{"id":493723932,"doc_uuid":"sbd/s0DRLPkh9/UwKnMk1XL8ZLA="},{"id":265412564,"doc_uuid":"sbd/Fp5kGfgPZdH/NaTdvnB3CtE="},{"id":889982234,"doc_uuid":"sbd/BR32/g6WSahcRQ8iQzlVcmg="},{"id":832665021,"doc_uuid":"sbd/LY3hmwjQcB2OhSuTdxlgCqg="},{"id":686043140,"doc_uuid":"sbd/MwV2sIaIZO6QotuhNCZuArA="},{"id":882142408,"doc_uuid":"sbd/vcJZVBSoBQXIXiEIsV8R6Eg="},{"id":687618455,"doc_uuid":"sbd/dV8C2HQeNJbjGXdDaL5JveE="},{"id":708302973,"doc_uuid":"sbd/Zw8iEWfbzwq6SKb6zEyPNVI="},{"id":770502819,"doc_uuid":"sbd/9orRHBObsZgY8rXfhtI1hyk="},{"id":775070825,"doc_uuid":"sbd/I771taA5JbTYfvfUyaHhqcg="},{"id":665607890,"doc_uuid":"sbd/GmoAX4TJVbPKB5Z/LMAza6A="},{"id":81612338,"doc_uuid":"sbd/Hd6YZTs4tVRA8CcjePZzvFw="},{"id":727119754,"doc_uuid":"sbd/xwTXREGWIKvlaSZJZZUTdeI="},{"id":800715309,"doc_uuid":"sbd/RJzNqdbf9BTo8orUPJtIxRI="},{"id":6725997,"doc_uuid":"sbd/RmgfDXs/BCHgq2H39ANzxL0="},{"id":443732283,"doc_uuid":"sbd/09MybYoi3C31Rv6338wMgkI="},{"id":874071886,"doc_uuid":"sbd/RfqFnfSQ9TFzGSBKuCXN6Ys="},{"id":692374077,"doc_uuid":"sbd/n2Q9UULx6wvlr4brORMomDE="},{"id":865865463,"doc_uuid":"sbd/FJyRv26PpRcNIvxCKzGs2ng="},{"id":566427867,"doc_uuid":"sbd/xZonjlM4VrtaNnwKPODQsl0="},{"id":468150560,"doc_uuid":"sbd/Bz0ItRQhboES5hYOmRVItaA="},{"id":867701892,"doc_uuid":"sbd/OYzFi/dWT1lFjj75bTfaQlw="},{"id":540652105,"doc_uuid":"sbd/z6d9PkHU8DjjA5SmiaEqA5M="},{"id":658150616,"doc_uuid":"sbd/b3B4HNfMCi67l40dnCfT/24="},{"id":73817325,"doc_uuid":"sbd/3Qyvg6VEtSFvTwGMjZ8xt/s="},{"id":124908995,"doc_uuid":"sbd/uYSxCqmkFtuSSgzPqZCQ6xg="},{"id":889375580,"doc_uuid":"sbd/AEjgowb1w3CC9DxwNZ8FB28="},{"id":142013810,"doc_uuid":"sbd/PpEf9yhfIaskFUS8L/eeF8s="}],"ids":[861291062,419374596,212595338,303784623,461009761,805669959,845739763,790687938,318765044,622906559,801794855,864692650,38596568,890004757,6546595,718885683,835235239,442581748,441291725,376273496,813408324,37740968,225027977,692374377,745611785,879698001,493723932,265412564,889982234,832665021,686043140,882142408,687618455,708302973,770502819,775070825,665607890,81612338,727119754,800715309,6725997,443732283,874071886,692374077,865865463,566427867,468150560,867701892,540652105,658150616,73817325,124908995,889375580,142013810],"title_link":null,"title":null,"track_opts":{"compilation_id":"sbd/zA5W2WHCpzc/5HN65f2reRg=","module_id":"sbd/wyB05mOtkHQQQ2u6jEIu4ic=","widget_name":"viewport_bottom","track_id":"scroll_recs"}},"list_recommenders":{"items":[{"id":861291062,"doc_uuid":"sbd/qGS1IM6QIga09X2lp75lQj8="},{"id":419374596,"doc_uuid":"sbd/tBcWG0gm7llROigo3dHe3D0="},{"id":212595338,"doc_uuid":"sbd/aiaDwQXhwynAanbWaJg4aeA="},{"id":303784623,"doc_uuid":"sbd/8bNmiuoz4SmYY6tBDQmwHrk="},{"id":461009761,"doc_uuid":"sbd/vptcvd5UogmQvLrIuGeTX8Y="},{"id":805669959,"doc_uuid":"sbd/duof3hEx8lZr1dyQSwlJ8I8="},{"id":845739763,"doc_uuid":"sbd/EPkkBDfJ3AZvJO19Ao4ORQM="},{"id":790687938,"doc_uuid":"sbd/CcBz1ANkjZv2owdMF82W7bw="},{"id":318765044,"doc_uuid":"sbd/D8bbr2IRYm0MprN7Y3vS00U="},{"id":622906559,"doc_uuid":"sbd/O7GIZ4F9otQj1tiUXvFCg08="},{"id":801794855,"doc_uuid":"sbd/cx9eFbeqFIvvZeGhKe06weM="},{"id":864692650,"doc_uuid":"sbd/3HmMOUbIK1AFC0ogz7ekCtI="},{"id":38596568,"doc_uuid":"sbd/Vae36scT2UwjSjJNuioPjO4="},{"id":890004757,"doc_uuid":"sbd/EJaIWqGAY6ZXkHqvZmfLkfY="},{"id":6546595,"doc_uuid":"sbd/wWI9iw3LY9nzemTbnRvsJkI="},{"id":718885683,"doc_uuid":"sbd/gwlBrDZff0rdnNoFcBtDx90="},{"id":835235239,"doc_uuid":"sbd/Iof5f7EwdIPlcou6cAZGN5s="},{"id":442581748,"doc_uuid":"sbd/E1JHRN/6iIyrwEUC132Q558="},{"id":441291725,"doc_uuid":"sbd/p6J1iDXrTUhAEAxPklmTim8="},{"id":376273496,"doc_uuid":"sbd/pW3FrPiXc1voZuaTbpSMwyI="},{"id":813408324,"doc_uuid":"sbd/WSOng4XypCW1dYjlv0OdA6U="},{"id":37740968,"doc_uuid":"sbd/XUyhkpyuNEMTciz/rtf0ehk="},{"id":225027977,"doc_uuid":"sbd/vjfkJEXesm2Rg7DayUsPb3A="},{"id":692374377,"doc_uuid":"sbd/VBiklnYX9rUszNJbx7asn78="},{"id":745611785,"doc_uuid":"sbd/nBnZLXtRjC2q06n2VWV1J64="},{"id":879698001,"doc_uuid":"sbd/lQbNjpfMCrJOXf92lYRfuk8="},{"id":493723932,"doc_uuid":"sbd/eCqTrhOOPTyd4SaGEZ2H35w="},{"id":265412564,"doc_uuid":"sbd/ZzgB3JhtM7UmDYKsJ19tV9Q="},{"id":889982234,"doc_uuid":"sbd/5o6zgYh2StRxgOYGsrQQ0go="},{"id":832665021,"doc_uuid":"sbd/1YyUZhOdlWEGDBy0ayob4C0="},{"id":686043140,"doc_uuid":"sbd/gRubfm0kKlPoEdh31G4V9eM="},{"id":882142408,"doc_uuid":"sbd/8GIpn8AdkbPcbVmwMv6y25Q="},{"id":687618455,"doc_uuid":"sbd/WfMFu1Mz5mq/BkeRm2ZCfNI="},{"id":708302973,"doc_uuid":"sbd/GKywSFnxfwtWcNBuOAI2dJQ="},{"id":770502819,"doc_uuid":"sbd/ws7S/cxkCsLV34qgB6zC3vA="},{"id":775070825,"doc_uuid":"sbd/3pn3IyS6/7oEecptXE/AceU="},{"id":665607890,"doc_uuid":"sbd/wyxiLS4K/ueQigGffuDk3AE="},{"id":81612338,"doc_uuid":"sbd/WYqNcO8mlceE0lQhXNnP1/Q="},{"id":727119754,"doc_uuid":"sbd/jYcTpwW3yWq89uWIKAjQVPA="},{"id":800715309,"doc_uuid":"sbd/s2WnItFK4XUqo2Iex4Fb/hg="},{"id":6725997,"doc_uuid":"sbd/AnoEqCGCLnOd5IvQYTyaYDs="},{"id":443732283,"doc_uuid":"sbd/RCMe2K9bv397PNBcl/0MZcU="},{"id":874071886,"doc_uuid":"sbd/bmnKCKhvM3zyUqoNtysm/2g="},{"id":692374077,"doc_uuid":"sbd/7iIndnUJSWbrKtrqLINx2Bo="},{"id":865865463,"doc_uuid":"sbd/jECrUqTb/jqFBylpJl2pBwQ="},{"id":566427867,"doc_uuid":"sbd//3/uI694vzljGofYnSgqh8c="},{"id":468150560,"doc_uuid":"sbd/La0C5dsFKFsXQ78CTomcOK4="},{"id":867701892,"doc_uuid":"sbd/ERBuf0wUGCNUWmn4/vBkjsA="},{"id":540652105,"doc_uuid":"sbd/Tx2BOEUbsoiNQ0tlMVjlaeg="},{"id":658150616,"doc_uuid":"sbd/O0CuDtGbvOYSVFXYIWI1DRU="},{"id":73817325,"doc_uuid":"sbd/UbO3JHtNqHTNfyHq1UkGFag="},{"id":124908995,"doc_uuid":"sbd/2n51xgZoqJLz2RVEXpE0X2c="},{"id":889375580,"doc_uuid":"sbd/TROAoKMt6ftw70pH/cTzPtE="},{"id":142013810,"doc_uuid":"sbd/zlM1ROCpv73hAuySmDtcy/U="}],"ids":[861291062,419374596,212595338,303784623,461009761,805669959,845739763,790687938,318765044,622906559,801794855,864692650,38596568,890004757,6546595,718885683,835235239,442581748,441291725,376273496,813408324,37740968,225027977,692374377,745611785,879698001,493723932,265412564,889982234,832665021,686043140,882142408,687618455,708302973,770502819,775070825,665607890,81612338,727119754,800715309,6725997,443732283,874071886,692374077,865865463,566427867,468150560,867701892,540652105,658150616,73817325,124908995,889375580,142013810],"title_link":null,"title":null,"track_opts":{"compilation_id":"sbd/zA5W2WHCpzc/5HN65f2reRg=","module_id":"sbd/lxJgTJArXbyCQj11V3/Bx4Q=","widget_name":"recommender_list","track_id":"doc_page_user_experience_top"}},"documents":{"6546595":{"author":"api-3694132","author_url":"https://www.scribd.com/user/3694132/api-3694132","categories":[],"description":"","id":6546595,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":680,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/6546595/298x396/9daf549712/1399632841?v=1","run_time":0,"short_title":"Websphere5 0","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/6546595/149x198/fc623f771c/1399632841?v=1","title":"Websphere5 0","type":"document","url":"https://www.scribd.com/document/6546595/Websphere5-0","views":"548"},"6725997":{"author":"api-3701299","author_url":"https://www.scribd.com/user/3701299/api-3701299","categories":[],"description":"","id":6725997,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":624,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/6725997/298x396/825afb2ccd/1751910483?v=1","run_time":0,"short_title":"Web Services RedBook","static_rating":{"rating":5,"count":1,"up_count":1},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/6725997/149x198/1c0630cfea/1751910483?v=1","title":"Web Services RedBook","type":"document","url":"https://www.scribd.com/doc/6725997/Web-Services-RedBook","views":"242"},"37740968":{"author":"Luis Diaz Sendel","author_url":"https://www.scribd.com/user/32731436/Luis-Diaz-Sendel","categories":[],"description":null,"id":37740968,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":540,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/37740968/298x396/8343de9590/1330266441?v=1","run_time":0,"short_title":"Getting Started With Ibm Websphere Business Services Fabric V6.1","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/37740968/149x198/16f5f12bd7/1330266441?v=1","title":"Getting Started With Ibm Websphere Business Services Fabric V6.1","type":"document","url":"https://www.scribd.com/document/37740968/sg247614","views":"172"},"38596568":{"author":"saidaraopemmasani","author_url":"https://www.scribd.com/user/10659433/saidaraopemmasani","categories":[],"description":null,"id":38596568,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":690,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/38596568/298x396/74f636bdf8/1350107467?v=1","run_time":0,"short_title":"SG 247497","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/38596568/149x198/6807348d17/1350107467?v=1","title":"SG 247497","type":"document","url":"https://www.scribd.com/document/38596568/sg247497","views":"482"},"73817325":{"author":"chandragupt23","author_url":"https://www.scribd.com/user/111619164/chandragupt23","categories":[],"description":null,"id":73817325,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":48,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/73817325/298x396/23f0b4cfeb/1336004149?v=1","run_time":0,"short_title":"Industrial Training Report","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/73817325/149x198/1697470c3f/1336004149?v=1","title":"Industrial Training Report","type":"document","url":"https://www.scribd.com/document/73817325/Industrial-Training-Report","views":"285"},"81612338":{"author":"itsnagaraja1","author_url":"https://www.scribd.com/user/24177796/itsnagaraja1","categories":[],"description":null,"id":81612338,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":546,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/81612338/298x396/c9f8e4e5ff/1357867843?v=1","run_time":0,"short_title":"Cast Iron Admin","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/81612338/149x198/f418e93f0f/1357867843?v=1","title":"Cast Iron Admin","type":"document","url":"https://www.scribd.com/document/81612338/Cast-Iron-Admin","views":"2.6K"},"124908995":{"author":"Ivan Panfilov","author_url":"https://www.scribd.com/user/167017461/Ivan-Panfilov","categories":[],"description":null,"id":124908995,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":635,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/124908995/298x396/d48bfb7869/1389636368?v=1","run_time":0,"short_title":"Phalcon PHP Framework Documentation","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/124908995/149x198/0eca3f3844/1389636368?v=1","title":"Phalcon PHP Framework Documentation","type":"document","url":"https://www.scribd.com/doc/124908995/Phalcon-Php-Framework-Documentation","views":"3.9K"},"142013810":{"author":"sandeep2kn","author_url":"https://www.scribd.com/user/222196916/sandeep2kn","categories":[],"description":null,"id":142013810,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":654,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/142013810/298x396/9a4711a529/1380624155?v=1","run_time":0,"short_title":"SG 246167","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/142013810/149x198/8a4c0e7610/1380624155?v=1","title":"SG 246167","type":"document","url":"https://www.scribd.com/document/142013810/Sg-246167","views":"1.0K"},"212595338":{"author":"Chandu Damarasingh","author_url":"https://www.scribd.com/user/195532732/Chandu-Damarasingh","categories":[],"description":null,"id":212595338,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":270,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/212595338/298x396/3c95ba43e8/1715990083?v=1","run_time":0,"short_title":"Struts2.x Sekhar","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/212595338/149x198/481ab24408/1715990083?v=1","title":"Struts2.x Sekhar","type":"document","url":"https://www.scribd.com/doc/212595338/Struts2-x-Sekhar","views":"493"},"225027977":{"author":"rusys","author_url":"https://www.scribd.com/user/14138382/rusys","categories":[],"description":"WAS Redbook","id":225027977,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":1946,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/225027977/298x396/dbdfeee5ba/1409021312?v=1","run_time":0,"short_title":"Rational Application Developer For WebSphere Software V8 Programming Guide","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/225027977/149x198/41bd337e13/1409021312?v=1","title":"Rational Application Developer For WebSphere Software V8 Programming Guide","type":"document","url":"https://www.scribd.com/document/225027977/Rational-Application-Developer-for-WebSphere-Software-V8-Programming-Guide","views":"1.1K"},"265412564":{"author":"maldoreur","author_url":"https://www.scribd.com/user/4015585/maldoreur","categories":[],"description":"In this part, we introduce IBM Rational Application Developer for WebSphere \nSoftware. The introduction includes packaging, product features, the Eclipse \nbase, installation, licensing, migration, and an overview of the tools. We then \ndiscuss setting up the Workbench, the perspectives, views, and editors, the \ndifferent types of projects, and introduce Unified Modelin","id":265412564,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":1916,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/265412564/298x396/843d946a0f/1431680001?v=1","run_time":0,"short_title":"RAD V8 ProgramminRAD-V8-Programming-Guide-Redbook-sg247835g Guide Redbook Sg247835","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/265412564/149x198/682e4f41b4/1431680001?v=1","title":"RAD V8 ProgramminRAD-V8-Programming-Guide-Redbook-sg247835g Guide Redbook Sg247835","type":"document","url":"https://www.scribd.com/document/265412564/RAD-V8-ProgramminRAD-V8-Programming-Guide-Redbook-sg247835g-Guide-Redbook-Sg247835","views":"281"},"303784623":{"author":"Tulio Silva","author_url":"https://www.scribd.com/user/162975827/Tulio-Silva","categories":[],"description":"QQQQQQQQQQQQQQQ","id":303784623,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":218,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/303784623/298x396/e345815492/1496817847?v=1","run_time":0,"short_title":"Factory Studio User Guide","static_rating":{"rating":5,"count":1,"up_count":1},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/303784623/149x198/0cff393e74/1496817847?v=1","title":"Factory Studio User Guide","type":"document","url":"https://www.scribd.com/document/303784623/Factory-Studio-User-Guide","views":"1.2K"},"318765044":{"author":"xono10101","author_url":"https://www.scribd.com/user/3191817/xono10101","categories":[],"description":"Marionette JS","id":318765044,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":236,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/318765044/298x396/a3d833059b/1468962972?v=1","run_time":0,"short_title":"Leanstacks Marionette Spring","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/318765044/149x198/429380a6bd/1468962972?v=1","title":"Leanstacks Marionette Spring","type":"document","url":"https://www.scribd.com/document/318765044/Leanstacks-Marionette-Spring","views":"269"},"376273496":{"author":"కిరణ్ కుమార్ జి","author_url":"https://www.scribd.com/user/112278039/%E0%B0%95%E0%B0%BF%E0%B0%B0%E0%B0%A3-%E0%B0%95%E0%B1%81%E0%B0%AE%E0%B0%BE%E0%B0%B0-%E0%B0%9C%E0%B0%BF","categories":[],"description":"core java","id":376273496,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":382,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/376273496/298x396/0e49102d43/1545272249?v=1","run_time":0,"short_title":"New KV - Rao Core Java","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/376273496/149x198/67594a8caf/1545272249?v=1","title":"New KV - Rao Core Java","type":"document","url":"https://www.scribd.com/document/376273496/New-Kv-rao-Core-Java-2","views":"312"},"419374596":{"author":"JR Borg","author_url":"https://www.scribd.com/user/32577587/JR-Borg","categories":[],"description":null,"id":419374596,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":121,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/419374596/298x396/42f68c3a13/1563807459?v=1","run_time":0,"short_title":"02-HOPEX IT Architecture - Training Handout PDF","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/419374596/149x198/e02d016d61/1563807459?v=1","title":"02-HOPEX IT Architecture - Training Handout PDF","type":"document","url":"https://www.scribd.com/document/419374596/02-HOPEX-IT-Architecture-Training-Handout-pdf","views":"1.5K"},"441291725":{"author":"vikki chowdary","author_url":"https://www.scribd.com/user/493089111/vikki-chowdary","categories":[],"description":null,"id":441291725,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":382,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/441291725/298x396/e0fc596054/1716078725?v=1","run_time":0,"short_title":"New KV - Rao Core Java PDF","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/441291725/149x198/79d4f5c9b9/1716078725?v=1","title":"New KV - Rao Core Java PDF","type":"document","url":"https://www.scribd.com/document/441291725/NEW-KV-RAO-CORE-JAVA-pdf","views":"214"},"442581748":{"author":"Purna Ch","author_url":"https://www.scribd.com/user/134388002/Purna-Ch","categories":[],"description":null,"id":442581748,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":382,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/442581748/298x396/ced10d8229/1716166951?v=1","run_time":0,"short_title":"New KV - Rao Core Java PDF","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/442581748/149x198/72d564bc74/1716166951?v=1","title":"New KV - Rao Core Java PDF","type":"document","url":"https://www.scribd.com/document/442581748/NEW-KV-RAO-CORE-JAVA-pdf","views":"242"},"443732283":{"author":"venkatesh","author_url":"https://www.scribd.com/user/494193377/venkatesh","categories":[],"description":null,"id":443732283,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":382,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/443732283/298x396/d53c4bfb5d/1715995867?v=1","run_time":0,"short_title":"New KV - Rao Core Java PDF","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/443732283/149x198/0fc1202fa2/1715995867?v=1","title":"New KV - Rao Core Java PDF","type":"document","url":"https://www.scribd.com/document/443732283/NEW-KV-RAO-CORE-JAVA-pdf","views":"1.2K"},"461009761":{"author":"Deepak","author_url":"https://www.scribd.com/user/454549662/Deepak","categories":[],"description":null,"id":461009761,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":282,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/461009761/298x396/13d6f84f6d/1730459276?v=1","run_time":0,"short_title":"New NTJ Spring PDF","static_rating":{"rating":5,"count":1,"up_count":1},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/461009761/149x198/28c9f83516/1730459276?v=1","title":"New NTJ Spring PDF","type":"document","url":"https://www.scribd.com/document/461009761/NEW-NTJ-SPRING-pdf","views":"221"},"468150560":{"author":"sivaramakrishna","author_url":"https://www.scribd.com/user/323565285/sivaramakrishna","categories":[],"description":null,"id":468150560,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":420,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/468150560/298x396/53adf591cc/1716190732?v=1","run_time":0,"short_title":"Sateesh Gupta Sir Core Java Notes PDF","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/468150560/149x198/b7975fee97/1716190732?v=1","title":"Sateesh Gupta Sir Core Java Notes PDF","type":"document","url":"https://www.scribd.com/document/468150560/SATEESH-GUPTA-SIR-CORE-JAVA-NOTES-pdf","views":"426"},"493723932":{"author":"brambang","author_url":"https://www.scribd.com/user/312785326/brambang","categories":[],"description":"ArchestrA Training Manual Class 1","id":493723932,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":314,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/493723932/298x396/a35fd1a319/1612761815?v=1","run_time":0,"short_title":"ArchestrA Training Manual Class 1","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/493723932/149x198/b97f9e4579/1612761815?v=1","title":"ArchestrA Training Manual Class 1","type":"document","url":"https://www.scribd.com/document/493723932/ArchestrA-Training-Manual-Class-1","views":"643"},"540652105":{"author":"Alejandra Martín","author_url":"https://www.scribd.com/user/412025607/Alejandra-Martin","categories":[],"description":null,"id":540652105,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":153,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/540652105/298x396/f17df10fa9/1730272518?v=1","run_time":0,"short_title":"Clean Architectures in Python","static_rating":{"rating":5,"count":1,"up_count":1},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/540652105/149x198/2844c2615c/1730272518?v=1","title":"Clean Architectures in Python","type":"document","url":"https://www.scribd.com/document/540652105/Clean-Architectures-in-Python","views":"528"},"566427867":{"author":"Jorge Mendizabal","author_url":"https://www.scribd.com/user/44164425/Jorge-Mendizabal","categories":[],"description":null,"id":566427867,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":334,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/566427867/298x396/2cc62cd469/1745221256?v=1","run_time":0,"short_title":"Advanced IOS App Architecture by René Cacheaux Josh Berlin","static_rating":{"rating":5,"count":2,"up_count":2},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/566427867/149x198/50fb28d33e/1745221256?v=1","title":"Advanced IOS App Architecture by René Cacheaux Josh Berlin","type":"document","url":"https://www.scribd.com/document/566427867/Advanced-IOS-App-Architecture-by-Rene-Cacheaux-Josh-Berlin-Z-lib-org","views":"854"},"622906559":{"author":"Jagadeesh Hs","author_url":"https://www.scribd.com/user/651555928/Jagadeesh-Hs","categories":[],"description":"Content of Manual testing","id":622906559,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":69,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/622906559/298x396/b27e92636e/1710525574?v=1","run_time":0,"short_title":"Manual Testing Notes","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/622906559/149x198/1a1fa07c9c/1710525574?v=1","title":"Manual Testing Notes","type":"document","url":"https://www.scribd.com/document/622906559/manual-testing-notes","views":"98"},"658150616":{"author":"MOHAMMAD FAIZAN AHMAD IRAQI","author_url":"https://www.scribd.com/user/678257827/MOHAMMAD-FAIZAN-AHMAD-IRAQI","categories":[],"description":"","id":658150616,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":31,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/658150616/298x396/eee65bf5af/1710575551?v=1","run_time":0,"short_title":"Interview Que Ans","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/658150616/149x198/eee4af0b7a/1710575551?v=1","title":"Interview Que Ans","type":"document","url":"https://www.scribd.com/document/658150616/interview-que-ans","views":"102"},"665607890":{"author":"Jesus Palencia Ramirez","author_url":"https://www.scribd.com/user/684271174/Jesus-Palencia-Ramirez","categories":[],"description":"","id":665607890,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":257,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/665607890/298x396/0d99d66a29/1710535875?v=1","run_time":0,"short_title":"Architecture of Complex Web Applications","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/665607890/149x198/71b2f84247/1710535875?v=1","title":"Architecture of Complex Web Applications","type":"document","url":"https://www.scribd.com/document/665607890/architecture-of-complex-web-applications","views":"318"},"686043140":{"author":"aquafresh41ml","author_url":"https://www.scribd.com/user/705703653/aquafresh41ml","categories":[],"description":null,"id":686043140,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":22,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/686043140/298x396/aeeb3308df/1700540621?v=1","run_time":0,"short_title":"NET Developer Roadmap 2023 1699044865","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/686043140/149x198/5cfc5d5a8f/1700540621?v=1","title":"NET Developer Roadmap 2023 1699044865","type":"document","url":"https://www.scribd.com/document/686043140/NET-Developer-Roadmap-2023-1699044865","views":"199"},"687618455":{"author":"22Sneha JhaIT2","author_url":"https://www.scribd.com/user/684706551/22Sneha-JhaIT2","categories":[],"description":"","id":687618455,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":52,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/687618455/298x396/7675f38140/1716427988?v=1","run_time":0,"short_title":"Module 1-2","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/687618455/149x198/b837438464/1716427988?v=1","title":"Module 1-2","type":"document","url":"https://www.scribd.com/document/687618455/module-1-2","views":"40"},"692374077":{"author":"Shivam Chaudhary","author_url":"https://www.scribd.com/user/564305893/Shivam-Chaudhary","categories":[],"description":"","id":692374077,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":13,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/692374077/298x396/3ef5409eff/1710567585?v=1","run_time":0,"short_title":"Full Stack Web Developer Roadmap","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/692374077/149x198/59b94dc7f5/1710567585?v=1","title":"Full Stack Web Developer Roadmap","type":"document","url":"https://www.scribd.com/document/692374077/Full-Stack-Web-Developer-Roadmap","views":"288"},"692374377":{"author":"Shivam Chaudhary","author_url":"https://www.scribd.com/user/564305893/Shivam-Chaudhary","categories":[],"description":"","id":692374377,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":9,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/692374377/298x396/523d281d7c/1710557068?v=1","run_time":0,"short_title":"Front End Development Roadmap","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/692374377/149x198/a37aaad161/1710557068?v=1","title":"Front End Development Roadmap","type":"document","url":"https://www.scribd.com/document/692374377/Front-end-development-roadmap","views":"120"},"708302973":{"author":"Divyansh Agrawal","author_url":"https://www.scribd.com/user/516609355/Divyansh-Agrawal","categories":[],"description":null,"id":708302973,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":187,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/708302973/298x396/425929a523/1716485295?v=1","run_time":0,"short_title":"JAVA Notes Part 1","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/708302973/149x198/997f832edd/1716485295?v=1","title":"JAVA Notes Part 1","type":"document","url":"https://www.scribd.com/document/708302973/JAVA-Notes-Part-1","views":"69"},"718885683":{"author":"Ariyo Putra","author_url":"https://www.scribd.com/user/651535354/Ariyo-Putra","categories":[],"description":null,"id":718885683,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":480,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/718885683/298x396/d8535dba47/1752205158?v=1","run_time":0,"short_title":"IBM Framework For E Business Technology Solution and Design Overview Ibm Redbooks","static_rating":{"rating":5,"count":1,"up_count":1},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/718885683/149x198/28641d4ad0/1752205158?v=1","title":"IBM Framework For E Business Technology Solution and Design Overview Ibm Redbooks","type":"document","url":"https://www.scribd.com/document/718885683/IBM-Framework-for-E-Business-Technology-Solution-and-Design-Overview-Ibm-Redbooks","views":"75"},"727119754":{"author":"Vaishnavi Pansaniya","author_url":"https://www.scribd.com/user/587038452/Vaishnavi-Pansaniya","categories":[],"description":"Notes for software engineering","id":727119754,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":52,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/727119754/298x396/85be26b22b/1714210758?v=1","run_time":0,"short_title":"Softwares Notes","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/727119754/149x198/6f47cc170d/1714210758?v=1","title":"Softwares Notes","type":"document","url":"https://www.scribd.com/document/727119754/Softwares-notes","views":"78"},"745611785":{"author":"Rahul Kumar Paul","author_url":"https://www.scribd.com/user/383687234/Rahul-Kumar-Paul","categories":[],"description":"","id":745611785,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":39,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/745611785/298x396/108449dbb1/1719417780?v=1","run_time":0,"short_title":"Internship Report by Aakanksha Jaiswal","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/745611785/149x198/b1a8dd86d8/1719417780?v=1","title":"Internship Report by Aakanksha Jaiswal","type":"document","url":"https://www.scribd.com/document/745611785/Internship-Report-by-Aakanksha-Jaiswal","views":"100"},"770502819":{"author":"druthireddy71","author_url":"https://www.scribd.com/user/753249889/druthireddy71","categories":[],"description":"Hii","id":770502819,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":42,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/770502819/298x396/d9cdf9fac3/1726668127?v=1","run_time":0,"short_title":"SE Notes 1st Unit","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/770502819/149x198/0833e8119e/1726668127?v=1","title":"SE Notes 1st Unit","type":"document","url":"https://www.scribd.com/document/770502819/SE-notes-1st-unit","views":"30"},"775070825":{"author":"radhepatel01369","author_url":"https://www.scribd.com/user/790505488/radhepatel01369","categories":[],"description":"Assignment","id":775070825,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":20,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/775070825/298x396/f419ca72b2/1727789293?v=1","run_time":0,"short_title":"MAD Assignment 1","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/775070825/149x198/ac63a4f351/1727789293?v=1","title":"MAD Assignment 1","type":"document","url":"https://www.scribd.com/document/775070825/MAD-Assignment-1","views":"10"},"790687938":{"author":"bindiyap","author_url":"https://www.scribd.com/user/805415230/bindiyap","categories":[],"description":"Software Engineering","id":790687938,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":26,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/790687938/298x396/95c45c8748/1731310312?v=1","run_time":0,"short_title":"Module 1&2 Notes","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/790687938/149x198/4ef01598bf/1731310312?v=1","title":"Module 1&2 Notes","type":"document","url":"https://www.scribd.com/document/790687938/module-1-2-notes","views":"54"},"800715309":{"author":"jobaseki62","author_url":"https://www.scribd.com/user/750469942/jobaseki62","categories":[],"description":null,"id":800715309,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":7,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/800715309/298x396/28a4341b78/1733333282?v=1","run_time":0,"short_title":"Assignment","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/800715309/149x198/9c663910b4/1733333282?v=1","title":"Assignment","type":"document","url":"https://www.scribd.com/document/800715309/Assignment","views":"23"},"801794855":{"author":"afaanshaikh166","author_url":"https://www.scribd.com/user/814880485/afaanshaikh166","categories":[],"description":"Notes for software engineering","id":801794855,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":35,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/801794855/298x396/d902118efc/1733566585?v=1","run_time":0,"short_title":"C2. Notes","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/801794855/149x198/5e7b5a94a9/1733566585?v=1","title":"C2. Notes","type":"document","url":"https://www.scribd.com/document/801794855/C2-notes","views":"33"},"805669959":{"author":"joshnaj883","author_url":"https://www.scribd.com/user/766037955/joshnaj883","categories":[],"description":"fsd class unit 4 CSE R20","id":805669959,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":23,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/805669959/298x396/584dded42e/1734421810?v=1","run_time":0,"short_title":"FSD Unit - 4","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/805669959/149x198/b7dcd8b5a0/1734421810?v=1","title":"FSD Unit - 4","type":"document","url":"https://www.scribd.com/document/805669959/FSD-unit-4","views":"23"},"813408324":{"author":"thangvpqse150437","author_url":"https://www.scribd.com/user/824588967/thangvpqse150437","categories":[],"description":null,"id":813408324,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":16,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/813408324/298x396/2ece31c360/1736385080?v=1","run_time":0,"short_title":"Lab01 - ProductManagement - Using ASP - Net Core Web API","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/813408324/149x198/a5dd213077/1736385080?v=1","title":"Lab01 - ProductManagement - Using ASP - Net Core Web API","type":"document","url":"https://www.scribd.com/document/813408324/Lab01-ProductManagement-Using-ASP-net-Core-Web-API-1","views":"38"},"832665021":{"author":"aay aar","author_url":"https://www.scribd.com/user/439356004/aay-aar","categories":[],"description":"","id":832665021,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":29,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/832665021/298x396/9be41bc507/1740509654?v=1","run_time":0,"short_title":"Technical Jargons That Business Analyst Should Be Aware Of","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/832665021/149x198/75a11b40f5/1740509654?v=1","title":"Technical Jargons That Business Analyst Should Be Aware Of: Diwakar Singh","type":"document","url":"https://www.scribd.com/document/832665021/1735914925888","views":"14"},"835235239":{"author":"fecogi8703","author_url":"https://www.scribd.com/user/843652424/fecogi8703","categories":[],"description":"","id":835235239,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":7,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/835235239/298x396/aadf390c97/1741092125?v=1","run_time":0,"short_title":"Clean Arch","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/835235239/149x198/7d9a0a131a/1741092125?v=1","title":"Clean Arch","type":"document","url":"https://www.scribd.com/document/835235239/Clean-Arch","views":"16"},"845739763":{"author":"Manu Manu","author_url":"https://www.scribd.com/user/511436932/Manu-Manu","categories":[],"description":"notes","id":845739763,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":70,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/845739763/298x396/5b7e189364/1743649880?v=1","run_time":0,"short_title":"Devops Notes","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/845739763/149x198/0d6f88454f/1743649880?v=1","title":"Devops Notes","type":"document","url":"https://www.scribd.com/document/845739763/devops-notes","views":"20"},"861291062":{"author":"temidayo.damoye","author_url":"https://www.scribd.com/user/863636375/temidayo-damoye","categories":[],"description":null,"id":861291062,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":670,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/861291062/298x396/c0c3bbdc67/1750444984?v=1","run_time":0,"short_title":"Core 9 Web API Cookbook (Luke Avedon, Garry Cabrera) (Z-Library)","static_rating":{"rating":5,"count":1,"up_count":1},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/861291062/149x198/c99b6dcaa8/1750444984?v=1","title":"Core 9 Web API Cookbook (Luke Avedon, Garry Cabrera) (Z-Library)","type":"document","url":"https://www.scribd.com/document/861291062/ASP-net-Core-9-Web-API-Cookbook-Luke-Avedon-Garry-Cabrera-Z-Library-1","views":"4.8K"},"864692650":{"author":"clickvillagesite","author_url":"https://www.scribd.com/user/866143536/clickvillagesite","categories":[],"description":"","id":864692650,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":56,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/864692650/298x396/d8b0b9f66e/1747778346?v=1","run_time":0,"short_title":"Clean Architecture","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/864692650/149x198/a6fac9ef9d/1747778346?v=1","title":"Clean Architecture","type":"document","url":"https://www.scribd.com/document/864692650/CleanArchitecture","views":"22"},"865865463":{"author":"Nguyễn Kim Long","author_url":"https://www.scribd.com/user/607271515/Nguy%E1%BB%85n-Kim-Long","categories":[],"description":null,"id":865865463,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":26,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/865865463/298x396/52436ad736/1747972720?v=1","run_time":0,"short_title":"PRN232Lab 01","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/865865463/149x198/5c3c68348b/1747972720?v=1","title":"PRN232Lab 01","type":"document","url":"https://www.scribd.com/document/865865463/PRN232Lab-01","views":"22"},"867701892":{"author":"aaryaborkar67","author_url":"https://www.scribd.com/user/701005729/aaryaborkar67","categories":[],"description":"sepm qna","id":867701892,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":19,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/867701892/298x396/4f1f72341a/1748319366?v=1","run_time":0,"short_title":"Sepm QB","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/867701892/149x198/452a3a75b5/1748319366?v=1","title":"Sepm QB","type":"document","url":"https://www.scribd.com/document/867701892/sepm-QB","views":"33"},"874071886":{"author":"mimag","author_url":"https://www.scribd.com/user/872708746/mimag","categories":[],"description":null,"id":874071886,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":2,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/874071886/298x396/af8f48a831/1749536494?v=1","run_time":0,"short_title":"SA - SE3030 Finl","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/874071886/149x198/510a40b3e7/1749536494?v=1","title":"SA - SE3030 Finl","type":"document","url":"https://www.scribd.com/document/874071886/SA-SE3030-Finl","views":"6"},"879698001":{"author":"tusharbussin","author_url":"https://www.scribd.com/user/876821731/tusharbussin","categories":[],"description":"SEST VTU NOTES","id":879698001,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":14,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/879698001/298x396/a66a5cd931/1750693565?v=1","run_time":0,"short_title":"Sest","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/879698001/149x198/2bf28dcc8a/1750693565?v=1","title":"Sest","type":"document","url":"https://www.scribd.com/document/879698001/sest-5","views":"4"},"882142408":{"author":"vkim81266","author_url":"https://www.scribd.com/user/878580537/vkim81266","categories":[],"description":"Oops with java notes that will help you during Semester exams","id":882142408,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":12,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/882142408/298x396/1cb66ba8e8/1751212646?v=1","run_time":0,"short_title":"Unit 5 Java, Aktu Java","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/882142408/149x198/6ace188717/1751212646?v=1","title":"Unit 5 Java, Aktu Java","type":"document","url":"https://www.scribd.com/document/882142408/unit-5-java-aktu-java","views":"14"},"889375580":{"author":"fxkvxkq801","author_url":"https://www.scribd.com/user/883382664/fxkvxkq801","categories":[],"description":"Ebook access","id":889375580,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":52,"retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/889375580/298x396/ea35e70262/1752745368?v=1","run_time":0,"short_title":"Managing Information Access 1 ST Edition William Moore PDF Download","static_rating":{"rating":0,"count":0,"up_count":0},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/889375580/149x198/8d71613653/1752745368?v=1","title":"Managing Information Access 1 ST Edition William Moore PDF Download","type":"document","url":"https://www.scribd.com/document/889375580/Managing-Information-Access-1-st-Edition-William-Moore-pdf-download","views":"11"},"889982234":{"author":"awciykj761","author_url":"https://www.scribd.com/user/883511097/awciykj761","categories":[],"description":"Ebook download","id":889982234,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":53,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/889982234/298x396/767254f686/1753118286?v=1","run_time":0,"short_title":"Designing Enterprise Applications With The J2EE Platform 2nd Edition Inderjeet Singh Instant Download","static_rating":{"rating":5,"count":2,"up_count":2},"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/889982234/149x198/8b8e90f3dc/1753118286?v=1","title":"Designing Enterprise Applications With The J2EE Platform 2nd Edition Inderjeet Singh Instant Download","type":"document","url":"https://www.scribd.com/document/889982234/Designing-Enterprise-Applications-with-the-J2EE-Platform-2nd-Edition-Inderjeet-Singh-instant-download","views":"12"},"890004757":{"author":"yjzfcxzcy895","author_url":"https://www.scribd.com/user/883514464/yjzfcxzcy895","categories":[],"description":"Ebook installation","id":890004757,"is_series":false,"in_library":false,"library_xhr_pending":false,"page_count":53,"retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/890004757/298x396/d6864cd9cb/1753130916?v=1","run_time":0,"short_title":"Microsoft Reference Architecture For Commerce Version 2 0 Pro Other 1st Edition Microsoft Corporation Instant Download","static_rating":{"rating":5,"count":2,"up_count":2},"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/890004757/149x198/19c97328eb/1753130916?v=1","title":"Microsoft Reference Architecture For Commerce Version 2 0 Pro Other 1st Edition Microsoft Corporation Instant Download","type":"document","url":"https://www.scribd.com/document/890004757/Microsoft-Reference-Architecture-for-Commerce-Version-2-0-Pro-Other-1st-Edition-Microsoft-Corporation-instant-download","views":"10"}}},"renewalNagProps":null,"signupContext":null,"static":{"config":{"brand":"scribd","google":{"clientId":"491264573595-hs5hu9ijbfl9g6khnkn2retrfr6lcua7.apps.googleusercontent.com","sessionPath":"/open_id_connect/login"},"thirdPartyTags":{"googleAnalytics":{"account_id":"UA-443684-2","current_user":"false","facebook_user_context":"none"},"includeGoogleTagManager":true,"siftScience":{"user_id":null,"unique_browser_tracking_uuid":"10868ce0-654f-4c57-91f3-ab7d951db409","sift_science_js_key":"cbcb9f556a"}}},"routes":{"accountPath":"L2FjY291bnQtc2V0dGluZ3M=\n","accountSettingsPath":"L2FjY291bnQtc2V0dGluZ3M=\n","androidStoreUrl":"aHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lk\nPWNvbS5zY3JpYmQuYXBwLnJlYWRlcjAuZG9jcw==\n","appPromoDeepLink":"aHR0cHM6Ly9zY3JpYmQucGFnZS5saW5rLz9hbXY9MTMuMTYmYXBuPWNvbS5z\nY3JpYmQuYXBwLnJlYWRlcjAuZG9jcyZpYmk9Y29tLnNjcmliZC5kb2NzJmlt\ndj0xMy4xNiZpc2k9NjQ0ODgwNzcxNCZsaW5rPWh0dHBzJTNBJTJGJTJGd3d3\nLnNjcmliZC5jb20lMkZkb2MlMkYyMTI1OTQ3MTQlMkZTaGVrYXItU3RydXRz\nJTNGcmVmZXJyZXIlM0R1dG1fY2FtcGFpZ24lM0Rkb2NfcGFnZSUyNnV0bV9z\nb3VyY2UlM0Rkb2NfcGFnZSUyNnV0bV9tZWRpdW0lM0R3ZWImc3Q9U2hla2Fy\nJTIwU3RydXRzJnNpPWh0dHBzOi8vaW1ndjItMi1mLnNjcmliZGFzc2V0cy5j\nb20vaW1nL2RvY3VtZW50LzIxMjU5NDcxNC9vcmlnaW5hbC8yMTZ4Mjg3L2Vm\nMmFhYzYxZjMvMT92PTE=\n","audiobooksAllCategoriesPath":"L2F1ZGlvYm9va3MvY2F0ZWdvcmllcw==\n","audiobooksPath":"L2F1ZGlvYm9va3M=\n","archivePlansAskAiActionUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9hcmNoaXZlL3BsYW5zP2RvYz0yMTI1\nOTQ3MTQmbWV0YWRhdGE9JTdCJTIyY29udGV4dCUyMiUzQSUyMmFyY2hpdmVf\ndmlld19yZXN0cmljdGVkJTIyJTJDJTIycGFnZSUyMiUzQSUyMnJlYWQlMjIl\nMkMlMjJhY3Rpb24lMjIlM0ElMjJhc2tfYWklMjIlMkMlMjJsb2dnZWRfaW4l\nMjIlM0FmYWxzZSUyQyUyMnBsYXRmb3JtJTIyJTNBJTIyd2ViJTIyJTdE\n","archivePlansCopyActionUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9hcmNoaXZlL3BsYW5zP2RvYz0yMTI1\nOTQ3MTQmbWV0YWRhdGE9JTdCJTIyY29udGV4dCUyMiUzQSUyMmFyY2hpdmVf\ndmlld19yZXN0cmljdGVkJTIyJTJDJTIycGFnZSUyMiUzQSUyMnJlYWQlMjIl\nMkMlMjJhY3Rpb24lMjIlM0ElMjJjb3B5JTIyJTJDJTIybG9nZ2VkX2luJTIy\nJTNBZmFsc2UlMkMlMjJwbGF0Zm9ybSUyMiUzQSUyMndlYiUyMiU3RA==\n","archivePlansDownloadActionUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9hcmNoaXZlL3BsYW5zP2RvYz0yMTI1\nOTQ3MTQmbWV0YWRhdGE9JTdCJTIyY29udGV4dCUyMiUzQSUyMmFyY2hpdmVf\ndmlld19yZXN0cmljdGVkJTIyJTJDJTIycGFnZSUyMiUzQSUyMnJlYWQlMjIl\nMkMlMjJhY3Rpb24lMjIlM0ElMjJkb3dubG9hZCUyMiUyQyUyMmxvZ2dlZF9p\nbiUyMiUzQWZhbHNlJTJDJTIycGxhdGZvcm0lMjIlM0ElMjJ3ZWIlMjIlN0Q=\n","bestsellersPath":"L2Jlc3RzZWxsZXJz\n","booksAllCategoriesPath":"L2Jvb2tzL2NhdGVnb3JpZXM=\n","booksPath":"L2Jvb2tz\n","documentsAllCategoriesPath":"L2RvY3MvY2F0ZWdvcmllcw==\n","documentsPath":"L2RvY3M=\n","facebookUrl":"aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1NjcmliZC8=\n","homePath":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS8=\n","instagramUrl":"aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9zY3JpYmQv\n","iosStoreUrl":"aHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS91cy9hcHAvNjQ0ODgwNzcxND9tdD04\nJnB0PTI5ODUzNA==\n","languageModalPropsPath":"L2xhbmd1YWdlX21vZGFsX3Byb3Bz\n","logoutPath":"L2xvZ291dA==\n","magazinesAllCategoriesPath":"L21hZ2F6aW5lcy9jYXRlZ29yaWVz\n","magazinesPath":"L21hZ2F6aW5lcw==\n","myUploadsPath":"L3VwbG9hZHM=\n","oauthLoginUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9vYXV0aC9sb2dpbg==\n","oauthSignupUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9vYXV0aC9zaWdudXA=\n","oauthStartTrialUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9vYXV0aC9zaWdudXA/ZG9jX2lkPTIx\nMjU5NDcxNA==\n","originalsRoute":"aHR0cHM6Ly93d3cuZXZlcmFuZC5jb20vb3JpZ2luYWxz\n","paymentFixUrl":null,"pinterestUrl":"aHR0cHM6Ly93d3cucGludGVyZXN0LmNvbS9zY3JpYmQv\n","podcastsAllCategories":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9wb2RjYXN0cy9jYXRlZ29yaWVz\n","podcastsPath":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9wb2RjYXN0cw==\n","profilePath":"","progressiveProfileModalPropsPath":"L2RvYy1wYWdlL3Byb2dyZXNzaXZlLXByb2ZpbGUtbW9kYWwvMjEyNTk0NzE0\n","progressiveProfileModalDismissPath":"L3Byb2dyZXNzaXZlX3Byb2ZpbGVfbW9kYWwvZGlzbWlzc19tb2RhbA==\n","rate":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9yYXRpbmdzLmpzb24=\n","readingHistoryDataPath":"L3lvdXItYWNjb3VudC9yZWFkaW5nX2hpc3RvcnlfZGF0YQ==\n","referralsUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9yZWZlcnJhbHM=\n","rootPath":"Lw==\n","rootUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS8=\n","savedPath":"L3NhdmVk\n","searchPath":"L3NlYXJjaA==\n","sheetMusicPath":"L3NoZWV0bXVzaWM=\n","statsPath":null,"subscribeUrl":"L2FyY2hpdmUvcG1wX2NoZWNrb3V0P2RvYz0yMTI1OTQ3MTQmZG9jX2lkPTIx\nMjU5NDcxNCZtZXRhZGF0YT0lN0IlMjJjb250ZXh0JTIyJTNBJTIycG1wJTIy\nJTJDJTIyYWN0aW9uJTIyJTNBJTIyc3RhcnRfdHJpYWwlMjIlMkMlMjJsb2dn\nZWRfaW4lMjIlM0FmYWxzZSUyQyUyMnBsYXRmb3JtJTIyJTNBJTIyd2ViJTIy\nJTJDJTIyYnJvd3Nlcl91dWlkJTIyJTNBJTIyMTA4NjhjZTAtNjU0Zi00YzU3\nLTkxZjMtYWI3ZDk1MWRiNDA5JTIyJTdE\n","supportPath":"aHR0cDovL3N1cHBvcnQuc2NyaWJkLmNvbQ==\n","twitterUrl":"aHR0cHM6Ly90d2l0dGVyLmNvbS9zY3JpYmQv\n","unpauseAccountUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9hY2NvdW50L3VucGF1c2U/ZnJvbT1o\ndHRwcyUzQSUyRiUyRnd3dy5zY3JpYmQuY29tJTJGZG9jJTJGMjEyNTk0NzE0\nJTJGU2hla2FyLVN0cnV0cw==\n","incentivizedUploadPath":"L3VwbG9hZC1kb2N1bWVudD9hcmNoaXZlX2RvYz0yMTI1OTQ3MTQ=\n","uploadPath":"L3VwbG9hZC1kb2N1bWVudA==\n","webAnalyticsUrl":"aHR0cHM6Ly93YS5zY3JpYmQuY29t\n","whatIsScribdLandingPath":"L3doYXQtaXMtc2NyaWJk\n","whatIsEverandLandingPath":"L3doYXQtaXMtZXZlcmFuZA==\n","footerContentTypeRoutes":{"documents":"L2RvY3M=\n"},"aboutUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9hYm91dA==\n","accessibilityUrl":"aHR0cHM6Ly9zdXBwb3J0LnNjcmliZC5jb20vaGMvZW4tdXMvYXJ0aWNsZXMv\nMjEwMTI5NTg2LUFjY2Vzc2liaWxpdHktTm90aWNl\n","adChoicesUrl":"aHR0cHM6Ly9zdXBwb3J0LnNjcmliZC5jb20vaGMvZW4tdXMvYXJ0aWNsZXMv\nMjEwMTI5MzY2\n","blogUrl":"aHR0cHM6Ly9ibG9nLnNjcmliZC5jb20v\n","careersUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9jYXJlZXJz\n","contactUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9jb250YWN0\n","copyrightUrl":"aHR0cHM6Ly9zdXBwb3J0LnNjcmliZC5jb20vaGMvZW4tdXMvc2VjdGlvbnMv\nMjAyMjQ2MDg2\n","everandBlogUrl":"aHR0cHM6Ly93d3cuZXZlcmFuZC5jb20vYmxvZw==\n","everandHostPath":"aHR0cHM6Ly93d3cuZXZlcmFuZC5jb20=\n","faqUrl":"aHR0cDovL3N1cHBvcnQuc2NyaWJkLmNvbS9oYy9lbi11cw==\n","giftUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9naWZ0\n","pressUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9tZWRpYQ==\n","privacyUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9wcml2YWN5\n","privacyRequestFormUrl":"aHR0cHM6Ly9zdXBwb3J0LnNjcmliZC5jb20vaGMvYXJ0aWNsZXMvMzYwMDM4\nMDE2OTMxLVByaXZhY3ktUmlnaHRzLVJlcXVlc3QtRm9ybQ==\n","publishersUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9wdWJsaXNoZXJz\n","purchaseHelpUrl":"aHR0cHM6Ly9zdXBwb3J0LnNjcmliZC5jb20vaGMvZW4tdXMvc2VjdGlvbnMv\nMjAyMjQ2MzA2\n","redeemUrl":"aHR0cHM6Ly93d3cuc2NyaWJkLmNvbS9yZWRlZW0=\n","simpleCancelUrl":"L3lvdXItYWNjb3VudC9jYW5jZWwtbm93\n","termsUrl":"aHR0cHM6Ly9zdXBwb3J0LnNjcmliZC5jb20vaGMvZW4tdXMvYXJ0aWNsZXMv\nMjEwMTI5MzI2LUdlbmVyYWwtVGVybXMtb2YtVXNl\n"}},"toolbar":{"search_path":"L2RvY3VtZW50cy9zZWFyY2g/YWxsb3dlZF9wYWdlcz0xJTJDMiUyQzMlMkM0\nJTJDNSUyQzYlMkM3JTJDOCUyQzklMkMxMCUyQzExJTJDMTIlMkMxMyUyQzE0\nJTJDMTUlMkMxNiUyQzE3JTJDMTglMkMxOSUyQzIwJTJDMjElMkMyMiUyQzIz\nJTJDMjQlMkMyNSUyQzI2JTJDMjclMkMyOCUyQzI5JTJDMzAlMkMzMSUyQzMy\nJTJDMzMlMkMzNCUyQzM1JTJDMzYlMkMzNyUyQzM4JTJDMzklMkM0MCUyQzQx\nJTJDNDIlMkM0MyUyQzQ0JTJDNDUlMkM0NiUyQzQ3JTJDNDglMkM0OSUyQzUw\nJTJDNTElMkM1MiUyQzUzJTJDNTQlMkM1NSUyQzU2JTJDNTclMkM1OCUyQzU5\nJTJDNjAlMkM2MSUyQzYyJTJDNjMlMkM2NCUyQzY1JTJDNjYlMkM2NyUyQzY4\nJTJDNjklMkM3MCUyQzcxJTJDNzIlMkM3MyUyQzc0JTJDNzUlMkM3NiUyQzc3\nJTJDNzglMkM3OSUyQzgwJTJDODElMkM4MiUyQzgzJTJDODQlMkM4NSUyQzg2\nJTJDODclMkM4OCUyQzg5JTJDOTAlMkM5MSUyQzkyJTJDOTMlMkM5NCUyQzk1\nJTJDOTYlMkM5NyUyQzk4JTJDOTklMkMxMDAlMkMxMDElMkMxMDIlMkMxMDMl\nMkMxMDQlMkMxMDUlMkMxMDYlMkMxMDclMkMxMDglMkMxMDklMkMxMTAlMkMx\nMTElMkMxMTIlMkMxMTMlMkMxMTQlMkMxMTUlMkMxMTYlMkMxMTclMkMxMTgl\nMkMxMTklMkMxMjAlMkMxMjElMkMxMjIlMkMxMjMlMkMxMjQlMkMxMjUlMkMx\nMjYlMkMxMjclMkMxMjglMkMxMjklMkMxMzAlMkMxMzElMkMxMzIlMkMxMzMl\nMkMxMzQlMkMxMzUlMkMxMzYlMkMxMzclMkMxMzglMkMxMzklMkMxNDAlMkMx\nNDElMkMxNDIlMkMxNDMlMkMxNDQlMkMxNDUlMkMxNDYlMkMxNDclMkMxNDgl\nMkMxNDklMkMxNTAlMkMxNTElMkMxNTIlMkMxNTMlMkMxNTQlMkMxNTUlMkMx\nNTYlMkMxNTclMkMxNTglMkMxNTklMkMxNjAlMkMxNjElMkMxNjIlMkMxNjMl\nMkMxNjQlMkMxNjUlMkMxNjYlMkMxNjclMkMxNjglMkMxNjklMkMxNzAlMkMx\nNzElMkMxNzIlMkMxNzMlMkMxNzQlMkMxNzUlMkMxNzYlMkMxNzclMkMxNzgl\nMkMxNzklMkMxODAlMkMxODElMkMxODIlMkMxODMlMkMxODQlMkMxODUlMkMx\nODYlMkMxODclMkMxODglMkMxODklMkMxOTAlMkMxOTElMkMxOTIlMkMxOTMl\nMkMxOTQlMkMxOTUlMkMxOTYlMkMxOTclMkMxOTglMkMxOTklMkMyMDAlMkMy\nMDElMkMyMDIlMkMyMDMlMkMyMDQlMkMyMDUlMkMyMDYlMkMyMDclMkMyMDgl\nMkMyMDklMkMyMTAlMkMyMTElMkMyMTIlMkMyMTMlMkMyMTQlMkMyMTUlMkMy\nMTYlMkMyMTclMkMyMTglMkMyMTklMkMyMjAlMkMyMjElMkMyMjIlMkMyMjMl\nMkMyMjQlMkMyMjUlMkMyMjYlMkMyMjclMkMyMjglMkMyMjklMkMyMzAlMkMy\nMzElMkMyMzIlMkMyMzMlMkMyMzQlMkMyMzUlMkMyMzYlMkMyMzclMkMyMzgl\nMkMyMzklMkMyNDAlMkMyNDElMkMyNDIlMkMyNDMlMkMyNDQlMkMyNDUlMkMy\nNDYlMkMyNDclMkMyNDglMkMyNDklMkMyNTAlMkMyNTElMkMyNTIlMkMyNTMl\nMkMyNTQlMkMyNTUlMkMyNTYlMkMyNTclMkMyNTglMkMyNTklMkMyNjAlMkMy\nNjElMkMyNjIlMkMyNjMlMkMyNjQlMkMyNjUlMkMyNjYlMkMyNjclMkMyNjgm\nYXV0aF90b2tlbj1MS1N2a0NhWGRWS21VMjNsNGdRbVNyWkxuNzAlM0QmYXV0\naGVudGljaXR5X3Rva2VuPUhmQy1NSktIRVJPVEJNWlF5d3F2NVpVbTRzY2dN\nZGtteTR3QUVZMjVUOXlMUW9rNWQzengyZzBxRFk1SWltX25Edlg5RnJXckNW\nVHhZX0ZUQjkxMk5RJmV4cGlyZXM9MTc1NDg3NDgxNiZ3b3JkRG9jdW1lbnRJ\nZD0yMTI1OTQ3MTQmd29yZFVwbG9hZElkPTIxNjg3OTEyOA==\n","topic_search_path":"L2RvYy1wYWdlL3RvcGljX3NlYXJjaA==\n"},"user":{"browserUuid":"10868ce0-654f-4c57-91f3-ab7d951db409","canExtendSubscription":null,"country":null,"currentPlanType":null,"emailHash":null,"hasPublishedDocuments":false,"id":null,"initials":"","isAborted":null,"isAdmin":null,"isBot":true,"isDunning":false,"isEligibleForFreeTrial":true,"isLoggedIn":false,"isMobile":false,"isPaused":false,"isSubscriber":false,"isTrialing":false,"isUnderDunningLock":false,"name":null,"personaIconRetinaUrl":null,"personaIconUrl":null,"showSimpleCancelOption":false},"wordDocument":{"ads_disabled":false,"archived":true,"author_name":"Chandu Damarasingh","copyright_name":"Attribution Non-Commercial (BY-NC)","description":"","documentHasThumbnails":false,"documentHasOutlines":false,"doc_topics":null,"downloadCount":4,"edit_path":null,"embed_modal_props_path":"/doc-page/embed-modal-props/212594714","extensions":["pdf"],"extracted_title":null,"flag_document_modal_props_path":"/doc-page/flag-document-modal-props/212594714","formats":[{"extension":"pdf","filesize":"7.59 MB"}],"generatedDescription":null,"hasFreeAccessFromUploader":false,"hasScrambledFonts":false,"id":212594714,"image_url":"https://imgv2-2-f.scribdassets.com/img/document/212594714/149x198/1abd1b09e7/1542373783?v=1","in_library":false,"isDocumentOwner":false,"is_archive":true,"is_credit_restricted":false,"is_downloadable":true,"is_sheet_music":false,"is_view_restricted_archive":true,"isbn":null,"library_xhr_pending":false,"outline":null,"page_count":268,"page_dimensions":{"width":610,"height":789},"page_orientation":"portrait","publisher_info":{"is_author":false,"name":"Chandu Damarasingh","url":"https://www.scribd.com/user/195532732/Chandu-Damarasingh"},"reportContentModalPropsPath":"/doc-page/report-content-modal-props/212594714","retina_image_url":"https://imgv2-1-f.scribdassets.com/img/document/212594714/298x396/0e34d4c2ec/1542373783?v=1","secret_password":null,"short_title":"Shekar Struts","showFullDoc":false,"show_archive_paywall":true,"signup_context":null,"title":"Shekar Struts","translation":{"original":null,"translations":[]},"type":"view_restricted","url":"https://www.scribd.com/doc/212594714/Shekar-Struts","views":"698","remainingCopyCredits":0},"X_Request_ID":"3505282c83fdf5feb9d059d1d94f548269851dbecd720d5904f21012509f1e1e"}--></script></div></div><script type="text/javascript" src="/https/www.scribd.com/options/exposed_to_client.js"></script><script type="application/javascript">window._translations = JSON.parse("{\"en-US\":{\"translation\":{\");\\n this\":{\"nestingSuffix = iOpts\":{\"nestingSuffix ? regexEscape(iOpts\":{\"nestingSuffix) : iOpts\":{}}}},\"account_settings\":{\"facebook_connect\":{\"facebook\":\"Facebook\"},\"payment_card\":{\"apple_sub\":\"Apple Subscriptions\",\"card_num\":\"Card ending in {{card_number}}\",\"fortumo_bill\":\"Mobile Bill (Serviced by Fortumo)\",\"google_play\":\"Google Play Subscriptions\",\"no_card\":\"No card on file\",\"paypal\":\"PayPal: {{email}}\"},\"plans\":{\"plan_module\":{\"slash_month\":\"/month\",\"slash_year\":\"/year\"}},\"show\":{\"restart_membership\":\"Restart subscription\"},\"subscription_card\":{\"plan\":{\"annual\":\"Premium Annual\",\"lite\":\"Lite\",\"monthly\":\"Premium Monthly\"},\"unlocks_available\":\"{{count}} unlock available\",\"unlocks_available_plural\":\"{{count}} unlocks available\",\"unlocks_will_expire\":\"Unlocks will expire on {{date}}\"}},\"ai_assistant\":{\"ask_ai\":{\"cta_button_listen\":\"Listen\",\"cta_button_preview\":\"Preview\",\"cta_button_read\":\"Read\",\"cta_button_sample\":\"Sample\",\"cta_button_show_more\":\"Show more\",\"cta_button_view_titles\":\"View titles\",\"disclaimer_ask_ai_may_make_mistakes\":\"Ask v1.0 may make mistakes.\",\"error_messages\":\"Hmm, something went wrong. Please try again later.\",\"feedback_bad_response\":\"Bad Response\",\"feedback_good_response\":\"Good Response\",\"feedback_header\":\"Tell us more about your rating?\",\"feedback_success_description\":\"Your feedback is crucial in helping us improve our responses.\",\"feedback_success_header\":\"Thank you for your feedback\",\"feedback_tags_harmful_offensive\":\"Harmful or offensive\",\"feedback_tags_incorrect\":\"Incorrect or inaccurate\",\"feedback_tags_not_helpful\":\"Not helpful\",\"feedback_tags_not_what_meant\":\"Not what I meant\",\"feedback_tags_other\":\"Other\",\"feedback_tags_too_long\":\"Took too long\",\"greetings_subheading\":\"Ask me to recommend books or audiobooks - similar to reads you love, favorite categories, or with a specific plot or setting.\",\"save_button_remove_from_saved\":\"Remove from Saved\",\"save_button_save_for_later\":\"Save for later\",\"shared_highlight_can_help\":\"I can help!\",\"shared_highlight_looking_for\":\"Looking for\",\"shared_highlight_your_next_read\":\"your next read?\",\"suggestions_audiobooks_relationship\":\"I\'m seeking good audiobooks to help me improve my relationship with my girlfriend?\",\"suggestions_audiobooks_shoe_dog\":\"I’m looking for the audiobook Shoe Dog by Phil Knight?\",\"suggestions_audiobooks_successful_entrepreneurs\":\"Share inspirational audiobooks about successful entrepreneurs like The Spanx Story?\",\"suggestions_books_balance_technology_as_mom\":\"As a mom with kids below age 9, I need a book on how to balance technology and screen time for kids?\",\"suggestions_books_big_little_lies\":\"Domestic suspense books similar to Big Little Lies by Liane Moriarty?\",\"suggestions_books_children_books_science\":\"Children books about science that are appropriate for a 6 year old?\",\"suggestions_books_climate_change\":\"Can you suggest the top 3 books about climate change that I should read?\",\"suggestions_books_cookbooks\":\"Popular cookbooks for healthy diets?\",\"suggestions_books_creativity_inc\":\"Any books similar to Creativity Inc by Ed Catmull?\",\"suggestions_books_fiction_books\":\"Are there any fiction books about people with schizophrenia?\",\"suggestions_books_financial_independence\":\"Books about financial independence like Pathfinders by JL Collins?\",\"suggestions_books_finding_love_againa\":\"I want to read a good story about finding love again after life setbacks?\",\"suggestions_books_glad_my_mom_died\":\"Do you have I’m Glad My Mom Died?\",\"suggestions_books_inspire_me_with_books\":\"I want to be inspired, what books do you recommend?\",\"suggestions_books_leadership_skills\":\"Good books on leadership skills for women similar to Career Forward by Puma?\",\"suggestions_books_light_funnny_lift_mood\":\"Any light and funny books to lift my mood?\",\"suggestions_books_make_me_cry_ugly\":\"Looking for books that will make me ugly cry?\",\"suggestions_books_medicine_and_disease\":\"Do you have books about medicine and disease similar to Being Mortal by Gawande?\",\"suggestions_books_memoirs_not_business_leaders\":\"Looking for good memoirs but not about business leaders?\",\"suggestions_books_memoirs_successful_athletes\":\"Share memoirs about successful athletes that would inspire young kids to work hard?\",\"suggestions_books_millionaire_next_door\":\"Books like The Millionaire Next Door that are good?\",\"suggestions_books_no_weak_female_characters\":\"I don’t like books with weak female characters. Can you suggest novels with strong, empowered women?\",\"suggestions_books_real_estate_investor\":\"I want to learn how to be a real estate investor - what books should I read?\",\"suggestions_books_self_help_books\":\"I want self-help books not written by Dale Carnegie?\",\"suggestions_books_sets_india\":\"Can you recommend books set in India?\",\"suggestions_books_story_at_sea\":\"Books where the story happens at sea?\",\"suggestions_books_suggestions_about_cats\":\"My daughter is 12 yrs old and also loves cats. Any suggestions?\",\"suggestions_books_underdog_sports_teams\":\"Interested in books about underdog sports teams similar to The Boys in the Boat by Brown?\",\"suggestions_books_walter_isaacson\":\"Do you have books by Walter Isaacson?\",\"suggestions_books_written_by_sarah_maas\":\"Show me books written by Sarah Maas?\",\"suggestions_deeply_emotional_memoir\":\"I want a deeply emotional memoir that explores overcoming adversity - any ideas?\",\"suggestions_fiction_novels_medival_europe\":\"Can you recommend any fiction novels set in Medieval Europe?\",\"suggestions_funny_romance_books\":\"I need some cheering up, can you recommend some super funny laugh-out-loud romance books for me?\",\"suggestions_good_audiobook_set_rome\":\"Looking for a good audiobook set in ancient Rome?\",\"suggestions_mystery_novel_female_detective\":\"Can you recommend a mystery novel set in the 1920s that features a female detective?\",\"suggestions_romance_lovers_plot\":\"Give me a spicy romance book with an enemies to lovers plot?\",\"suggestions_romance_novel_world_war\":\"Can you recommend a romance novel set during World War II?\",\"suggestions_self_improvement_audiobooks\":\"I’m looking for inspiration to stop procrastinating. Can you recommend some self-improvement audiobooks on this topic?\",\"suggestions_similar_achilles_madeline_miller\":\"I enjoyed Song of Achilles by Madeline Miller. Suggest another retelling of a myth or legend?\",\"suggestions_similar_author_fantasy_series_george_rr_martin\":\"Recommend a fantasy series similar to A Song of Ice and Fire by George RR Martin?\",\"suggestions_similar_author_psychological_thrillers_gillian_flynn\":\"Love psychological thrillers by Gillian Flynn - what similar authors should I check out?\",\"suggestions_similar_books_chris_voss\":\"I liked Never Split the Difference by Chris Voss, recommend similar books to me?\",\"suggestions_similar_books_crawdads_sing\":\"I loved Where the Crawdads Sing by Delia Owens - what else should I read?\",\"suggestions_similar_books_female_main_character\":\"I\'m looking for books set in Europe with a female main character?\",\"suggestions_similar_books_lord_of_rings\":\"I loved Lord of the Rings, can you recommend something similar?\",\"suggestions_similar_books_many_lives_mama_love\":\"Books similar to The Many Lives of Mama Love?\",\"suggestions_similar_books_marie_kondo\":\"I\'m a fan of Marie Kondo and her approach to simplifying life. What books by similar authors would you recommend?\",\"suggestions_similar_plot_twists\":\"I don’t like predictable endings, can you find a couple of books with good plot twists for me?\",\"suggestions_thriller_unexpected_plot_twists\":\"I’m looking for a thriller with unexpected plot twists and a dark setting?\",\"suggestions_true_story_book_recommendations\":\"Any true story book recommendations?\",\"text_input_ask_follow_up\":\"Ask a follow-up\",\"text_input_discover_next_read\":\"Discover your next read\",\"text_input_label\":\"Send Message\",\"thumbs_down_other_header\":\"Provide additional feedback\",\"thumbs_down_submit_button\":\"Submit Feedback\"},\"ask_ai_modal\":{\"advanced_search\":\"Advanced Search\",\"copy_and_paste\":\"Copy \\u0026 paste text and images from any document\",\"download_documents\":\"Download documents\",\"free_trial\":\"Get this feature with a free trial\",\"start_free_trial\":\"Start {{numberOfDays}} day free trial\",\"start_free_trial_unlimited_access_html\":\"Start a 30 day free trial to \\u003cstrong\\u003eget unlimited access to Ask AI,\\u003c/strong\\u003e plus:\",\"summary\":\"Ask AI gives you instant answers and helps you summarize the contents of the document faster\"}},\"bestsellers\":{\"promo\":{\"enjoy_bestselling_titles_when_subscribed\":\"Enjoy bestselling titles when you subscribe\"}},\"books\":{\"epub\":{\"banners\":{\"enjoying_preview_update_payment\":\"Your next unlock will be available after you update your payment information.\",\"enjoying_preview_update_payment_upgrade\":\"Update payment information to upgrade to Plus\"}}},\"browse\":{\"promo\":{\"everand_also_available_on_mobile_devices\":\"Everand is also available for your mobile devices.\"}},\"category\":{\"documents\":\"{{category}} Documents\"},\"change_plans_page\":{\"plan_module\":{\"most_popular\":\"Most Popular\"}},\"chrome\":{\"flash\":{\"close_notification\":\"Close notification\"},\"renewal_nag\":{\"click_here_to_become_a_member\":\"Click here to become a member\",\"click_here_to_renew_it\":\"Click here to renew it\",\"click_here_to_resume_it\":\"Click here to resume it\",\"click_here_to_update_it\":\"Click here to update it\",\"resume_membership\":\"Resume membership\",\"update_payment\":\"Update Payment\",\"you_canceled_your_free_trial\":\"You canceled your free trial.\",\"your_credit_card_information_is_invalid_\":\"Your credit card information is invalid.\",\"your_membership_is_on_hold\":\"Your membership is on hold because of a problem with your last payment.\",\"your_membership_is_paused_until_paused_until_date\":\"Your membership is paused until {{paused_until_date}}.\",\"your_paypal_information_is_invalid\":\"Your Paypal information is invalid.\",\"your_scribd_gift_membership_has_ended\":\"Your Scribd gift membership has ended.\",\"your_scribd_membership_has_expired\":\"Your Scribd membership has expired.\",\"your_scribd_membership_was_canceled\":\"Your Scribd membership was canceled.\"}},\"common\":{\"later\":\"Later\",\"update_payment\":\"Update payment\"},\"content_lengths\":{\"listening_minutes\":\"{{minutes}} min listen\",\"reading_minutes\":\"{{minutes}} min read\"},\"content_preview\":{\"available_on\":\"Available on {{date}}\",\"flags\":{\"expiring_soon\":\"Leaving soon\",\"geo_restricted\":\"Unavailable\",\"not_available\":\"Unavailable\",\"sample\":\"Sample\",\"throttled\":\"Available soon\"},\"formats\":{\"also_available_list_view\":\"Also available as \\u003ca href={{url}} class=\'also_available\'\\u003e{{content_type}}\\u003c/a\\u003e\"},\"geo_restricted\":\"Unavailable in your country\",\"reviews\":{\"delete_rating_and_review\":\"Delete this rating and review?\",\"delete_warning\":\"This action cannot be undone.\",\"rating_and_review_deleted\":\"Rating and review deleted\"},\"save\":{\"add\":\"Save for later\",\"remove\":\"Remove from Saved\"},\"share\":\"Share\",\"social_media_share\":{\"email\":\"Email\",\"pinterest\":\"Pinterest\",\"twitter\":\"Twitter\"},\"social_media_share_modal\":{\"linked_copied\":\"Link copied\"},\"unavailable\":\"Currently unavailable\",\"view_titles_in_series\":\"View titles in series\"},\"content_types\":{\"article\":\"Article\",\"audiobook\":\"Audiobook\",\"audiobook_series\":\"Audiobook series\",\"audiobooks\":\"Audiobooks\",\"books\":\"Books\",\"document\":\"Document\",\"documents\":\"Documents\",\"ebook\":\"Ebook\",\"ebook_series\":\"Ebook series\",\"ebooks\":\"Ebooks\",\"magazine\":\"Magazine\",\"magazines\":\"Magazines\",\"podcast\":\"Podcast\",\"podcast_episode\":\"Podcast episode\",\"podcasts\":\"Podcasts\",\"sheet_music\":\"Sheet music\",\"song\":\"Song\",\"topics\":\"Topics\"},\"doc_page\":{\"account_creation\":{\"get_instant_access_with_free_account\":\"Get instant access to this document and millions more with a free account.\",\"to_continue_reading_please_sign_in\":\"To continue reading, please sign in\"},\"ad_label\":{\"ad_info\":{\"description\":\"We use ads to keep content free and accessible for everyone. You can remove them by \\u003ca href=\'{{signupUrl}}\'\\u003esigning up\\u003c/a\\u003e for a Scribd subscription.\",\"dunning_description\":\"We use ads to keep content free and accessible for everyone. You can remove them by \\u003ca href=\'{{updateUrl}}\'\\u003eupdating your payment\\u003c/a\\u003e.\"}},\"ai_actions\":{\"advanced_document_search\":\"Advanced document search\",\"get_ai_abstract\":\"Get AI Abstract\",\"key_insights\":\"Key Insights\",\"narrate\":\"Narrate\",\"painted_door_modal\":{\"feature_not_ready\":\"This feature is not quite ready\",\"we_are_working_hard\":\"We\'re working hard to introduce advanced reading, summarization, and document analysis tools to improve your experience. We hope to share them with you soon.\"},\"rewrite_for_audience\":\"Rewrite for audience\",\"summarize\":\"Summarize\",\"summarize_document\":\"Summarize document\",\"try_advanced_search\":\"Try advanced search\",\"use_advanced_search\":\"Use advanced search\"},\"ai_enhanced_tag\":{\"ai_enhanced\":\"AI-enhanced\",\"ai_enhanced_document\":\"AI-enhanced document\",\"ai_translated_document\":\"AI-translated document\",\"description\":\"AI-enhanced description\",\"description_tooltip\":\"Leveraging AI technology, we\'ve optimized the description for improved clarity.\",\"title\":\"AI-enhanced title\",\"title_and_description\":\"AI-enhanced title and description\",\"title_and_description_tooltip\":\"Leveraging AI technology, we\'ve optimized the title and description for improved clarity.\",\"title_tooltip\":\"Leveraging AI technology, we\'ve optimized the title for improved clarity.\"},\"annotation_popover\":{\"add_note\":\"Add note\",\"highlight\":\"Highlight\",\"share_quote\":\"Share quote\"},\"app_promo_interstitial\":{\"continue_for_free\":\"Continue for free\"},\"blur_promo\":{\"become_member_for_full_access\":\"Become a Scribd member for full access.\",\"read_and_download_full_documents\":\"Read and download full documents.\",\"skip_ad\":\"Skip ad\",\"subscribe_now\":\"Subscribe Now\",\"subscribe_with_a_free_trial\":\"Subscribe with a free trial\",\"trial_duration\":{\"start_your_trial\":\"Start your {{trialDuration}} day free trial\"},\"unlock_next_pages_after_an_ad\":\"Unlock the next {{count}} page after an ad\",\"unlock_next_pages_after_an_ad_plural\":\"Unlock the next {{count}} pages after an ad\",\"unlock_this_document\":\"Unlock this document\",\"unlock_this_document_after_an_ad\":\"Unlock this document after an ad\",\"unlock_this_page_after_an_ad\":\"Unlock this page after an ad\",\"upload_a_doc_to_download_or_sub\":\"Upload a document to download this document or subscribe to read and download.\",\"upload_to_download\":\"Upload to download\"},\"description_modal\":{\"description\":\"Description\"},\"doc_chat_additional_feedback\":{\"heading\":\"Provide additional feedback\",\"placeholder\":\"What are your thoughts on the response? How could it be improved?\"},\"doc_chat_down_vote_feedback\":{\"not_factually_correct\":\"Not factually correct\",\"offensive_unsafe\":\"Offensive/Unsafe\",\"other\":\"Other\",\"submit\":\"Submit Feedback\"},\"doc_chat_feedback\":{\"down_vote_question_heading\":\"Why did you choose this rating?\",\"thank_you_response\":\"Your feedback is valuable and helps us improve our AI responses.\",\"thank_you_response_heading\":\"Thanks so much for your feedback\"},\"doc_chat_settings\":{\"clear_history\":\"Clear History\",\"faq\":\"FAQ\"},\"doc_chat_usage\":{\"exceed_warning\":\"You’ve reached your monthly limit of {{count}} prompts. Thank you for being so actively engaged with DocTalk beta. Your prompt limit will reset next month!\",\"limit_reminder\":\"Wow, you’ve reached {{count}} prompts! As part of our DocTalk beta program, you have {{left}} prompts left. Your feedback is appreciated as we refine this feature.\"},\"doc_reader_toolbar\":{\"downloaded_number_times\":\"Downloaded {{number}} times\"},\"document_outline\":{\"document_outline\":\"Document outline\",\"document_thumbnails\":\"Document thumbnails\",\"outline\":\"Outline\",\"page_view\":\"Page view\"},\"download_as_formats_or_read_online\":\"Download as {{formats}} or read online on Scribd\",\"download_modal\":{\"explore_top_category_documents_next\":\"Explore top {{category}} documents next\",\"no_category_explore_these_top\":\"Explore these top related documents next\"},\"download_to_read_ad_free\":\"Download to read ad-free\",\"embed_modal\":{\"title\":\"Embed document\"},\"fallback_ad\":{\"millions_of_documents_ad_free\":\"Millions of documents at your fingertips, ad-free\"},\"fixed_viewport_bottom_components\":{\"check_out_these_free_titles\":\"Check out these free titles\"},\"flash\":{\"rating_not_saved_try_again\":\"Rating not saved, please try again\"},\"get_scribd_without_ads\":\"Get Scribd without ads.\",\"incentivized_upload\":{\"to_access_this_document_trial_duration\":\"To access this document, upload one of yours, or subscribe with a {{trialDuration}} day free trial. Cancel anytime.\",\"to_access_this_document_trial_duration_plural\":\"To access this document, upload {{count}} of yours, or subscribe with a {{trialDuration}} day free trial. Cancel anytime.\"},\"key_topics\":{\"ai_summary\":\"AI summary\",\"copy\":{\"excerpt\":\"Excerpt\",\"excerpts_about\":\"Excerpts about\"},\"copy_all_excerpts\":\"Copy all excerpts\",\"copy_excerpt\":\"Copy excerpt\",\"copy_toast_success\":\"Excerpt copied to clipboard.\",\"copy_toast_success_plural\":\"Excerpts copied to clipboard.\",\"explain\":\"Explain\",\"explain_more\":\"Explain more\",\"keyword_match_results\":\"Keyword match\",\"num_excerpts\":\"1 excerpt\",\"num_excerpts_plural\":\"{{count}} excerpts\",\"num_key_excerpts\":\"1 key excerpt\",\"num_key_excerpts_plural\":\"{{count}} key excerpts\",\"topics_results\":\"Topics\"},\"metadata\":{\"description\":{\"copyright_awareness\":\"We take content rights seriously. If you suspect this is your content, \\u003ca href={{href}}\\u003eclaim it here\\u003c/a\\u003e.\",\"original_description\":\"Original Description\"},\"license\":\"License\",\"overview\":\"Overview\"},\"mobile_metadata\":{\"collapse_full_title\":\"Hide full title\",\"expand_full_title\":\"Show full title\"},\"modals\":{\"mobile_share\":{\"share_document\":\"Share document\"},\"more_options\":{\"is_this_document_useful\":\"Is this document useful?\"}},\"more_options\":\"More options\",\"mouse_menu\":{\"copy_page_text\":\"Copy page text\",\"copy_text\":\"Copy text\",\"copy_text_unavailable\":\"Copy text unavailable\",\"copy_text_unavailable_on_this_page\":\"Copy text unavailable on this page\"},\"note\":\"Note\",\"page\":{\"preferred_language_set_to_url_params_language_settings_changed\":\"Preferred language set to {{url_params_language_settings_changed}}\"},\"page_view\":{\"no_thumbnails_available\":\"No thumbnails available\"},\"ratings\":{\"mark_as_not_useful\":\"Mark this document as not useful\",\"mark_as_useful\":\"Mark this document as useful\",\"no_ratings\":\"0 ratings\",\"no_ratings_yet\":\"No ratings yet\",\"num_votes\":\"({{count, locale}} vote)\",\"num_votes_plural\":\"({{count, locale}} votes)\",\"page_count\":\"{{count, locale}} page\",\"page_count_plural\":\"{{count, locale}} pages\",\"percent_found_document_not_useful\":\"{{percentage}}% found this document not useful\",\"percent_found_document_useful\":\"{{percentage}}% found this document useful\",\"press_again_undo\":\"Press again to undo.\",\"sign_up_to_rate_this_title\":\"Sign up to rate this title\",\"you_marked_as_useful\":\"You marked this document as useful\"},\"read_this_document_in_other_languages\":\"Read this document in other languages\",\"recommender_list\":{\"might_also_like\":\"You might also like\",\"show_more\":\"Show more\"},\"related_documents\":\"Related documents\",\"report_content_modal\":{\"button_name\":\"Report\",\"category_error_flash\":\"Select a category to submit your report\",\"copyright_awareness\":\"If you are the copyright owner of this document or someone authorized to act on a copyright owner’s behalf, please use the \\u003ca href={{reportLink}}\\u003eDMCA form\\u003c/a\\u003e to report infringement.\",\"copyright_infringement\":\"Copyright infringement\",\"cta\":{\"cancel\":\"Cancel\",\"submit\":\"Submit\"},\"document_has_been_reported\":\"Document has been reported.\",\"problem_submitting_report\":\"We encountered a problem submitting your report. Please try again.\",\"report_an_issue\":\"Report an issue\",\"select_an_option\":\"Select an option...\",\"sub_type\":{\"academic_dishonesty\":\"Academic Dishonesty\",\"child_privacy\":\"Child Privacy\",\"child_sexual_abuse\":\"Child Sexual Abuse\",\"dangerous_products_services\":\"Dangerous Products/Services\",\"general_privacy\":\"General Privacy\",\"inciting_violence_or_hatred\":\"Inciting Violence or Hatred\",\"ip_infringement_copyright\":\"IP Infringement (copyright)\",\"ip_infringement_non_copyright\":\"IP Infringement (non-copyright)\",\"minor_exploitation\":\"Minor Exploitation\",\"non_violent_offenses\":\"Non-violent Offenses\",\"other\":\"Other\",\"self_harm\":\"Self-harm\",\"sexual_offenses\":\"Sexual Offenses\",\"sexually_explicit\":\"Sexually Explicit\",\"shocking_or_disturbing\":\"Shocking or Disturbing\",\"spreading_false_information\":\"Spreading False Information\",\"terrorism\":\"Terrorism\",\"threatening_behavior\":\"Threatening Behavior\",\"violent_offenses\":\"Violent Offenses\"},\"subcategory_error_flash\":\"Select a sub-category to submit your report\",\"title\":\"Report Content\",\"type\":{\"dangerous_and_derogatory\":\"Dangerous \\u0026 Derogatory\",\"dangerous_and_derogatory_tooltip\":\"Content that encourages harmful, threatening, or hateful behavior.\",\"deceptive_and_fraudulent\":\"Deceptive \\u0026 Fraudulent\",\"deceptive_and_fraudulent_tooltip\":\"Content that intentionally misleads, deceives, or engages in fraudulent activities.\",\"explicit\":\"Explicit\",\"explicit_tooltip\":\"Content that is graphic, offensive, or disturbing.\",\"illegal\":\"Illegal\",\"illegal_tooltip\":\"Content that breaks the law or promotes illegal activities.\",\"intellectual_property\":\"Intellectual Property\",\"intellectual_property_tooltip\":\"Content that uses someone else\'s protected work without permission.\",\"low_quality\":\"Low quality\",\"low_quality_tooltip\":\"Content that fails to meet minimum standards for clarity, relevance, or completeness.\",\"privacy\":\"Privacy\",\"privacy_tooltip\":\"Content that misuses personal information.\",\"spam\":\"Spam\",\"spam_tooltip\":\"Unsolicited and repetitive content that disrupts your experience.\"}},\"share\":{\"copy_link\":\"Copy link\",\"link_copied\":\"Link copied!\",\"share_on_facebook\":\"Share on Facebook\",\"share_on_linkedin\":\"Share on LinkedIn\",\"share_via_email\":\"Share via email\",\"unable_to_copy_link\":\"Unable to copy link\"},\"share_drawer\":{\"copy_link\":\"Copy Link\"},\"share_quote\":{\"page_number\":\"Page {{page}}\"},\"sharing_buttons\":{\"link_copied_private_document\":\"Link Copied! \\u003cspan class=\\\"link_copied_private_doc\\\"\\u003eNote: Sharing a public link to a document marked private will allow others to view it.\\u003c/span\\u003e\",\"not_supported_for_private_documents\":\"This feature is not supported for private documents. If you want to share, select Copy Link, and send the link to others.\"},\"this_document_available_in_languages\":\"This document is available in the following languages:\",\"toast\":{\"copying_text_disabled\":\"Copying text from this document is disabled.\",\"copying_text_success\":\"Text copied to clipboard.\"},\"toolbar\":{\"document_search\":{\"find\":\"Find\",\"find_in_document\":\"Find in document\"},\"download\":\"Download\",\"download_now\":\"Download now\",\"find_in_pdf\":\"Find in PDF\",\"visually_hidden_share\":\"Share\"},\"translate\":\"Translate\",\"translate_document\":\"Translate Document\",\"view_original_document_in_language\":\"View original document in {{language}}\"},\"everand\":{\"bestsellers\":{\"promo\":{\"enjoy_bestselling_audiobook_titles_when_subscribed\":\"Enjoy bestselling audiobooks when you subscribe\",\"enjoy_bestselling_titles_when_subscribed\":\"Enjoy bestselling ebooks when you subscribe\"}},\"browse_page\":{\"promo\":{\"books_audiobooks_cancel_anytime\":\"Discover millions of ebooks, audiobooks, and so much more, from {{price}}/month. Cancel anytime.\",\"instant_access_and_cancel_anytime\":\"Discover millions of ebooks, audiobooks, and so much more for just {{price}}/month. Cancel anytime.\"}},\"lists\":{\"faq_message_html\":\"We\'ve made important changes to the list experience. To learn more, \\u003ca href={{faqUrl}} target=\\\"_blank\\\"\\u003evisit the FAQs\\u003c/a\\u003e.\"},\"megamenu\":{\"what_is_scribd_btn\":{\"what_is_scribd\":\"What is Everand?\"}},\"modal\":{\"opt_in\":{\"continue_to_everand\":\"Continue to Everand\",\"upcoming_releases_curated_lists_to_your_inbox\":\"Find out about upcoming releases and exclusive originals, plus get curated lists and special offers sent directly to your inbox.\"},\"progressive_profile\":{\"send_me_email_updates\":\"Send me email updates from Everand\",\"welcome_to_everand\":\"Welcome to Everand!\"},\"upsell\":{\"get_the_most_out_of_everand\":\"Get the most out of Everand\",\"unlock_full_access_discover_millions\":\"Unlock full access to the world\'s most fascinating digital library. Discover millions of ebooks, audiobooks, magazines, and more.\"}},\"shared\":{\"cross_link_message\":\"From Everand\",\"footer\":{\"about_scribd\":\"About Everand\",\"everand_-_download_on_the_app_store\":\"Everand - Download on the App Store\",\"everand_-_get_it_on_google_play\":\"Everand - Get it on Google Play\",\"everand_-_get_it_on_kindle_fire\":\"Everand for Kindle Fire\",\"scan_to_download\":\"Scan to download\"},\"social_buttons\":{\"scribd_on_facebook_aria_label\":\"Everand on Facebook\",\"scribd_on_instagram_aria_label\":\"Everand on Instagram\",\"scribd_on_pinterest_aria_label\":\"Everand on Pinterest\",\"scribd_on_twitter_aria_label\":\"Everand on Twitter\"}}},\"everand_pay_now_modal\":{\"0_unlocks_remain\":\"0 unlocks remaining in your trial\",\"downgrade_cta\":\"Downgrade to Standard\",\"downgrade_plus\":\"Downgrade to Plus\",\"get_unlocks_today\":\"Get {{count}} unlock today, renews monthly\",\"get_unlocks_today_plural\":\"Get {{count}} unlocks today, renews monthly\",\"plus_trial_desc\":\"Subscribe today to get more unlocks and continue enjoying our bestselling ebooks and audiobooks.\",\"standard_trial_desc\":\"Get 3 unlocks per month with the Plus plan, or continue with 1 unlock per month on the Standard plan.\",\"subheading\":{\"deluxe_version\":\"Subscribe to the Deluxe plan for immediate access to 5 unlocks.\",\"plus_version\":\"Get 5 unlocks per month with the Deluxe plan, or continue with 3 unlocks per month on the Plus plan.\",\"switch_deluxe_plus\":\"Switch to Plus or Deluxe to get more unlocks, or continue with 1 unlock per month on the Standard plan.\"},\"subscribe_deluxe\":\"Subscribe to Deluxe\",\"subscription_disclaimer_plus_tax_html\":\"Your {{plan}} plan of {{count}} unlock per month automatically renews for {{price}}/month (plus tax), billed by {{local_entity}}, until you cancel. Cancel anytime in your \\u003ca class=\'account\' href=\'{{account_url}}\' target=\'_blank\'\\u003eAccount Settings\\u003c/a\\u003e. See Scribd’s \\u003ca class=\'terms\' href=\'{{terms_url}}\' target=\'_blank\'\\u003eterms of use\\u003c/a\\u003e and \\u003ca class=\'privacy\' href=\'{{privacy_url}}\' target=\'_blank\'\\u003eprivacy policy\\u003c/a\\u003e for more information.\",\"subscription_disclaimer_plus_tax_html_plural\":\"Your {{plan}} plan of {{count}} unlocks per month automatically renews for {{price}}/month (plus tax), billed by {{local_entity}}, until you cancel. Cancel anytime in your \\u003ca class=\'account\' href=\'{{account_url}}\' target=\'_blank\'\\u003eAccount Settings\\u003c/a\\u003e. See Scribd’s \\u003ca class=\'terms\' href=\'{{terms_url}}\' target=\'_blank\'\\u003eterms of use\\u003c/a\\u003e and \\u003ca class=\'privacy\' href=\'{{privacy_url}}\' target=\'_blank\'\\u003eprivacy policy\\u003c/a\\u003e for more information.\",\"title\":\"Start subscription to unlock title\",\"unlocks_and_price\":\"{{count}} unlock • {{price}}\",\"unlocks_and_price_plural\":\"{{count}} unlocks • {{price}}\",\"upgrade_deluxe\":\"Upgrade to Deluxe\",\"upgrade_to_get_unlocks\":\"Upgrade to get {{unlocks}} unlocks today, renews monthly\"},\"everand_unlock_modal\":{\"get_the_best_experience\":\"Get the best Everand experience in the app. Scan the code to download.\"},\"explore\":{\"download_app_banner\":{\"everand_is_best_in_the_app\":\"Everand is best in the app\"}},\"get_app_modal\":{\"link_sent_email\":\"Link sent! Please check your email.\"},\"helpers\":{\"document_meta_tags\":{\"scribd_is_the_world_s_largest_social\":\"Scribd is the world\'s largest social reading and publishing site.\"}},\"home\":{\"logged_in\":{\"content_quickview\":{\"also_available_as_an_audiobook\":\"Also available as an audiobook\",\"also_available_as_an_ebook\":\"Also available as an ebook\",\"byline\":{\"narrated_by\":\"narrated by\"},\"close\":\"Close\",\"count_titles\":\"{{count}} title\",\"count_titles_plural\":\"{{count}} titles\",\"go_to_content_type_version\":\"Go to {{content_type}} version\",\"loading\":\"Loading...\",\"more_about_this_episode\":\"More about this episode\",\"more_about_this_issue\":\"More about this issue\",\"more_about_this_series\":\"More about this series\",\"more_about_this_summary\":\"More about this summary\",\"oops_something_went_wrong\":\"Oops, something went wrong\",\"view_all_articles\":\"View all articles\",\"view_all_episodes\":\"View all episodes\",\"view_the_full_title_details\":\"View the full title details\"}}},\"landing_pages\":{\"feed\":{\"view_more_info\":\"View more info\"}},\"megamenu\":{\"documents\":{\"all_documents\":\"All Documents\"},\"hambur_menu\":{\"get_our_free_apps\":\"Get our free apps\"},\"hamburger_menu\":{\"close_menu\":\"Close menu\",\"sign_in_to_your_everand_account\":\"Sign in to your Everand account\",\"sign_in_to_your_scribd_account\":\"Sign in to your Scribd account\",\"welcome\":\"Welcome!\"},\"language\":{\"cancel\":\"Cancel\",\"change_language\":\"Change Language\"},\"language_links\":{\"learn_more\":\"Learn more\"},\"language_picker_dropdown\":{\"language\":\"Language\",\"preferred_language\":\"Preferred Language\"},\"logged_out\":{\"user_menu\":{\"welcome_to_everand\":\"Welcome to Everand!\",\"welcome_to_scribd\":\"Welcome to Scribd!\"}},\"navigation\":{\"categories\":\"Categories\",\"explore_content_type\":\"Explore {{content_type}}\",\"opens_navigation_menu\":\"Open navigation menu\"},\"search_bar\":{\"clear_search\":\"Clear search\",\"close_suggestions\":\"Close suggestions\",\"no_results_found\":\"No search results.\",\"num_results_are_available\":\"{{num_results}} result(s) are available, use up and down arrow keys to navigate.\",\"recent_searches\":\"Recent searches\",\"search\":\"Search\"},\"top_bar\":{\"upload\":\"Upload\"},\"upload\":{\"upload_header\":\"Upload\"},\"user_menu\":{\"document_stats\":\"Document stats\",\"document_uploads\":\"Document uploads\",\"faq_and_support\":\"FAQ and support\",\"hi_name\":\"Hi {{name}}!\",\"invite_friends\":\"Invite friends\",\"language\":\"Language ({{current_language}})\",\"public_profile\":\"Public profile\",\"read_for_free\":\"Read for free\",\"visually_hidden_user_settings\":\"User Settings\",\"your_account\":\"Your account\"},\"what_is_scribd_btn\":{\"what_is_scribd\":\"What is Scribd?\"}},\"modals\":{\"add_to_list\":{\"save\":\"Save to list\",\"title\":\"Add to list\"},\"confirm_delete_review\":{\"title\":\"Delete your review and rating?\"},\"confirm_unsave_item\":{\"content\":\"Are you sure you want to remove this title from Saved Library and any saved lists?\",\"header\":\"Remove title\",\"title\":\"Remove title from Saved Library and any saved lists?\"},\"confirm_unsave_item_in_list\":{\"remove_from_your_lists\":\"Remove from your lists?\",\"removing_from_saved\":\"Removing from Saved will also delete the title from your lists.\",\"removing_this_title_from_saved\":\"Removing this title from Saved will also remove it from your lists.\",\"title\":\"This title is also in a list.\"},\"create_list\":{\"create_list\":\"Create list\",\"failed_to_create_try_again\":\"Failed to create list, please try again\",\"input_description\":{\"privacy_type\":\"No one except you can view this list. Sharing will be disabled.\"},\"input_label\":{\"name\":\"What would you like to name this list?\",\"privacy_type\":\"Make list private\"},\"title\":\"New List\",\"validation_errors\":{\"name\":\"Please enter a list name\"}},\"language_picker\":{\"language_options\":\"Language Options\",\"select_preferred_language\":\"Select your preferred language\",\"translate_and_tailor\":\"We’ll translate site navigation and tailor your personal recommendations where possible to match your preferred language selection.\",\"translate_to_match\":\"We’ll translate site navigation to match your preferred language selection.\"},\"lockshockroadblock\":{\"problem_with_your_last_payment\":\"Problem with your last payment\",\"update_your_payment_to_continue\":\"Update your payment to continue\",\"we_had_an_issue_with_your_last_payment\":\"We had an issue with your last payment. Update your payment info to continue.\",\"your_membership_is_on_hold\":\"Your membership is on hold because of a problem with your last payment.\"}},\"onboarding_modal\":{\"cta\":{\"get_started\":\"Get started\",\"next\":\"Next\",\"see_whats\":\"See what’s new\",\"start_reading\":\"Start reading!\"},\"subtitle\":{\"all_unlocks_renew\":\"Each unlock gives you access to a title from our premium catalog. Unlocks renew monthly. Unused unlocks do not roll over. \",\"lets_go\":\"Let’s go over a few things that have changed.\",\"look_for_titles\":\"Out of unlocks? No problem! Just look for the “unlimited” label to keep on reading.\",\"not_sure_if\":\"Not sure if you’re ready to unlock a premium ebook or audiobook? Save it for later or preview it for a closer look.\",\"scan_the_code_to_download\":\"Your favorite stories go wherever you do, even offline. Scan the code to get the app.\",\"weve_already_unlocked\":\"Enjoy the books you’ve already read — no unlocks needed.\",\"your_favorite_stories\":\"Your favorite stories go wherever you do, even offline.\",\"your_world_of\":\"Your world of stories starts here.\"},\"title\":{\"anytime_anywhere\":\"Anytime, anywhere\",\"no_need_to\":\"No need to use unlocks on titles you’ve already read\",\"out_of_unlocks\":\"Always more to enjoy\",\"preview_any\":\"Preview any title first\",\"use_your_unlocks\":\"Unlock premium titles\",\"welcome_everand\":\"Welcome to Everand!\",\"your_library\":\"Your library just got bigger\"}},\"page_gate_modal\":{\"check_you_email\":{\"check_your_email\":\"Check your email\"},\"check_your_email\":{\"change_email\":\"Not the correct email?\",\"didnt_receive\":\"Didn\'t receive an email? Check your spam folder, or\",\"email_not_verified_verify_to_continue\":\"Email not verified. Please verify your email to continue.\",\"i_have_verified_my_email\":\"I\'ve verified my email\",\"logout_login_url\":\"Use a different email address\",\"send_again\":\"send again.\",\"to_protect_your_account_html\":\"To protect your account, we\'ve sent a verification email to \\u003cstrong\\u003e{{email}}\\u003c/strong\\u003e. Please click the link in that email to verify your identity. To learn more, please visit our \\u003ca href=\\\"{{support_url}}\\\" class=\\\"faq_link\\\" target=\\\"_blank\\\"\\u003eFAQs\\u003c/a\\u003e.\",\"verify_email_before_continuing\":\"Please verify your email before continuing.\"}},\"pdfs\":{\"doc_search\":{\"page\":\"page\"},\"lightboxes\":{\"download_lightbox\":{\"download_document\":\"Download document\",\"resume_membership\":\"Resume Membership\",\"resuming\":\"Resuming\"},\"embed_lightbox\":{\"autosize\":\"Autosize\",\"beginning_of_document\":\"Beginning of document\",\"copy_link\":\"Copy Link\",\"current_page\":\"Current page\",\"custom\":\"Custom\",\"customization_options_available_below\":\"Customization options available below\",\"embed_this_in_your_website\":\"Embed this in your website\",\"format\":\"Format\",\"fullscreen\":\"Fullscreen\",\"generate_a_link\":\"Generate a Link\",\"height\":\"Height: \",\"html\":\"HTML\",\"link_options\":\"Link Options\",\"link_to_the\":\"Link to the\",\"options\":\"Options\",\"preview\":\"Preview\",\"scroll\":\"Scroll\",\"size\":\"Size\",\"slideshow\":\"Slideshow\",\"start_at_page\":\"Start at page:\",\"style\":\"Style:\",\"sup_sup_the_code_will_be_updated\":\"\\u003csup\\u003e*\\u003c/sup\\u003e The code will be updated based on your changes.\",\"width\":\"Width: \",\"wordpress\":\"Wordpress\"},\"print_lightbox\":{\"cancel\":\"Cancel\",\"download_and_print\":\"Download and print\",\"in_order_to_print_this_document_\":\"In order to print this document from Scribd, you\'ll first need to download it.\",\"print_document\":\"Print document\"}},\"redesign_elements\":{\"actions\":{\"embed\":\"Embed\",\"print\":\"Print\",\"share\":\"Share\"},\"metadata_section\":{\"full_description\":\"Full description\",\"related_titles\":\"Related titles\"}},\"show\":{\"sign_in_to_flag_this_title\":\"Sign in to flag this title\",\"you_re_reading_a_preview\":\"You\'re Reading a Preview\"},\"sidebar\":{\"available_formats\":\"Available Formats\",\"copyright_no_colon\":\"Copyright\",\"isbn_no_colon\":\"ISBN\",\"uploaded_by\":\"Uploaded by\",\"written_by\":\"Written by\"},\"toolbar\":{\"exit_fullscreen\":\"Exit fullscreen\",\"fullscreen\":\"Fullscreen\",\"showing_strong_1_strong_result_for_query\":\"Showing \\u003cstrong\\u003e1\\u003c/strong\\u003e result for\",\"showing_strong_num_results_strong_results_for_query\":\"Showing \\u003cstrong\\u003e{{num_results}}\\u003c/strong\\u003e results for\",\"you_are_on_page_props_current_page\":\"You are on page {{props_current_page}}\",\"zoom_in\":\"Zoom in\",\"zoom_out\":\"Zoom out\"},\"upvote\":{\"not_useful\":\"Not useful\",\"this_document_is\":\"This document is...\",\"useful\":\"Useful\"}},\"plan_selection_page\":{\"plan_card\":{\"a_selection\":\"200,000+ ebooks and audiobooks, including a selection of our most popular titles\",\"billed_monthly\":\"Billed monthly after trial.\",\"docs_presentations\":\"195M+ documents and presentations on Scribd and SlideShare ad-free\",\"magazines_etc\":\"Magazines, podcasts and sheet music\",\"plus\":\"Plus:\",\"subscribe_plus\":\"Subscribe to Plus\",\"subscribe_standard\":\"Subscribe to Standard\",\"titles_per_month\":\"{{titles}} titles per month from our Plus catalog that includes even more bestsellers and new releases\",\"unlimited\":\"Unlimited access to:\"}},\"plans\":{\"unlock_dropdown\":{\"unlocks\":\"{{count}} unlock\",\"unlocks_plural\":\"{{count}} unlocks\",\"unlocks_renew\":\"Unlocks renew {{refresh_date}}\",\"unlocks_renew_after_payment_information\":\"Unlocks renew after payment information is updated.\",\"view_unlock_history\":\"View unlock history\"},\"unlock_modal\":{\"after_unlocking_this_title\":\"After unlocking this title, you\'ll have {{count}} unlock left until {{refresh_date}}.\",\"after_unlocking_this_title_plural\":\"After unlocking this title, you\'ll have {{count}} unlocks left until {{refresh_date}}.\",\"unlock_this_title\":\"Unlock this title\",\"you_have_unlocks_available\":\"You have {{count}} unlock available.\",\"you_have_unlocks_available_plural\":\"You have {{count}} unlocks available.\"}},\"privacy_policy_modal\":{\"accept\":\"Accept and continue\",\"details_below\":\"You can read the details below. By accepting, you agree to the updated privacy policy.\",\"thank_you\":\"Thank you!\",\"title\":\"We\'ve updated our privacy policy.\",\"try_again\":\"We’ve encountered a problem, please try again.\",\"updated_privacy_policy\":\"We’ve updated our privacy policy so that we are compliant with changing global privacy regulations and to provide you with insight into the limited ways in which we use your data. \",\"view_policy\":\"View updated privacy policy\"},\"promos\":{\"annual_offer\":{\"current_plan\":\"Current plan\",\"immerse\":\"Immerse yourself all year round\",\"read_more_html\":\"Read more.\\u003cspan class=\'save_text\'\\u003eSave more.\\u003c/span\\u003e\",\"save_percent\":\"Save {{value}}%\",\"switch_plan\":\"Switch plan\",\"terms_footer_html\":\"You will be charged the annual fee of {{price}} on {{date}} when you click \\\"Switch plan.\\\" View our \\u003ca class=\'terms_link\' target=\\\"_blank\\\" href={{href}}\\u003eterms of service\\u003c/a\\u003e.\"}},\"receipt\":{\"download\":{\"download_iframe\":\"Download iframe\",\"downloading\":\"Downloading\"}},\"recs\":{\"overflow_menu\":{\"congrats_marked_as_read\":\"Congrats! This title is marked as finished.\",\"dont_show_again\":\"Don\'t show again\",\"mark_as_finished\":\"Mark as finished\",\"mark_as_unfinished\":\"Mark as unfinished\",\"removed_from_your_suggestions\":\"Removed from your suggestions.\",\"suggest_more_like_this\":\"Suggest more like this\",\"title_marked_as_unfinished\":\"This title is marked as unfinished.\",\"undo_suggest_more\":\"Undo suggest more like this\",\"we_wont_suggest_more_like_this\":\"Got it! We won’t suggest more like this.\",\"we_wont_suggest_this_again\":\"Got it! We won\'t suggest this again.\",\"well_suggest_more_like_this\":\"Awesome! We\'ll suggest more like this.\"}},\"saved\":{\"list_item_controls\":{\"create_list\":\"Create List\"}},\"scribd\":{\"doc_page\":{\"download_as_multiple_formats\":\"Download as {{formats}}, or {{lastFormat}}\",\"download_as_single_format\":\"Download as {{format}}\",\"download_as_two_formats\":\"Download as {{formatOne}} or {{formatTwo}}\"},\"logged_out_homepage\":{\"welcome_to_scribd\":{\"welcome_to_scribd\":\"Welcome to Scribd\"}},\"modal\":{\"opt_in\":{\"continue_to_scribd\":\"Continue to Scribd\",\"special_offers_new_content_to_your_inbox\":\"Find out about special offers, new content, plus recommendations from our premium products sent directly to your inbox.\"},\"progressive_profile\":{\"explore_documents\":\"Explore [{{documentsCount}}M+] documents across every topic and niche, shared by a global community of thinkers.\",\"get_ad_free_access\":\"Get ad-free access and download any document you want across every topic and niche with a 30-day free trial.\",\"join_our_mailing_list\":\"Join our mailing list to receive personalized recommendations and new product updates\",\"send_me_email_updates\":\"Send me email updates from Scribd\",\"welcome_to_scribd\":\"Welcome to Scribd!\"},\"upsell\":{\"get_the_most_out_of_scribd\":\"Get the most out of Scribd\",\"unlock_full_access_download_documents\":\"Unlock full access to the world’s most fascinating digital library. Download documents and read offline on the app.\"}},\"navigation_category\":{\"academic\":\"Academic\",\"culture\":\"Culture\",\"hobbies_and_crafts\":\"Hobbies \\u0026 Crafts\",\"personal_growth\":\"Personal Growth\",\"professional\":\"Professional\"},\"shared\":{\"cross_link_message\":\"From Scribd\"}},\"search\":{\"filters\":{\"filters\":\"Filters\"},\"list_view\":{\"on_date\":\"on {{date}}\",\"songbook_title\":\"From songbook\"},\"pagination\":{\"next\":\"next\",\"previous\":\"previous\"},\"results\":{\"reading_list\":\"Reading List\",\"top_result\":\"Top Result\"}},\"shared\":{\"account_creation\":{\"add_note_sign_in\":\"To add a note, please sign in\",\"add_note_sign_up\":\"To add a note, please sign up\",\"already_have_an_account\":\"Already have an account?\",\"annotate_document_sign_in\":\"To annotate this document, please sign in\",\"annotate_document_sign_up\":\"To annotate this document, please sign up\",\"annotate_sign_in\":\"To annotate, please sign in\",\"back_to_sign_in\":\"Back to sign in\",\"continue_reading_sign_in\":\"To continue reading, please sign in\",\"continue_reading_sign_up\":\"To continue reading, please sign up\",\"create_bookmark_sign_in\":\"To create a bookmark, please sign in\",\"create_bookmark_sign_up\":\"To create a bookmark, please sign up\",\"creating_your_account\":\"Creating your account...\",\"disclaimer\":\"By signing up with Scribd, you agree to our \\u003ca href=\\\"{{terms_href}}\\\" target=\\\"_blank\\\" tabIndex=\\\"0\\\"\\u003eTerms of Service {{opens_in_new_window}}\\u003c/a\\u003e and \\u003ca href=\\\"{{privacy_href}}\\\" target=\\\"_blank\\\" tabIndex=\\\"0\\\"\\u003ePrivacy Policy {{opens_in_new_window}}\\u003c/a\\u003e\",\"download_document_sign_in\":\"To download this document, please sign in\",\"download_document_sign_up\":\"To download this document, please sign up\",\"errors\":{\"email_invalid\":\"This email address is invalid or blocked. Please enter another email.\",\"email_registered\":\"This email address is already registered with Scribd. Please enter your password to sign in.\",\"email_taken\":\"That email is taken by another user, please try again.\",\"invalid_character_in_name_please_remove\":\"Invalid character in name. Please remove any special characters\",\"no_valid_email_modal_desc\":\"Your email address is missing or invalid. To keep your account secure, please provide a valid email address.\",\"no_valid_email_modal_title\":\"Update your email\",\"password_10_chars\":\"Please enter a password that is at least 10 characters\",\"please_enter_a_name\":\"Please enter a name\",\"please_enter_a_valid_email\":\"Please enter a valid email\",\"that_doesn_t_appear_to_be_a\":\"That doesn\'t appear to be a valid email address. Please try again.\"},\"facebook\":{\"error\":\"Sorry, we are unable to log you in via Facebook at this time.\",\"sign_in\":\"Continue with Facebook\",\"sign_up\":\"Sign up with Facebook\"},\"fail\":\"Fail.\",\"flag_document_sign_in\":\"To flag this document, please sign in\",\"flag_document_sign_up\":\"To flag this document, please sign up\",\"forgot\":{\"enter_email\":\"Enter your email address and we\'ll send you an email with a link to reset your password.\",\"weve_sent_email_html\":\"We\'ve sent an email to \\u003cstrong\\u003e{{escape_validated_email}}\\u003c/strong\\u003e with instructions to reset your password. If it doesn\'t show up soon, check your spam folder and then read this \\u003ca href=\\\"https://support.scribd.com/hc/articles/210134406-What-do-I-do-if-I-ve-lost-or-forgotten-my-password-\\\"\\u003eHelp Center article\\u003c/a\\u003e.\"},\"forgot_password\":\"Forgot password?\",\"give_gift_sign_in\":\"To give this gift, please sign in\",\"give_gift_sign_up\":\"To give this gift, please sign up\",\"google\":{\"error\":\"Google sign in failed\"},\"highlight_document_sign_in\":\"To highlight this document, please sign in\",\"highlight_document_sign_up\":\"To highlight this document, please sign up\",\"join_today_to_start_reading\":\"Join today to start reading\",\"logging_you_in\":\"Logging you in...\",\"not_you\":\"Not you?\",\"now_bringing_you_back\":\"Now bringing you back...\",\"pass\":\"Pass.\",\"password_must_be_at_least_ten_characters\":\"At least 10 characters\",\"password_not_been_breached\":\"Password has not been breached\",\"password_strength\":\"Password strength\",\"password_strength_colon\":\"Password strength: \",\"password_strength_good\":\"Good\",\"password_strength_moderate\":\"Moderate\",\"password_strength_strong\":\"Strong\",\"password_strength_weak\":\"Weak\",\"people_browsing_scribd_html\":\"\\u003cspan\\u003e{{count, locale}} person\\u003c/span\\u003e browsing Scribd right now\",\"people_browsing_scribd_html_plural\":\"\\u003cspan\\u003e{{count, locale}} people\\u003c/span\\u003e browsing Scribd right now\",\"rate_document_sign_in\":\"To rate this document, please sign in\",\"rate_document_sign_up\":\"To rate this document, please sign up\",\"recaptcha_disclaimer\":\"This site is protected by reCAPTCHA and the Google \\u003ca href=\\\"{{privacy_href}}\\\" target=\\\"_blank\\\"\\u003ePrivacy Policy {{opens_in_new_window}}\\u003c/a\\u003e and \\u003ca href=\\\"{{policy_href}}\\\" target=\\\"_blank\\\"\\u003eTerms of Service {{opens_in_new_window}}\\u003c/a\\u003e apply.\",\"redeem_offer_sign_in\":\"To redeem this offer, please sign in\",\"redeem_offer_sign_up\":\"To redeem this offer, please sign up\",\"remember_me\":\"Remember me\",\"reset_password\":\"Reset password\",\"save_document_sign_in\":\"To save this document, please sign in\",\"save_document_sign_up\":\"To save this document, please sign up\",\"send_me_updates_from_scribd\":\"Send me updates from Scribd\",\"share_quote_sign_in\":\"To share this quote, please sign in\",\"share_quote_sign_up\":\"To share this quote, please sign up\",\"sign_in\":\"Sign in\",\"sign_in_add_note\":\"To add a note, please sign in\",\"sign_in_bookmark\":\"To create a bookmark, please sign in\",\"sign_in_create_list\":\"To create a list, please sign in\",\"sign_in_download\":\"To download, please sign in\",\"sign_in_follow\":\"To follow, please sign in\",\"sign_in_give_gift\":\"To give this gift, please sign in\",\"sign_in_highlight\":\"To highlight, please sign in\",\"sign_in_rate\":\"To rate, please sign in\",\"sign_in_redeem\":\"To redeem, please sign in\",\"sign_in_review\":\"To review, please sign in\",\"sign_in_save\":\"To save, please sign in\",\"sign_in_share_quote\":\"To share this quote, please sign in\",\"sign_in_start_months\":\"To start your free {{count}} month, please sign in\",\"sign_in_start_months_plural\":\"To start your free {{count}} months, please sign in\",\"sign_in_successful\":\"Sign in successful\",\"sign_in_to_scribd\":\"Sign in to Scribd\",\"sign_in_upload\":\"To upload, please sign in\",\"sign_in_with_email\":\"Sign in with email\",\"sign_up\":\"Sign up\",\"sign_up_add_note_this_title\":\"Sign up to add a note to this title.\",\"sign_up_annotate\":\"Sign up to annotate.\",\"sign_up_continue_reading_this_title\":\"Sign up to continue reading this title.\",\"sign_up_create_bookmark_this_title\":\"Sign up to create a bookmark.\",\"sign_up_create_list_this_title\":\"Sign up to create a list.\",\"sign_up_download_this_title\":\"Sign up to download this title.\",\"sign_up_follow_magazine_this_title\":\"Sign up to follow this magazine.\",\"sign_up_free_months_this_title\":\"Sign up to start your free {{count}} month.\",\"sign_up_free_months_this_title_plural\":\"Sign up to start your free {{count}} months.\",\"sign_up_give_gift_this_title\":\"Sign up to give this gift.\",\"sign_up_highlight_this_title\":\"Sign up to highlight.\",\"sign_up_or_sign_in\":\"Sign up or sign in\",\"sign_up_save\":\"To save, please create a Scribd account\",\"sign_up_save_this_title\":\"Sign up to save this title.\",\"sign_up_share_quote_this_title\":\"Sign up to share a quote from this title.\",\"sign_up_successful\":\"Sign up successful\",\"sign_up_to_rate_title\":\"Sign up to rate this title\",\"sign_up_to_review_title\":\"Sign up to review this title\",\"sign_up_with_email\":\"Sign up with email\",\"signup_to_redeem_offer\":\"Sign up to redeem offer\",\"start_free_months_sign_in\":\"To start your free {{count}} month, please sign in\",\"start_free_months_sign_in_plural\":\"To start your free {{count}} months, please sign in\",\"start_free_months_sign_up\":\"To start your free {{count}} month, please sign up\",\"start_free_months_sign_up_plural\":\"To start your free {{count}} months, please sign up\",\"upload_document_sign_in\":\"To upload a document, please sign in\",\"upload_document_sign_up\":\"To upload a document, please sign up\",\"use_another_email_address\":\"Use another email address\"},\"actions\":{\"read_continue\":\"Continue reading\",\"read_preview\":\"Read preview\"},\"ad_blocker_modal\":{\"i_disabled_my_ad_blocker\":\"I disabled my ad-blocker\",\"it_looks_like_youre_using_and_ad_blocker\":\"It looks like you\'re using an ad-blocker.\",\"show_me_how\":\"Show me how\",\"to_listen_to_titels_on_everand_disble_ad_blocker_or_use_mobile_app\":\"To listen to titles on Everand, please disable your ad-blocker or use our mobile app.\",\"to_read_titles_on_everand_disable_ad_blocker_or_use_mobile_app\":\"To read titles on Everand, please disable your ad-blocker or use our mobile app.\"},\"byline\":{\"and\":\"and\",\"by\":\"By\",\"narrated_by\":\"Narrated by\",\"published_by\":\"Published by\",\"written_by\":\"Written by\"},\"carousels\":{\"carousel_next\":\"Carousel Next\",\"carousel_previous\":\"Carousel Previous\",\"skip_carousel\":\"Skip carousel\"},\"checkout\":{\"plan_annual\":\"{{plan}} Annual\",\"plan_monthly\":\"{{plan}} Monthly\"},\"common\":{\"ad\":\"ad\",\"add_a_new_payment_method\":\"Add a new payment method\",\"added_by\":\"Added by\",\"back\":\"Back\",\"back_to_top\":\"Back to top\",\"cancel\":\"Cancel\",\"cancel_anytime\":\"Cancel anytime.\",\"close\":\"Close\",\"close_dialog\":\"Close dialog\",\"current_of_total\":\"{{current}} of {{total}}\",\"current_plan\":\"Current Plan\",\"delete\":\"Delete\",\"description\":\"Description\",\"do_not_ask_me_again\":\"Do not ask me again\",\"download\":\"Download\",\"download_now\":\"Download now\",\"email_address\":\"Email address\",\"error\":\"Error\",\"errors\":{\"could_not_complete_request\":\"We couldn\'t complete your request\",\"failed_to_delete_review\":\"Review was not deleted. Please try again.\",\"failed_to_load\":\"Failed to load, try again\",\"failed_to_remove_title\":\"Failed to remove title\",\"failed_to_save_review\":\"Your review was not saved. Please try again.\",\"failed_to_save_review_vote\":\"Your vote was not saved. Please try again.\",\"failed_to_save_title\":\"Failed to save title\",\"please_try_again_later\":\"Please try again later.\"},\"forms\":{\"at_least_10_characters\":\"(at least 10 characters)\",\"email\":\"Email\",\"error\":\"Error\",\"invalid\":\"Invalid\",\"invalid_email\":\"Please enter a valid email\",\"name\":\"Name\",\"optional\":\"(optional)\",\"password\":\"Password\",\"please_enter_a_password\":\"Please enter a password\",\"please_enter_an_email\":\"Please enter an email\",\"required\":\"(required)\"},\"hide\":\"Hide\",\"info\":\"Information\",\"issue\":\"Issue\",\"key_insights\":\"Key insights from\",\"learn_more\":\"Learn more\",\"length\":\"Length\",\"library\":{\"add_to_list\":{\"success_message\":\"Added to {{collection_name}}\"},\"add_with_title\":\"Save {{title}} for later\",\"remove_with_title\":\"Remove {{title}} from saved\",\"sign_up_to_save\":\"Sign up to save this title\"},\"listen_free_for_30_days\":\"Listen free for {{trialDuration}} days\",\"listen_now\":\"Listen now\",\"listen_on_everand\":\"Listen on Everand\",\"load_more\":\"Load more\",\"more\":\"More\",\"more_about_this_title\":\"More about this title\",\"new_to_scribd\":\"New to Scribd?\",\"notice\":\"Notice\",\"opens_in_a_new_window\":\"opens in a new window\",\"or\":\"or\",\"pause\":\"Pause\",\"play_preview\":\"Play preview\",\"play_sample\":\"Play sample\",\"preferred_language_set_to_language\":\"Preferred language set to {{language}}\",\"progress\":{\"listened\":\"listened\",\"read\":\"read\"},\"rating\":\"rating\",\"ratings\":\"ratings\",\"read_count\":\"{{count}} read\",\"read_count_plural\":\"{{count}} reads\",\"read_less\":\"Read less\",\"read_more\":\"Read more\",\"read_now\":\"Read now\",\"read_on_everand\":\"Read on Everand\",\"read_on_scribd\":\"Read on Scribd\",\"read_preview\":\"Read preview\",\"recommended\":\"Recommended\",\"remove\":\"Remove\",\"remove_from_saved\":\"Remove from Saved\",\"removed_from_saved\":\"Removed from Saved\",\"removed_from_your_saved_list\":\"Removed from your saved list.\",\"restart_subscription\":\"Restart subscription\",\"resume_subscription\":\"Resume subscription\",\"save\":\"Save\",\"save_for_later\":\"Save for later\",\"saved\":\"Saved\",\"selected\":\"(selected)\",\"send_email\":\"Send email\",\"share_on\":{\"email\":\"Share via email\",\"email_mail_client\":\"Share with email, opens mail client\",\"facebook\":\"Share on Facebook\",\"facebook_new_window\":\"Share on Facebook, opens a new window\",\"linkedin\":\"Share on LinkedIn\",\"linkedin_new_window\":\"Share on LinkedIn, opens a new window\",\"pinterest\":\"Share on Pinterest\",\"pinterest_new_window\":\"Share on Pinterest, opens a new window\",\"twitter\":\"Share on Twitter\",\"twitter_new_window\":\"Share on Twitter, opens a new window\"},\"show\":\"Show\",\"sign_in\":\"Sign in\",\"sign_out\":\"Sign out\",\"songbook\":\"Songbook\",\"start_your_subscription\":\"Start your subscription\",\"success\":\"Success\",\"success_exclamation\":\"Success!\",\"title_author_separator\":\"by\",\"undo\":\"Undo\",\"undo_title_removed_from_saved\":\"Undo {{title}} removed from Saved\",\"update\":\"Update\",\"uploaded_by\":\"Uploaded by\",\"visually_hidden_next_item\":\"Next item\",\"visually_hidden_previous_item\":\"Previous item\",\"welcome_back\":\"Welcome back\",\"welcome_back_exclamation\":\"Welcome back!\",\"worlds_fascinating_library\":\"The world\'s most fascinating library\"},\"competitor_matrix\":{\"last_updated_aug\":\"Last updated on August 5, 2021\",\"million_ebooks\":\"1,000,000+ ebooks\",\"million_magazine_news_articles\":\"1,000,000+ magazine \\u0026 news articles\",\"no\":\"No\",\"thousands_audiobooks\":\"200,000+ audiobooks\",\"title\":\"See why readers choose Scribd\",\"yes\":\"Yes\"},\"content_lengths\":{\"articles_with_count\":\"{{count, locale}} article\",\"articles_with_count_plural\":\"{{count, locale}} articles\",\"hour_with_count\":\"{{count, locale}} hour\",\"hour_with_count_plural\":\"{{count, locale}} hours\",\"minute_with_count\":\"{{count, locale}} minute\",\"minute_with_count_plural\":\"{{count, locale}} minutes\",\"page_with_count\":\"{{count, locale}} page\",\"page_with_count_plural\":\"{{count, locale}} pages\",\"songs_with_count\":\"{{count, locale}} song\",\"songs_with_count_plural\":\"{{count, locale}} songs\"},\"content_preview\":{\"leaving_everand\":\"Leaving Everand on {{date}}\",\"newly_added_to_everand_only_on_our_new_plans\":\"Newly added to Everand — only on our new plans\"},\"content_types\":{\"series\":\"Series\"},\"cta\":{\"preview\":\"Preview\"},\"doc_download_modal\":{\"check_out_these\":\"Check out these other great titles\",\"continue_reading_ad_free_or_upgrade\":\"Continue reading ad-free with your trial or upgrade to a subscription to download hundreds of documents.\",\"current_payment\":\"Current payment method\",\"download_as\":\"Download as:\",\"download_document\":\"Download document\",\"download_hundreds_of_documents\":\"Download hundreds of documents. Read ad-free. Access to Scribd, Slideshare, and Everand.\",\"download_iframe\":\"Download iframe\",\"download_started\":\"Your download has started\",\"enrolling_in_automatic_payments_annual_with_tax_html\":\"By clicking the “{{buttonCopy}}” button, you agree to our \\u003ca href=\\\"{{termsUrl}}\\\" target=\\\"_blank\\\"\\u003eTerms of Use\\u003c/a\\u003e, \\u003ca href=\\\"{{privacyUrl}}\\\" target=\\\"_blank\\\"\\u003ePrivacy Statement\\u003c/a\\u003e, that you are over 18, and that {{localEntity}} will automatically continue your subscription starting at the end of your free trial and charge the subscription fee (currently {{price}} + tax per year) to your payment method until you cancel. You may cancel at any time to avoid future charges. To cancel, please visit our \\u003ca href=\'{{howToCancelSubscriptionUrl}}\' target=\\\"_blank\\\"\\u003eCancel Instructions\\u003c/a\\u003e.\",\"enrolling_in_automatic_payments_annual_without_tax_html\":\"By clicking the “{{buttonCopy}}” button, you agree to our \\u003ca href=\\\"{{termsUrl}}\\\" target=\\\"_blank\\\"\\u003eTerms of Use\\u003c/a\\u003e, \\u003ca href=\\\"{{privacyUrl}}\\\" target=\\\"_blank\\\"\\u003ePrivacy Statement\\u003c/a\\u003e, that you are over 18, and that {{localEntity}} will automatically continue your subscription starting at the end of your free trial and charge the subscription fee (currently {{price}}/year) to your payment method until you cancel. You may cancel at any time to avoid future charges. To cancel, please visit our \\u003ca href=\'{{howToCancelSubscriptionUrl}}\' target=\\\"_blank\\\"\\u003eCancel Instructions\\u003c/a\\u003e.\",\"enrolling_in_automatic_payments_monthly_with_tax_html\":\"By clicking the “{{buttonCopy}}” button, you agree to our \\u003ca href=\\\"{{termsUrl}}\\\" target=\\\"_blank\\\"\\u003eTerms of Use\\u003c/a\\u003e, \\u003ca href=\\\"{{privacyUrl}}\\\" target=\\\"_blank\\\"\\u003ePrivacy Statement\\u003c/a\\u003e, that you are over 18, and that {{localEntity}} will automatically continue your subscription starting at the end of your free trial and charge the subscription fee (currently {{price}} + tax per month) to your payment method until you cancel. You may cancel at any time to avoid future charges. To cancel, please visit our \\u003ca href=\'{{howToCancelSubscriptionUrl}}\' target=\\\"_blank\\\"\\u003eCancel Instructions\\u003c/a\\u003e.\",\"enrolling_in_automatic_payments_monthly_without_tax_html\":\"By clicking the “{{buttonCopy}}” button, you agree to our \\u003ca href=\\\"{{termsUrl}}\\\" target=\\\"_blank\\\"\\u003eTerms of Use\\u003c/a\\u003e, \\u003ca href=\\\"{{privacyUrl}}\\\" target=\\\"_blank\\\"\\u003ePrivacy Statement\\u003c/a\\u003e, that you are over 18, and that {{localEntity}} will automatically continue your subscription starting at the end of your free trial and charge the subscription fee (currently {{price}}/month) to your payment method until you cancel. You may cancel at any time to avoid future charges. To cancel, please visit our \\u003ca href=\'{{howToCancelSubscriptionUrl}}\' target=\\\"_blank\\\"\\u003eCancel Instructions\\u003c/a\\u003e.\",\"go_to_homepage\":\"Go to homepage\",\"membership_paused_html\":\"Your membership is currently paused until {{resumeMembershipDate}}. Would you like to resume your membership now to download \\u003cem\\u003e{{title}}\\u003c/em\\u003e?\",\"not_available\":\"This document is not available for download\",\"redirect_notice\":\"You’ll be redirected to the homepage in \\u003cstrong\\u003e{{numberOfSeconds}}\\u003c/strong\\u003e seconds...\",\"starting_date\":\"Starting {{date}}\",\"stay_on_this_page\":\"Stay on this page\",\"subscribe\":\"Subscribe\",\"subscription_payment_processed\":\"Subscription payment processed\",\"there_was_an_issue_processing_html\":\"There was an issue processing your request. \\u003ca href=\\\"{{supportPath}}\\\" target=\\\"_blank\\\"\\u003eContact customer service\\u003c/a\\u003e to continue.\",\"there_was_an_issue_with_payment_html\":\"There was an issue with your payment method. \\u003ca href=\\\"{{resubscribePath}}\\\"\\u003eUpdate payment details\\u003c/a\\u003e to continue.\",\"upgrade_your_trial\":\"Upgrade your trial\",\"uploaded\":\"Uploaded By\",\"you_will_be_billed\":\"You will be billed {{amount}} today\",\"zero_of_count_downloads_remaining_in_your_trial\":\"0 of {{count}} free downloads remaining in your trial\"},\"doc_page\":{\"download_document\":\"Download document\",\"download_unavailable\":\"Download unavailable\"},\"doc_preview\":{\"views\":\"{{formatted_views}} views\"},\"end_of_preview\":{\"view_plan_options\":\"View plan options\"},\"errors\":{\"action_incomplete_heading\":\"Action Incomplete\",\"action_incomplete_message\":\"Oops! We\'re sorry, but we couldn\'t complete the action you requested at this time. We appreciate your patience as we come up with a solution.\",\"something_went_wrong\":\"Something went wrong, please try again.\",\"something_went_wrong_generic\":\"Something went wrong. Please try again\"},\"everand\":{\"cta\":{\"download_free_days\":\"Download free for {{trialDuration}} days\",\"read_free_for_30_days\":\"Read free for 30 days\"}},\"everand_banner\":{\"visit_everand\":\"Visit Everand.\"},\"footer\":{\"about\":\"About\",\"about_scribd_inc\":\"About Scribd, Inc.\",\"accessibility\":\"Accessibility\",\"cancel_contract\":\"Cancel contracts here\",\"contact_us\":\"Contact us\",\"cookie_preferences\":\"Cookie Preferences\",\"copyright\":\"Copyright\",\"copyright_awareness\":\"We take content rights seriously. \\u003ca href={{learnMoreLink}}\\u003eLearn more\\u003c/a\\u003e in our FAQs or \\u003ca href={{reportLink}}\\u003ereport infringement here\\u003c/a\\u003e.\",\"copyright_copy_current_year_scribd\":\"Copyright \\u0026copy; {{currentYear}} Scribd Inc.\",\"do_not_sell_share_info\":\"Do not sell or share my personal information\",\"everand_books_audiobooks\":\"Everand: Ebooks \\u0026 Audiobooks\",\"footer_menu\":\"Footer menu\",\"gifts\":\"Gifts\",\"help_faq\":\"Help / FAQ\",\"join_our_team_exclamation\":\"Join our team!\",\"legal\":\"Legal\",\"our_blog\":\"Our blog\",\"privacy\":\"Privacy\",\"publishers\":\"Publishers\",\"purchase_help\":\"Purchase help\",\"redeem_gift_card\":\"Redeem gift card\",\"scribd_-_download_on_the_app_store\":\"Scribd - Download on the App Store\",\"scribd_-_get_it_on_google_play\":\"Scribd - Get it on Google Play\",\"scribd_-_get_it_on_kindle_fire\":\"Scribd for Kindle Fire\",\"social\":\"Social\",\"support\":\"Support\",\"terms\":\"Terms\"},\"get_app_modal\":{\"an_error_occurred_please_try_again\":\"An error occurred please try again\",\"an_error_occurred_please_try_an\":\"An error occurred please try an email\",\"enter_your_email\":\"Enter your email\",\"enter_your_phone_or_email\":\"Enter your phone or email\",\"get_the_app_to_read\":\"Get the app to read anytime, anywhere.\",\"get_the_app_to_read_and_listen\":\"Get the app to read and listen anytime, anywhere.\",\"link_sent_please_check_your_mobile\":\"Link sent! Please check your mobile device\",\"listen_offline_with_app\":\"Listen offline with the app\",\"phone_or_email\":\"Phone or email\",\"please_enter_a_valid_email\":\"Please enter a valid email\",\"please_enter_a_valid_phone_number\":\"Please enter a valid phone number\",\"please_enter_a_valid_phone_number_or_email\":\"Please enter a valid phone number or email\",\"read_offline_with_app\":\"Read offline with the app\",\"send\":\"Send\"},\"listen_button\":{\"listen_continue\":\"Continue listening\",\"listen_start\":\"Start listening\"},\"lists\":{\"curated_by\":\"Curated by\",\"view_total_titles\":\"View {{count}} title\",\"view_total_titles_plural\":\"View {{count}} titles\"},\"loading_button\":{\"tooltip_content\":{\"loading\":\"Loading...\"}},\"login\":{\"join_lightbox\":{\"email\":\"Email\",\"we_couldn_t_complete_your_request\":\"We couldn\'t complete your request\"}},\"mobile_bottom_navigation_tabs\":{\"active\":\", active\",\"home\":\"Home\",\"quick_navigation\":\"Quick navigation\"},\"modal\":{\"open\":\"Open\",\"opt_in\":{\"stay_in_the_loop\":\"Stay in the loop\"},\"upsell\":{\"cancel_anytime\":\"Cancel anytime\",\"continue_with_free_trial\":\"Continue with {{trialDuration}}-day free trial\",\"continue_with_limited_access\":\"Continue with limited access\",\"or\":\"or\"}},\"modal_redirect\":{\"redirecting\":\"Redirecting\",\"subscribe_to_continue_reading_copy\":\"Subscribe to continue reading\"},\"navigation\":{\"sidebar\":{\"selected\":\", selected\"},\"upload\":\"Upload\"},\"plan_card\":{\"per_month\":\"/month\"},\"plan_type\":{\"standard_monthly\":\"Standard Monthly\"},\"plans\":{\"get_more_unlocks\":\"Get more unlocks\",\"moving_to_plus\":\"Moving to Plus on {{date}}\",\"next_unlock_available\":\"Your next unlock will be available on {{refresh_date}}\",\"no_unlocks_available\":\"0 unlocks available\",\"num_unlocks_available\":\"{{count}} unlock available.\",\"num_unlocks_available_plural\":\"{{count}} unlocks available.\",\"num_unlocks_available_renew_monthly\":\"{{count}} unlock available. Unlocks renew monthly on {{refresh_date}} and do not carry over.\",\"num_unlocks_available_renew_monthly_plural\":\"{{count}} unlocks available. Unlocks renew monthly on {{refresh_date}} and do not carry over.\",\"renew_and_upgrade\":\"Renew and upgrade to Plus to unlock this title.\",\"renew_get_next_unlock\":\"Renew your subscription to get your next unlock on {{refresh_date}}.\",\"resume_and_upgrade\":\"Resume and upgrade to Plus to unlock this title.\",\"switch_back_to_plus_to_get_your_next_unlock\":\"Switch back to Plus to get your next unlock on {{renew_date}}.\",\"unlimited\":\"Unlimited\",\"unlock_title\":\"Unlock title\",\"unlocked\":\"Unlocked\",\"unlocks_available_expire_on_date_html\":\"{{count}} unlock available. Unused unlocks expire on {{expire_date}}.\",\"unlocks_available_expire_on_date_html_plural\":\"{{count}} unlocks available. Unused unlocks expire on {{expire_date}}.\",\"unused_unlocks_expire_on_date\":\"Unused unlocks expire on {{expire_date}}.\",\"upgrade_to_unlock\":\"Upgrade to Plus to unlock\",\"you_have_unlocked_title\":\"You\'ve unlocked this title.\",\"youve_unlocked_this_title\":\"You’ve unlocked this title.\"},\"play_sample_button\":{\"pause\":\"Pause\",\"play_sample\":\"Play sample\"},\"podcast_episode\":{\"from\":\"From\"},\"podcast_series\":{\"num_episodes\":\"{{ count }} episode\",\"num_episodes_plural\":\"{{ count }} episodes\",\"num_podcast_episodes\":\"{{count, locale}} podcast episode\",\"num_podcast_episodes_plural\":\"{{count, locale}} podcast episodes\"},\"promos\":{\"annual_offer\":{\"annual\":\"Premium Annual\",\"monthly\":\"Premium Monthly\",\"youre_all_set_html\":\"You\'re all set! You’ve updated your plan. \\u003ca href={{account_settings_url}}\\u003eView your plan\\u003c/a\\u003e in your account.\"}},\"react\":{\"button_menu\":{\"close_menu\":\"Close menu\"},\"modals\":{\"delete_item_in_list\":{\"cancel\":\"Cancel\",\"delete\":\"Delete\",\"do_not_ask_me_again\":\"Do not ask me again\",\"removing_from_saved_will_also_delete\":\"Removing from Saved will also delete the title from your lists.\",\"this_title_is_also_in_a\":\"This title is also in a list.\"}},\"save_button\":{\"failed_to_remove_title\":\"Failed to remove title\",\"failed_to_save_title\":\"Failed to save title\",\"remove_short_title_from_saved\":\"Remove {{short_title}} from Saved\",\"save_short_title_for_later\":\"Save {{short_title}} For Later\",\"sign_up_to_save\":\"Sign up to save this title\"},\"sharing_buttons\":{\"check_out_props_share_title_on_scribd\":\"Check out {{props_share_title}} on Scribd\",\"i_m_reading_props_document_collection_name_on_scribd_props_document_collection_url\":\"I’m reading {{props_document_collection_name}} on Scribd: {{props_document_collection_url}}\",\"read_props_document_collection_name_on_scribd\":\"Read {{props_document_collection_name}} on Scribd\",\"share_on_facebook_opens_a_new\":\"Share on Facebook, opens a new window\",\"share_on_linkedin_opens_a_new\":\"Share on LinkedIn, opens a new window\",\"share_on_twitter_opens_a_new\":\"Share on Twitter, opens a new window\",\"share_with_email_opens_mail_client\":\"Share with Email, opens mail client\",\"sharing_options\":\"Sharing Options\"}},\"reading_progress\":{\"base\":{\"we_ve_moved_you_to_where_you\":\"We\'ve moved you to where you read on your {{progress_device_name}}\"}},\"renew_upgrade_modal\":{\"please_renew_your_subscription_first_in\":\"Please renew your subscription first in order to upgrade to Plus to unlock this title.\",\"renew_and_upgrade_to_unlock\":\"Renew and upgrade to unlock this title\",\"renew_subscription\":\"Renew subscription\"},\"resume_membership\":\"Resume subscription\",\"save_button\":{\"save\":\"Save\",\"saved\":\"Saved\"},\"skip_link\":{\"skip_content\":\"Skip content\"},\"social_buttons\":{\"scribd_on_facebook_aria_label\":\"Scribd on Facebook\",\"scribd_on_instagram_aria_label\":\"Scribd on Instagram\",\"scribd_on_pinterest_aria_label\":\"Scribd on Pinterest\",\"scribd_on_twitter_aria_label\":\"Scribd on Twitter\"},\"star_ratings\":{\"clear_rating\":\"Clear rating\",\"i_didnt_like_it_at_all\":\"I didn\'t like it at all\",\"i_didnt_like_it_that_much\":\"I didn\'t like it that much\",\"i_liked_it\":\"I liked it\",\"i_loved_it\":\"I loved it\",\"i_thought_it_was_ok\":\"I thought it was OK\",\"no_ratings\":\"0 ratings\",\"rate_as_rating_out_of_5\":\"Rate as {{value}} out of 5\",\"rating_rating_to_display_out_of_5_stars\":\"Rating: {{ratingToDisplay}} out of 5 stars\",\"ratings\":\"rating\",\"ratings_plural\":\"ratings\",\"saved\":\"Saved!\",\"selected\":\"(selected)\",\"user_rating_star_rating_saved\":\"{{userRating}} star rating saved\"},\"start_exploring\":\"Start exploring\",\"text_links\":{\"all_categories\":\"All categories\",\"related_authors\":\"Related authors\",\"view_all_categories_in_category\":\"View all categories in {{category}}\",\"view_fewer\":\"View fewer\",\"view_more\":\"View More\"},\"time_remaining\":{\"hours\":\"{{count}} hr left\",\"hours_plural\":\"{{count}} hrs left\",\"minutes\":\"{{count}} min left\",\"minutes_plural\":\"{{count}} mins left\",\"pages\":\"{{count}} page left\",\"pages_plural\":\"{{count}} pages left\"},\"trial\":{\"cancel_anytime\":\"Cancel anytime.\"},\"trial_duration\":{\"first_days_free\":\"Your first {{trialDuration}} days are free.\",\"read_free_days\":\"Read free for {{trialDuration}} days\",\"start_trial_days\":\"Start your free {{trialDuration}} days\"}},\"slideshare\":{\"accessibility\":{\"logo\":\"SlideShare, a Scribd company\"},\"checkout\":{\"hero_banner_title\":\"Your SlideShare presentation\"},\"join\":{\"ad_free_sign_up_sub_title\":\"You’ll get instant access to millions of presentations, documents, ebooks, audiobooks, magazines, podcasts and more. We’ll remind you before your trial ends.\",\"ad_free_sign_up_title\":\"To enjoy SlideShare ad-free, sign up for a free {{trialDuration}}-day Scribd trial\",\"already_have_scribd_account\":\"Already have a Scribd account?\",\"create_account\":\"Create a Scribd account to continue\",\"get_instant_access\":\"Get instant access to millions of documents, ebooks, audiobooks, magazines, podcasts, and more. All in one subscription.\",\"need_account_sign_in_slideshare\":\"You can use this account to access SlideShare and Scribd.\",\"to_continue_reading\":\"To continue reading on SlideShare, sign up for a {{trialDuration}} day free Scribd trial\",\"trial_duration\":\"To download on SlideShare, sign up for a {{trialDuration}} day free Scribd trial\"},\"login\":{\"sign_in\":\"Sign in with your Scribd account to continue\"}},\"subscribe_now\":{\"modal\":{\"continue_to_scribd\":\"Continue to Scribd\",\"looking_for_our_ebooks_audiobooks\":\"Looking for our ebooks and audiobooks?\",\"scribd_recently_launched_everand\":\"Scribd recently launched \\u003cem\\u003eEverand\\u003c/em\\u003e as your new home for ebooks, audiobooks, magazines, sheet music, and podcasts. Scribd is still your home for community-uploaded documents.\",\"visit_everand\":\"Visit Everand\",\"welcome_to_scribd\":\"Welcome to Scribd!\"}},\"unified_checkout\":{\"change_plans\":{\"upgrade_to_plus\":\"Upgrade to Plus\"},\"payment_options\":{\"current_payment\":\"Current payment method\"}},\"webpack\":{\"doc_page\":{\"src\":{\"App\":{\"Page\":{\"BlurPromo\":{\"BlurPromo\":{\"become_a_scribd_member_to_read\":\"Become a Scribd member to read and download full documents.\",\"cancel_anytime\":\"Cancel anytime\",\"continue_for_free\":\"Continue for Free\",\"continue_reading_with_trial\":\"Continue Reading with Trial\",\"or\":\"Or\",\"update_payment\":\"Update Payment\",\"update_payment_for_full_access\":\"Update payment for full access.\",\"upload_to_download\":\"Upload to Download\",\"upload_your_documents_to_download\":\"Upload your documents to download.\"}},\"Body\":{\"Body\":{\"share_this_document\":\"Share this document\"},\"FixedViewportBottomComponents\":{\"CollapseButton\":{\"CollapseButton\":{\"click_to_collapse_related_titles\":\"Click to collapse Related Titles\",\"click_to_expand_related_titles\":\"Click to expand Related Titles\"}}},\"Metadata\":{\"Extra\":{\"Extra\":{\"original_title_no_colon\":\"Original Title\"}}},\"Toolbar\":{\"Toolbar\":{\"jump_to_page\":\"Jump to Page\"}}},\"annotations\":{\"AnnotationPopover\":{\"AnnotationPopover\":{\"annotation_text_page_annotation_page_nread_more\":\"\\\"{{annotation_text}}…\\\" (page {{annotation_page}})\\\\nRead more:\"}},\"NoteEditor\":{\"NoteEditor\":{\"add_note\":\"Add Note\",\"cancel\":\"Cancel\",\"delete_note\":\"Delete note\",\"note\":\"Note\",\"note_note_group_notes_indexof_active_note_id_1_of_note_group_notes_length\":\"Note {{note_group_notes_indexof_active_note_id_1}} of {{note_group_notes_length}}\",\"save\":\"Save\",\"write_a_note\":\"Write a note…\"}}},\"modals\":{\"Description\":{\"Description\":{\"document_information\":\"Document Information\"}},\"ShareQuote\":{\"ShareQuote\":{\"share_quote\":\"Share Quote\"}}}}},\"body\":{\"sidebar\":{\"on_created_at\":\"on {{created_at}}\"}},\"shared\":{\"actions\":{\"modals\":{\"redirecting\":\"Redirecting...\",\"unable_to_unpause_account_please_try\":\"Unable to unpause account. Please try again\"}},\"base_page\":{\"an_error_occurred_please_try_again\":\"An error occurred please try again\"},\"components\":{\"modals\":{\"Download\":{\"Receipt\":{\"Receipt\":{\"uploaded_by_this_props_document_author_name\":\"Uploaded by {{this_props_document_author_name}}\"}}}}},\"download_button\":{\"button\":{\"download\":\"Download\"}},\"store\":{\"actions\":{\"modals\":{\"subscribe_to_continue_reading\":\"Subscribe to Continue Reading\"}}}}}}}}}}");Scribd.e2e_enabled = false;</script><script type="application/javascript">function prefetchResource(u){var x = new XMLHttpRequest();x.open("GET", u, true);x.send()};</script></body></html>