JSP model 2 arxitekturası

**JSP Model 2** ‒ bul Java veb qosımshalardı islep shıǵıwda qollanılatuǵın quramalı dizayn úlgisi bolıp, ol mazmundı kórsetiwdi onı alıw hám manipulyaciya qılıw ushın qollanılatuǵın logikadan ajıratadı. Model 2 logika menen kórsetiwdi ajıratıwǵa alıp kelgenlikten, ol ádette model-kórinis-kontroller (MVC) paradigması menen baylanıstırıladı. MVC "Model"iniń anıq forması Model 2 dizaynı tárepinen hesh qashan anıqlanbaǵan bolsa da, bir qatar basılımlar MVC Model kodın saqlaw ushın formallastırılǵan qatlam usınadı. Mısalı, Java BluePrints dáslep MVC Modelin engiziw ushın EJB lerdi qollanıwdı usınǵan edi.

Model 2 qosımshasında, klient brauzerinen kelgen sorawlar kontrollerge jiberiledi. Kontroller kórsetiw ushın durıs mazmundı alıw ushın zárúr bolǵan hár qanday logikanı orınlaydı. Keyin ol mazmundı sorawǵa jaylastıradı (ádette JavaBean yamasa POJO túrinde) hám sorawdı qaysı kóriniske jiberiwdi sheshedi. Sońınan kórinis kontroller tárepinen jiberilgen mazmundı kórsetedi.

Model 2 orta hám úlken kólemli qosımshalar ushın usınıladı.

## Tariyxı
1998-jılı Sun Microsystems kompaniyası JavaServer Pages specifikaciyasınıń aldın ala versiyasın, 0.92 versiyasın járiyaladı. Bul specifikaciyada Sun JSP betlerin qollanıwdıń eki usılın kórsetti. Birinshi model (hújjettegi tártibi sebepli "model 1" dep atalǵan) JSP betleriniń óz aldına, bólek obektler bolıwın itibarǵa alǵan ápiwayı model edi. Logika bettiń ózinde bolıwı múmkin edi, al betler arasında navigaciya ádette gipersiltemeler arqalı ámelge asırılatuǵın edi. Bul sol waqıttaǵı úlgi texnologiyasınıń keń tarqalǵan qollanılıwına sáykes keldi.

ColdFusion hám Active Server Pages usı modeldi ámelge asırǵan sol dáwirdegi texnologiyalardıń mısalları bolıp tabıladı.

Hújjette kórsetilgen ekinshi model ("tártip boyınsha model 2") servlet texnologiyasın JSP texnologiyası menen biriktirgen jetilistirilgen usıl edi. Kórsetilgen ayrıqsha ayırmashılıq - servlet sorawdı uslap qalıp, kórsetiliwi kerek bolǵan mazmundı soraw atributına (ádette JavaBean arqalı kórsetiledi) jaylastırıp, sońınan mazmundı qálegen shıǵıs formatında kórsetiw ushın JSP shaqırıwı edi. Bul model aldıńǵı modelden JSP texnologiyasınıń tek úlgi mexanizmi sıpatında qollanılıwı menen parıq qıldı. Barlıq logika servletke bólinip, JSP tek berilgen mazmunnıń shıǵısın kórsetiw juwapkershiligin alıp qaldı.

1999-jıldıń dekabr ayında JavaWorld jurnalı Govind Seshadridiń "JavaServer Pages Model 2 arxitekturasın túsiniw" atlı maqalasın járiyaladı. Bul maqalada Govind "Model 2" terminin qollanıwda eki áhmiyetli belgige eristi. Birinshi belgi - "Model 2" terminin eki múmkin bolǵan variant emes, al arxitekturalıq úlgi retinde rásmiylestiriw boldı. Ekinshi belgi - Model 2 vebke-tiykarlanǵan programmalıq támiynat ushın MVC arxitekturasın támiyinleydi degen pikir edi.

Govindtiń pikirinshe, "Model 2" arxitekturası logikanı JSP-den ajıratıp, onı servletke jaylastırǵanı sebepli, bul eki bólek MVC arxitekturasındaǵı "Kóriniw" hám "Basqarıwshı" (sáykesinshe) sıpatında qaralıwı múmkin edi. MVC arxitekturasınıń "Model" bólegi Govind tárepinen ashıq qaldırılıp, derlik hár qanday maǵlıwmat strukturası talaplarǵa juwap bere alatuǵını aytıldı. Maqalada keltirilgen anıq mısal paydalanıwshınıń sessiyasında saqlanǵan Vector dizimi edi.

2000-jıldıń mart ayında Apache Struts joybarı shıǵarıldı. Bul joybar Kóriniw hám Basqarıwshı arasındaǵı bóliniwdi rásmiylestirdi hám "Model 2" úlgisin ámelge asırǵanın málimledi. Jáne de bir márte, "Model"diń ámelge asırılıwı anıqlanbaǵan qalıp, baǵdarlamashılardıń sáykes sheshimdi toltırıwı kútildi. Struts bas betinde JDBC hám EJB arqalı maǵlıwmatlar bazası menen óz-ara baylanıs variantları usınıldı. Sońǵı waqıtları, Hibernate, iBatis hám Object Relational Bridge model ushın qollanılıwı múmkin bolǵan zamanagóy variantlar retinde kórsetildi.

Struts shıǵarılǵannan keyin, bir qatar básekiles freymvorkler payda boldı. Bul freymvorklerdiń kópshiligi de "Model 2" hám "MVC" di ámelge asırǵanın málimledi. Nátiyjede, bul eki termin baǵdarlamashılardıń sanasında sinonim bolıp qaldı. Bul "MVC Model 2" yamasa qısqasha "MVC2" termininiń qollanılıwına alıp keldi.

## Qáte túsinikler
Keń tarqalǵan qáte túsinik - Model 2 implementaciyasına erisiw ushın formallasqan MVC úlgisi talap etiledi dep oylaw. Biraq, Java BluePrints bul interpretaciyaǵa qarsı arnawlı eskertedi:J2EE platformasındaǵı veb-qatlam texnologiyası haqqındaǵı ádebiyatlarda "Model 1" hám "Model 2" terminleri kóbinese túsindirmesiz qollanıladı. Bul terminologiya JSP specifikaciyasınıń dáslepki nusqalarınan kelip shıqqan, onda JSP bettiń eki tiykarǵı qollanıw úlgisi súwretlengen edi. Bul terminler specifikaciya hújjetinen joǵalǵan bolsa da, olar ulıwma qollanıwda qalıp atır. Model 1 hám Model 2 ápiwayı túrde klient qatlamınan sorawlardı jiberiwshi hám kóriniwlerdi tańlaytuǵın basqarıwshı servlettiń joqlıǵın yamasa bar bolıwın (sáykesinshe) ańlatadı.Sonıń menen bir qatarda, "MVC2" termini kópshilikti Model 2 niń MVC úlgisiniń keyingi áwladı ekenligi qate pikirge alıp keldi. Shınında da, MVC2 - bul "MVC Model 2" termininiń ápiwayı qısqartılǵan túri.

"MVC2" termini dógeregindegi aljasıw Model 1 kodı boyınsha qosımsha aljasıwǵa alıp keldi, nátiyjede joq bolǵan "MVC1" termini ulıwma qollanıwda payda boldı.

## Derekler

__BÖLİDİMÖNDEMEW__