CodeGym /Java blogg /Slumpmässig /Del 1. Vad du behöver veta innan du lär dig Spring och Ja...
John Squirrels
Nivå
San Francisco

Del 1. Vad du behöver veta innan du lär dig Spring och JavaEE

Publicerad i gruppen
Om du redan har avslutat (eller är nära) att lära dig Java SE, då är det dags att tänka på dina nästa steg för att erövra yrket som en Java-utvecklare. Del 1. Vad du behöver veta innan du lär dig Spring och JavaEE - 1 Å ena sidan har du redan en god förståelse för Java: du vet hur man arbetar med en IDE, skriver program och mycket mer. Men vad ska du göra härnäst med dina program? Hur gör man dem ännu svalare och "släpper lös dem på världen"? Det blir uppenbart att det är dags att börja studera företagsteknologier. Och nu börjar det roliga. Det spelar ingen roll vilken teknikstack du bestämmer dig för att börja med. Oavsett om det är JavaEE eller Spring, kommer du sannolikt att stöta på massor av saker som ligger långt, långt bortom ditt förstånd. Mellan grunderna i Java och avancerade teknologier återstår ett mellansteg i kunskap som måste tas för att behålla det som återstår av din självkontroll och ditt självförtroende när du läser omfattande dokumentation. Därför,är att ge dig den minsta teoretiska kunskap som krävs för dina fortsatta studier av JavaEE eller Spring. Detta material är uppdelat i 7 delar:
  1. Vi ska prata lite om nätverkande.
  2. Vi kommer att undersöka klient-server- och treskiktsarkitekturen.
  3. Vi kommer att utforska HTTP/HTTPS-protokollen.
  4. Vi lär dig allt du behöver veta om Maven.
  5. Vi pratar om loggning.
  6. Om servletbehållare.
  7. Och slutligen om MVC.

Del 1. Vi ska prata lite om nätverkande.

Låt oss börja med det som är viktigast genom att prata om vad varje socialt nätverk, webbtjänst och webbapp, instant messenger och enkel webbplats bygger på – nätverket (i sammanhanget av denna artikelserie betyder termen "nätverk" Internet ) . Nätverket består av ett stort antal datorer: de är sammankopplade och kan kommunicera. Det är viktigt att förstå hur de gör detta, eftersom webbapplikationer skickar information från en dator till en annan.

OSI-modell

OSI-modellen (Open Systems Interconnection) skapar en nivåbaserad strategi för att bygga ett nätverk. Det visar tydligt hur och på vilket lager enheter i samma nätverk kan interagera med varandra. Sammanlagt innehåller denna modell 7 lager:
7 Ansökan
6 Presentation
5 Session
4 Transport
3 Nätverk
2 Data länk
1 Fysisk
Genom att dela upp modellen i abstraktionslager kan utvecklare som till exempel arbetar med transportlagret inte behöva tänka på implementeringsdetaljer på nätverks- och sessionslagernivå. Detta tillvägagångssätt används också i programmering. Låt oss överväga alla lager i OSI-modellen och avgöra vilka som är av intresse för oss:
  1. Fysiskt lager — Det här lagret handlar om fysikens lagar och hur man använder dem för våra syften. Till exempel att skapa kablar och lägga dem till enheter i nätverket.

    Detta lager intresserar oss inte.

  2. Datalänklager — Detta lager ansvarar för att överföra data till nätverksnoder och skapa dataöverföringskanaler för fysiska objekt.

    Detta lager intresserar oss inte om du inte vill skriva firmware för hårdvaran som upprättar datalänkar.

  3. Nätverkslager — Detta lager är till för att bestämma enskilda nätverksanvändares adresser och rutter till dem. Det finns värde i att lära sig mer om detaljerna i detta lager, nämligen nätverksadresser.

    Nätverksadresser definieras av ett speciellt protokoll: det vanligaste är IPv4 (Internet Protocol version 4). Detta är protokollet som en webbprogrammerare behöver använda för att kontakta en annan nätverksanvändare.

    En IPv4-adress består av fyra bytevärden separerade med punkter, till exempel: 192.0.2.235. Du bör komma ihåg att dessa värden är bytes, vilket betyder att de ligger inom intervallet 0..255.

    IP-adresser är i sin tur indelade i klasser. Vi kan inte bara tilldela oss en vacker kombination av siffror, men vi kommer inte att gå särskilt djupt här. Det räcker för att förstå att en IP-adress unikt identifierar en nätverksanvändare och kan användas för att kontakta den användaren.

  4. Transportlager — Detta lager hanterar leverans av information till en adressat. Olika protokoll används för att åstadkomma detta. För närvarande är vi inte intresserade av dem. Vi är mycket mer intresserade av konceptet med en hamn , som visas i det här lagret.

    Portar är ansvariga för att identifiera en specifik applikation på en dator. Anta till exempel att du skriver en chattapp i Java, installerar den på två datorer och vill skicka ett meddelande till din kompis. Ditt meddelande paketeras, skickas till en specifik IP-adress och levereras till din kompis, men hans dator vet inte vad den ska göra med den mottagna informationen, eftersom den inte förstår vilken applikation som ska behandla ditt meddelande. När nätverksenheter kommunicerar används portar för att indikera vilken applikation som ska behandla informationen.

    Porten är ett tal i intervallet från 0 till 65535. Den läggs till i IP-adressen efter ett kolon: 192.0.2.235:8080 . Men du kan inte använda alla portar i det angivna intervallet: några av dem är reserverade för operativsystemet, andra används vanligtvis för specifika ändamål. Vi kommer inte att fördjupa oss i syftena med olika hamnar. För nu räcker det att förstå deras roll i kommunikationsprocessen på nätverket.

  5. Sessionslager — Detta lager skapar och hanterar kommunikationssessioner. På det här lagret blir det möjligt för applikationer att interagera och skicka förfrågningar på servicenivå. Vad vi behöver veta är att i det här lagret öppnas en session mellan två användare, och vi måste arbeta med sessionen.

    En session är en enhet som skapas när en anslutning upprättas mellan två användare. Den kan lagra nödvändig information om en användare och om historiken för interaktion med användaren. En viktig detalj är att när informationsutbytet upphör försvinner inte sessionen. Istället behåller den sitt tillstånd under en viss tidsperiod, så att användare kan fortsätta att utbyta information efter en paus.

    Om en applikation kommunicerar med flera användare samtidigt, upprättas ett motsvarande antal anslutningar (och därmed sessioner). Varje session har en unik identifierare (ID) som gör att applikationen kan skilja mellan de användare som den kommunicerar med.

  6. Presentationslager — Detta lager ansvarar för kodning/avkodning av data. Uppenbarligen, om vi behöver skicka strängen "Hello web" till en annan användare, omvandlas den först till (kodad som) binär kod, och först därefter skickas den. När meddelandet når mottagaren konverteras det tillbaka (avkodas) och mottagaren kan se originalsträngen. Dessa åtgärder äger rum i presentationslagret.

  7. Appliceringsskiktet är det mest intressanta lagret för oss. Det tillåter applikationer att kommunicera med nätverket. På detta lager tar vi emot och skickar meddelanden och gör förfrågningar till tjänster och fjärrdatabaser.

    Det finns många protokoll som används i detta lager: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET och, naturligtvis, HTTP/HTTPS. Ett protokoll är ett universellt avtal som vi följer när vi kommunicerar. Vi kommer definitivt att ge en separat detaljerad diskussion om HTTP/HTTPS.

Del 1. Vad du behöver veta innan du lär dig Spring och JavaEE - 2Vi behöver inte veta hur varje lager av modellen fungerar. Huvudsaken är att förstå principerna bakom driften av de element som vi kommer att behöva arbeta med när vi skriver webbapplikationer, nämligen:
  • IP-adress — Användarens adress i nätverket
  • Port — Adressen till en specifik användares applikation
  • Session — En enhet som existerar under hela kommunikationsperioden mellan två användare
  • Applikationsprotokoll (HTTP/HTTPS) — Det här är regler som vi kommer att följa när vi skriver och skickar meddelanden.
När vi till exempel besöker en webbutik anger vi dess adress och port. Vid vårt första besök skapas en session. Butiken kan spela in information i sessionen. Till exempel kan butiken spara information om varor som vi lämnade i kundvagnen. Om vi ​​stänger fliken med webbutiken och sedan går tillbaka till den senare, kommer våra varor fortfarande att finnas i varukorgen eftersom de sparas i sessionen. Naturligtvis får vi all information som vi får från butiken via HTTP/HTTPS-protokollet, och vår webbläsare vet hur den ska behandlas. Du kan invända och säga att du aldrig angett adressen och porten i webbläsaren, och du skulle delvis ha rätt. Vad du gjorde var att ange domännamnet, som konverterades av en DNS-server. Låt oss ta en bättre titt på vad som är vad här.

DNS (Domain Name System)

Som vi redan har lärt oss har varje nätverksanvändare en unik adress. Om vi ​​pratar om applikationen kommer dess unika adress att vara IPv4-adress:port . Om du känner till den här adressen kan du komma åt applikationen direkt. Föreställ dig att vi skrev en webbapplikation som visar den genomsnittliga lufttemperaturen i alla länder i realtid. Vi distribuerade den på en server med adressen 226.69.237.119, på port 8080. För att kunna ta emot information från oss måste användaren ange 5 nummer i webbläsaren: 226.69.237.119:8080. Människor gillar inte att memorera uppsättningar nummer: många av oss kan inte komma ihåg mer än två telefonnummer. Det är därför domännamnssystemetuppfanns. Vi kan skapa ett "alias" för vår adress, till exempel world-temperature.com. Istället för att leta efter oss med hjälp av en adress som består av fem svåra att komma ihåg nummer kan användaren ange vårt domännamn i webbläsarens adressfält. Det finns DNS-servrar som mappar domännamn till riktiga adresser. Till exempel, när en användare anger codegym.cc i en webbläsare, skickas hennes begäran till en DNS-server, som konverterar den till den faktiska adressen. Del 1. Vad du behöver veta innan du lär dig Spring och JavaEE - 4Detta är viktigt för oss att förstå, eftersom våra applikationer anropar fjärrtjänster både med domännamn och riktiga adresser. Vi måste förstå att i båda fallen är tjänsterna desamma. Det var allt för nu! I den här artikeln tittade vi på grunderna för nätverkande, vilket kommer att komma väl till pass när du börjar lära dig webbprogrammering.Nästa gång ska vi titta på vad en klient-server-arkitektur är och varför det är så viktigt att förstå. Del 2. Låt oss prata lite om mjukvaruarkitektur Del 3. HTTP/HTTPS Del 4. Grunderna i Maven Del 5. Servlets och Java Servlet API. Att skriva en enkel webbapplikation Del 6. Servletbehållare Del 7. Introduktion av MVC-mönstret (Model-View-Controller)
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION