JavaRush /Blog Jawa /Random-JV /Tanpa pathos. Ayo dadi pirembagan bab Java EE, servlets l...
eGarmin
tingkat

Tanpa pathos. Ayo dadi pirembagan bab Java EE, servlets lan kontaner

Diterbitake ing grup
Ing topik iki, aku pengin terus terang babagan pangerten babagan servlet, apa wadah servlet, apa sing paling akeh, yen ora kabeh, kerangka ngarep ngarep web, lan uga ndemek topik babagan kontaner servlet lan server aplikasi. saben liyane, lan servlet lan kontaner web server. Tanpa pathos.  Ayo ngobrol babagan Java EE, servlet lan wadhahe - 1Saderengipun miwiti pacelathon, kula badhe nggatosaken bilih anggen kula badhe rembag, awit... Kene aku ora pengin menehi Piece siji saka kode, nanging mung pengin tutul ing inti, kang bisa tansah nyatakake ing tembung. Aku bakal nyoba kanggo njelaske nganggo bentuk garis kabeh titik sing durung cetha kanggo kula nalika pisanan miwiti. Nalika aku takon ing macem-macem forum babagan topik babagan carane wadah servlet Tomcat beda karo server aplikasi, ujare WebSphere utawa Geronimo, mung wong sing wani mangsuli yaiku bajingan sing ora bisa ngomong apa-apa kajaba "ndeleng Wikipedia" utawa " iku angel ngomong, aplikasi server - iki infrastruktur Komplek kanggo aplikasi perusahaan, kang..." blah blah blah. Aku ora tahan karo wong-wong sing kaya ngono lan aku ngira umume sampeyan uga ora. Kita bakal mbenerake ketidakadilan sejarah. Tindak…

Servlet

Ora preduli apa sing dikandhakake sapa wae, servlet minangka kaca web sing ditulis nganggo basa Jawa. Sawetara bakal ujar manawa aku salah lan servlet minangka aplikasi web lan ana bedane ing konsep kasebut, nanging ora kaya ngono. Saiki ora ana bedane, lan situs sing ditulis nganggo PHP uga bisa diarani aplikasi web kanthi aman. Saiki iki pancen alami, amarga ... php ndhukung OOP, lan CMS kayata Joomla aktif nggunakake iki. Apa servlet ing tingkat kode? Iki minangka kelas sing duwe sawetara cara sing turu lan ndeleng manawa ana sing ngakses liwat panjaluk GET utawa POST HTTP. Sing. Kita ngetik sawetara panjaluk GET ing browser, metode kelas servlet sing cocog nampa lan banjur ngasilake tanggapan kasebut ing wangun kaca HTML. Ing pangertèn klasik saka servlet, kaya sing dibayangke dening Sun, kaca iki dikirim menyang baris klien kanthi baris, diwiwiti karo baris <!DOCTYPE htm>> lan dipungkasi karo baris </html>. Dadi ing Jawa ana kelas servlet dhasar sing diarani Servlet. Kajaba iku, ana akeh kelas liyane sing entuk warisan saka kelas dasar iki lan kanthi mangkono nambah fungsine. Sing apa servlet - ora luwih. Iku mung analog Jawa kode PHP, kang uga dileksanakake ing server, lan mung respon kanggo request browser web ing wangun kaca web dikirim menyang klien. Kabeh.

Framework ngarep-mburi web

Subtitle rumit lan biasane mung nulis kerangka ngarep utawa malah moncong web , nanging aku mutusake kanggo nandheske yen nalika kita ngomong babagan kerangka ngarep, kita ngomong babagan GUI kanggo nggarap Jawa liwat browser web. Sing. ing kene maneh kita ngomong babagan situs web ing Jawa, yaiku. babagan servlets. Apa meh kabeh kerangka front-end, contone, Apache Struts. Iku mung kumpulan kelas sing ngluwihi kelas dhasar Servlet. Raono maneh. Sing. iku mung cara sing beda kanggo nggawe servlet biasa padha. Mung para pangembang kerangka iki (utawa kanthi tembung liya, pangembang teknologi iki) nganggep manawa tambahan kelas dhasar Servletkanthi sawetara cara bakal luwih trep kanggo programmer tinimbang fungsi sing sithik sing servlet klasik saka Sun / Oracle. wis.

kaca JSP

Meh langsung, ide liyane teka ing pikiran para pangembang konsep servlet Java. Amarga kita nulis servlet, tugase ngirim kaca html menyang klien, mula bisa uga luwih bener kanggo langsung nulis kaca html iki, lan yen sampeyan butuh sawetara jinis logika ing Jawa, banjur lebokake langsung. ing html. Yen ora dadi luwih jelas, mula tembung kasebut bisa mbantu: kaca jsp minangka analog saka kaca php. angel? Banjur aku bakal nerangake maneh. Apa sing kita lakoni nalika nulis kaca ing PHP? Kita duwe html statis, lan nalika kita kudu nglebokake logika apa wae ing PHP kayata puteran lan kondisi, kita lebokake ing awak tag <?php … ?>. Kanthi jsp kabeh padha, mung logika ditulis ing Jawa murni, kode sing dilebokake ing awak tag <% … %>. Ayo bali menyang konsep servlet maneh. Intine, kaca JSP minangka servlet, nanging ditulis rada beda. Ing servlet biasa, kita nulis cara sing nindakake sawetara logika lan, adhedhasar asile, ngasilake kaca HTML kanggo klien. Mung sawise sawetara wektu, pangembang servlet wiwit mikir: apa yen ora ana logika ing metode kasebut, lan meh mung pembentukan kaca html, mula ora bakal luwih gampang nulis kaca html menyang kang kanggo nggawe minimal Java inserts? Ya, siji bab pungkasan babagan kaca jsp. Kaping pisanan kaca kasebut diakses, dikompilasi dadi servlet banjur dieksekusi. Panjaluk sabanjure menyang kaca jsp iki bakal luwih cepet amarga bakal wis dikompilasi lan mung kudu dieksekusi.

wadhah Servlet

Dadi, kita nulis kelas servlet utawa kaca JSP. Apa sabanjure? Kepiye cara push menyang server web, ujar apache, supaya bisa dikirim menyang browser web pangguna? Server web mung bisa ngirim html, lan yen kaca kita duwe, ucapake, kode php, banjur server web pisanan ngliwati kaca kasebut liwat interpreter sing nerjemahake php menyang html, lan mung banjur asil dikirim menyang klien. Babagan bab sing padha karo servlets - sadurunge ngirim, kudu dieksekusi supaya kaca HTML bisa diasilake, lan wadhah servlet persis sing tanggung jawab kanggo nglakokake servlet lan kode kaca jsp. Sing. Wadah servlet kanggo java minangka analog saka modul interpreter php ing server web. Mangkono, nalika pangguna ngetik alamat ing browser web, panjaluk kasebut dikirim menyang server web, server web ngerti manawa servlet dijaluk lan ngirim panjaluk kasebut menyang wadhah servlet. Sawise iki, wadhah servlet nglakokake servlet, ngirim kaca HTML sing diasilake menyang server web, sing banjur bali menyang klien. Bisa wadhah servlet mbukak dhewe, i.e. tanpa server web? Soko kaya Tomcat mesthi bisa. Lan yen kita pengin nggawe situs sing ora bakal duwe kaca html liyane kajaba sing adhedhasar servlets, banjur wadhah servlet cukup kanggo kita. Nanging yen kita pengin nggabungake situs saka servlets lan, ngomong, kaca PHP, banjur kita kudu nginstal server web. Kajaba iku, ora kabeh server web duwe wadhah servlet kanthi gawan, nanging meh kabeh ngidini sampeyan nginstal minangka plugin. Mulane, yen kita pengin mbukak situs web kita ing sawetara hosting ing Internet, ing ngendi Apache paling kamungkinan mlaku, banjur kita kudu takon panyedhiya apa wadhah servlet disambungake.

Jawa EE

Ana sing diarani JavaSE (Java Standard Edition). Konsep iki kalebu kabeh kelas java, kanggo nggunakake sing mung kudu ngimpor (contone, java.util.Date) utawa malah ora perlu kanggo nindakake iki (contone, Stringawit iku dumunung ing paket java.lang). Lan ana Java EE (Java Enterprise Edition). Kelas kasebut uga kalebu Sun / Oracle, nanging mung bedane yaiku luwih angel digunakake ing proyek. Baris sing prasaja import…ora bakal cukup, amarga ... project ora bakal ngumpulake. Kanggo mbenerake kahanan, sampeyan kudu nemokake file perpustakaan javaee.jar lan kalebu ing project. Iki bisa ditindakake liwat properti proyek ing lingkungan pangembangan. Asring ngandika proses sambungan iki disebut: ndhaftar julukan jar ing path mbangun utawa classpath saka project.

Server aplikasi

Saiki bayangake yen kita wis nyusun proyek servlet sing nggunakake Java EE. Kabeh apik, nanging saiki kita kudu nyelehake kelas sing dikompilasi ing wadhah servlet. Ayo dadi ngomong padha nindakake iku. Apa aplikasi kita bakal bisa digunakake? Jawabane ora. Nalika ngakses servlet, pangecualian bakal dibuwang sing nuduhake yen sawetara kelas ora ditemokake. Kenging punapa? Amarga kita "ngapusi" compiler dening slipping javaee.jar в classpath, i.e. compiler weruh sing kelas saka Jawa EE ana ing panggonan lan calmed mudhun, nanging wadhah servlet ora ndeleng kelas iki, nanging ndeleng pranala menyang servlet kita. Apa kahanan iki bisa ditanggulangi ing wadhah servlet? Mesthi ya, sampeyan mung kudu nambah file perpustakaan javaee.jar menyang folder karo servlet kita ing wadhah servlet . Saiki bayangake manawa bakal ana akeh proyek kasebut lan kabeh mlaku ing siji wadah servlet Tomcat. Iki tegese sampeyan kudu nyalin file jar iki menyang folder saben servlet. Iki ora trep lan salah. Kahanan kasebut ditanggulangi kanthi ngenalake konsep server aplikasi, sing file iki wis suwe ana ing salinan siji, lan kabeh servlet bisa ngakses, lan ora duwe salinan dhewe. Ing mratelakake panemume, iku banget trep lan logis. Alamiah, kabeh fuss ora amarga siji file jar (aku menehi minangka conto) - ana akeh file kuwi. Nanging iku ora kabeh sing server aplikasi menehi kita. Server aplikasi dhewe bisa njaga sambungan menyang akeh sumber daya, contone, database. Ing kasus iki, servlet kita bisa uga ora mbukak sambungan kasebut dhewe, nanging mung njupuk saka server aplikasi. Ing wadhah servlet, iki ora mungkin, amarga ... wadhah punika, kanggo ombone tartamtu, server aplikasi diudani-mudhun. Ing wadhah, servlet kudu tansah nggawe sambungan menyang database dhewe. Kaya iki ... perang-arsip Apa iku perang-arsip? WAR minangka arsip web. Nyatane, iki mung file zip, kaya jar. Sejatine, iki mung cara kanggo cram situs web kita, kalebu akeh kaca web, kaca jsp lan kelas servlet, dadi siji file zip. web.xml web.xml minangka deskriptor penyebaran sing diarani. Iki file sing stupidly njlèntrèhaké web browser line request kanggo ngirim menyang kang kelas servlet kanggo Processing, supaya wadhah servlet ora bingung, kang servlet tanggung jawab kanggo apa. Umumé, ing Jawa iku modis banget kanggo njlèntrèhaké setelan ing kabeh limo file xml, nanging bubar wis ana cenderung kanggo pindhah saka tradisi iki. Carane, sampeyan takon? Lan liwat anotasi. Kelas anotasi dhewe ora nindakake apa-apa; padha digawe mung kanggo njlèntrèhaké kabeh setelan (meta-data) ora ing file xml kapisah, nanging langsung ing kode. Nyaman banget. Nanging, saiki ana tahap penengah tartamtu, nalika sawetara setelan ditemtokake dening anotasi, lan sawetara dening xml, lan iki bisa mbingungake, amarga Sampeyan ndeleng xml lan ndeleng siji setelan, nanging miturut anotasi ana liyane. Endi sing nduweni prioritas paling dhuwur? Sapa ngerti…

Kesimpulan

Sawise nulis iki, aku mikir yen review cepet kasebut ora bakal mbantu sapa wae, amarga ... ora ngemot spesifik lan ora ana conto, nanging ing sisih liya, aja mbusak apa sing ditulis, mula dadi.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION