CodeGym /Java Blog /Random /Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ...
John Squirrels
Antas
San Francisco

Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ang Spring at JavaEE

Nai-publish sa grupo
Kung natapos mo na (o malapit na) sa pag-aaral ng Java SE, oras na para isipin ang iyong mga susunod na hakbang sa pagsakop sa propesyon ng isang developer ng Java. Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ang Spring at JavaEE - 1 Sa isang banda, mayroon ka nang mahusay na pag-unawa sa Java: alam mo kung paano magtrabaho sa isang IDE, magsulat ng mga programa, at marami pa. Ngunit ano ang susunod mong gagawin sa iyong mga programa? Paano mo sila gagawing cool pa at "ilalabas sila sa mundo"? Nagiging malinaw na oras na para pag-aralan ang mga teknolohiya ng enterprise. At ngayon magsisimula na ang saya. Hindi mahalaga kung aling teknolohiya ang napagpasyahan mong magsimula. Maging ito ay JavaEE o Spring, malamang na makatagpo ka ng isang toneladang bagay na malayo, malayo sa iyong pang-unawa. Sa pagitan ng mga pangunahing kaalaman sa Java at mga advanced na teknolohiya ay nananatiling isang intermediate na hakbang sa kaalaman na dapat gawin upang mapanatili ang natitira sa iyong pagpipigil sa sarili at tiwala sa sarili habang nagbabasa ka ng napakaraming dokumentasyon. Samakatuwid,ay upang bigyan ka ng pinakamababang teoretikal na kaalaman na kinakailangan para sa iyong karagdagang pag-aaral ng JavaEE o Spring. Ang materyal na ito ay nahahati sa 7 bahagi:
  1. Pag-uusapan natin ng kaunti tungkol sa networking.
  2. Susuriin namin ang client-server at three-tier na arkitektura.
  3. I-explore natin ang mga protocol ng HTTP/HTTPS.
  4. Malalaman namin ang lahat ng kailangan mong malaman tungkol kay Maven.
  5. Pinag-uusapan natin ang tungkol sa pag-log.
  6. Tungkol sa mga servlet container.
  7. At sa wakas, tungkol sa MVC.

Part 1. Pag-uusapan natin ng kaunti ang tungkol sa networking.

Magsimula tayo sa kung ano ang pinakamahalaga sa pamamagitan ng pag-uusap tungkol sa kung ano ang itinayo ng bawat social network, web service at web app, instant messenger at simpleng website — ang network (sa konteksto ng seryeng ito ng mga artikulo, ang terminong "network" ay nangangahulugang Internet ) . Ang network ay binubuo ng isang malaking bilang ng mga computer: sila ay magkakaugnay at may kakayahang makipag-usap. Mahalagang maunawaan kung paano nila ito ginagawa, dahil ang mga web application ay nagpapadala ng impormasyon mula sa isang computer patungo sa isa pa.

modelo ng OSI

Ang modelo ng Open Systems Interconnection (OSI) ay lumilikha ng isang tiered na diskarte sa pagbuo ng isang network. Malinaw nitong ipinapakita kung paano at sa anong layer na mga entity ng parehong network ang maaaring makipag-ugnayan sa isa't isa. Sa kabuuan, naglalaman ang modelong ito ng 7 layer:
7 Aplikasyon
6 Pagtatanghal
5 Sesyon
4 Transportasyon
3 Network
2 Link ng data
1 Pisikal
Ang paghahati sa modelo sa mga layer ng abstraction ay nagbibigay-daan sa mga developer na nagtatrabaho sa transport layer, halimbawa, na hindi na kailangang mag-isip tungkol sa mga detalye ng pagpapatupad sa antas ng network at session layer. Ang pamamaraang ito ay ginagamit din sa programming. Isaalang-alang natin ang lahat ng mga layer ng modelo ng OSI, at tukuyin kung alin ang interesado sa atin:
  1. Pisikal na layer — Ang layer na ito ay tumatalakay sa mga batas ng pisika at kung paano gamitin ang mga ito para sa ating mga layunin. Halimbawa, ang paglikha ng mga cable at paglalagay ng mga ito sa mga entity sa network.

    Ang layer na ito ay hindi interesado sa amin.

  2. Layer ng link ng data — Ang layer na ito ay responsable para sa pagpapadala ng data sa mga node ng network at paglikha ng mga channel ng paghahatid ng data para sa mga pisikal na bagay.

    Hindi kami interesado sa layer na ito maliban kung gusto mong magsulat ng firmware para sa hardware na nagtatatag ng mga link ng data.

  3. Layer ng network — Ang layer na ito ay para sa pagtukoy ng mga address ng mga indibidwal na gumagamit ng network at ang mga ruta patungo sa kanila. May halaga sa pag-aaral nang higit pa tungkol sa mga detalye ng layer na ito, ibig sabihin, mga address ng network.

    Ang mga address ng network ay tinukoy ng isang espesyal na protocol: ang pinakakaraniwan ay IPv4 (Internet Protocol version 4). Ito ang protocol na kailangang gamitin ng isang web programmer upang makipag-ugnayan sa isa pang gumagamit ng network.

    Ang IPv4 address ay binubuo ng apat na byte na halaga na pinaghihiwalay ng mga tuldok, halimbawa: 192.0.2.235. Dapat mong tandaan na ang mga halagang ito ay mga byte, na nangangahulugan na ang mga ito ay nasa hanay na 0..255.

    Ang mga IP address, sa turn, ay nahahati sa mga klase. Hindi natin basta-basta itatalaga ang ating sarili ng isang magandang kumbinasyon ng mga numero, ngunit hindi tayo magiging malalim dito. Sapat na upang maunawaan na ang isang IP address ay natatanging kinikilala ang isang gumagamit ng network at maaaring magamit upang makipag-ugnay sa gumagamit na iyon.

  4. Transport layer — Ang layer na ito ang humahawak sa paghahatid ng impormasyon sa isang addressee. Iba't ibang protocol ang ginagamit para magawa ito. Sa ngayon, hindi kami interesado sa kanila. Mas interesado kami sa konsepto ng isang port , na lumilitaw sa layer na ito.

    Ang mga port ay may pananagutan sa pagtukoy ng isang partikular na aplikasyon sa isang computer. Halimbawa, ipagpalagay na magsulat ka ng chat app sa Java, i-install ito sa 2 computer, at gusto mong magpadala ng mensahe sa iyong buddy. Ang iyong mensahe ay nakabalot, ipinadala sa isang partikular na IP address, at inihatid sa iyong kaibigan, ngunit hindi alam ng kanyang computer kung ano ang gagawin sa impormasyong natanggap, dahil hindi nito naiintindihan kung aling application ang dapat magproseso ng iyong mensahe. Kapag nakikipag-usap ang mga entity ng network, ginagamit ang mga port upang ipahiwatig kung aling aplikasyon ang dapat magproseso ng impormasyon.

    Ang port ay isang numero sa saklaw mula 0 hanggang 65535. Ito ay idinaragdag sa IP address pagkatapos ng colon: 192.0.2.235:8080 . Ngunit hindi mo magagamit ang lahat ng mga port sa tinukoy na hanay: ang ilan sa mga ito ay nakalaan para sa operating system, ang iba ay karaniwang ginagamit para sa mga partikular na layunin. Hindi namin susuriin ang mga layunin ng iba't ibang mga daungan. Sa ngayon, sapat na upang maunawaan ang kanilang papel sa proseso ng komunikasyon sa network.

  5. Session layer — Lumilikha at namamahala ang layer na ito ng mga session ng komunikasyon. Sa layer na ito, nagiging posible para sa mga application na makipag-ugnayan, nagpapadala ng mga kahilingan sa antas ng serbisyo. Ang kailangan nating malaman ay na sa layer na ito ay nagbubukas ang isang session sa pagitan ng dalawang user, at kailangan nating magtrabaho kasama ang session.

    Ang session ay isang entity na nilikha kapag may koneksyon sa pagitan ng dalawang user. Maaari itong mag-imbak ng kinakailangang impormasyon tungkol sa isang user at tungkol sa kasaysayan ng pakikipag-ugnayan sa user. Ang isang mahalagang detalye ay kapag ang pagpapalitan ng impormasyon ay huminto, ang sesyon ay hindi nawawala. Sa halip, pinapanatili nito ang estado nito sa loob ng isang takdang panahon, upang ang mga user ay maaaring magpatuloy sa pagpapalitan ng impormasyon pagkatapos ng pahinga.

    Kung ang isang application ay nakikipag-ugnayan sa ilang mga user sa parehong oras, pagkatapos ay isang kaukulang bilang ng mga koneksyon (at sa gayon ay mga session) ay itinatag. Ang bawat session ay may natatanging identifier (ID) , na nagbibigay-daan sa application na makilala ang mga user kung kanino ito nakikipag-usap.

  6. Layer ng pagtatanghal — Ang layer na ito ay responsable para sa pag-encode/pag-decode ng data. Malinaw, kung kailangan nating ipadala ang string na "Hello web" sa isa pang user, ito ay unang iko-convert sa (naka-encode bilang) binary code, at pagkatapos lamang ito ipapadala. Sa pag-abot sa tatanggap, ang mensahe ay ibabalik (na-decode), at makikita ng tatanggap ang orihinal na string. Nagaganap ang mga pagkilos na ito sa layer ng pagtatanghal.

  7. Ang layer ng application ay ang pinakakawili-wiling layer para sa amin. Pinapayagan nito ang mga application na makipag-ugnayan sa network. Sa layer na ito, tumatanggap at nagpapadala kami ng mga mensahe, at gumagawa ng mga kahilingan sa mga serbisyo at malalayong database.

    Maraming protocol ang ginagamit sa layer na ito: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET at, siyempre, HTTP/HTTPS. Ang protocol ay isang unibersal na kasunduan na sinusunod namin kapag nakikipag-usap. Talagang magbibigay kami ng hiwalay na detalyadong talakayan ng HTTP/HTTPS.

Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ang Spring at JavaEE - 2Hindi natin kailangang malaman kung paano gumagana ang bawat layer ng modelo. Ang pangunahing bagay ay upang maunawaan ang mga prinsipyo sa likod ng pagpapatakbo ng mga elemento na kailangan nating magtrabaho kapag nagsusulat ng mga web application, lalo na:
  • IP address — Ang address ng user sa network
  • Port — Ang address ng isang partikular na application ng user
  • Session — Isang entity na umiiral sa buong panahon ng komunikasyon sa pagitan ng dalawang user
  • Mga protocol ng aplikasyon (HTTP/HTTPS) — Ito ang mga patakaran na susundin namin kapag bumubuo at nagpapadala ng mga mensahe.
Kapag bumisita kami sa isang online na tindahan, halimbawa, ipinapahiwatig namin ang address at port nito. Sa aming unang pagbisita, isang session ang nilikha. Maaaring mag-record ang tindahan ng impormasyon sa session. Halimbawa, maaaring mag-save ang tindahan ng impormasyon tungkol sa mga item na iniwan namin sa shopping cart. Kung isasara namin ang tab sa online na tindahan at pagkatapos ay babalik dito sa ibang pagkakataon, ang aming mga item ay mananatili pa rin sa cart dahil naka-save ang mga ito sa session. Siyempre, lahat ng impormasyong natatanggap namin mula sa tindahan na natatanggap namin sa pamamagitan ng HTTP/HTTPS protocol, at alam ng aming browser kung paano ito iproseso. Maaari kang tumutol, na nagsasabi na hindi mo kailanman ipinasok ang address at port sa browser, at bahagyang tama ka. Ang ginawa mo ay ilagay ang domain name, na na-convert ng isang DNS server. Tingnan natin kung ano ang narito.

DNS (Domain Name System)

Tulad ng natutunan na natin, ang bawat gumagamit ng network ay may natatanging address. Kung pinag-uusapan natin ang application, ang natatanging address nito ay IPv4-address:port . Kung alam mo ang address na ito, maaari mong direktang ma-access ang application. Isipin na nagsulat kami ng isang web application na nagpapakita ng average na temperatura ng hangin sa lahat ng mga bansa sa real time. Na-deploy namin ito sa isang server na may address na 226.69.237.119, sa port 8080. Upang makatanggap ng impormasyon mula sa amin, dapat magpasok ang user ng 5 numero sa browser: 226.69.237.119:8080. Ang mga tao ay hindi gustong magsaulo ng mga hanay ng mga numero: marami sa atin ang hindi makaalala ng higit sa dalawang numero ng telepono. Kaya naman ang Domain Name Systemay naimbento. Maaari kaming lumikha ng isang "alias" para sa aming address, halimbawa, world-temperature.com. Sa halip na hanapin kami gamit ang isang address na binubuo ng limang mahirap tandaan na numero, maaaring ilagay ng user ang aming domain name sa address bar ng browser. May mga DNS server na nagmamapa ng mga domain name sa totoong mga address. Halimbawa, kapag ang isang user ay pumasok sa codegym.cc sa isang browser, ang kanyang kahilingan ay ipinadala sa isang DNS server, na nagko-convert nito sa aktwal na address. Bahagi 1. Ano ang kailangan mong malaman bago pag-aralan ang Spring at JavaEE - 4Ito ay mahalaga para sa amin na maunawaan, dahil ang aming mga aplikasyon ay tatawag sa mga malayuang serbisyo kapwa sa pamamagitan ng mga pangalan ng domain at sa pamamagitan ng mga tunay na address. Kailangan nating maunawaan na sa alinmang kaso ang mga serbisyo ay pareho. Iyon lang muna! Sa artikulong ito, tiningnan namin ang mga pangunahing kaalaman sa networking, na magiging kapaki-pakinabang habang nagsisimula kang matuto ng web programming.Sa susunod na titingnan natin kung ano ang arkitektura ng client-server at kung bakit napakahalagang maunawaan. Bahagi 2. Pag-usapan natin nang kaunti ang tungkol sa arkitektura ng software Part 3. HTTP/HTTPS Part 4. Ang mga pangunahing kaalaman ng Maven Part 5. Servlets at ang Java Servlet API. Pagsusulat ng simpleng web application Part 6. Mga lalagyan ng Servlet Part 7. Ipinapakilala ang pattern ng MVC (Model-View-Controller)
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION