Ce este servlet Web
aplicații Internet în JAVA
protocoale de rețea
Deci, este ușor să încheie - Web-server este un program special care rulează pe calculatorul dumneavoastră și are un port specific. După cum sa menționat mai sus, cel mai popular portul - 80.
HTTP - cine este?
Și acum câteva cuvinte despre HTTP. HTTP - este Hypertext Transfer Protocol - Hypertext Transfer Protocol. În general, nu se transmite unele hipertext ciudat, iar textul cel mai comun, dar odată ce a fost numit așa, atunci așa să fie. Hypertext devine atunci când pokazvaet browser-ul. Este browser-ul, în conformitate cu tag-uri (vom vorbi despre ele mai târziu) formatează textul face referință (aceasta este ceea ce face textul hipertext), prezinta desene, etc.
Atunci când o aplicație creează o conexiune TCP / IP cu o altă aplicație (sau pe alt calculator din aceeași dumneavoastră), acesta poate fi imaginat ca un fel de țeavă, care este acum în ambele direcții pot fi transmise bytes.
HTTP este doar descrie ce octeți (caractere), și în ce ordine ar trebui să fie transmise către client și server să înțeleagă reciproc. HTTP este, probabil, una dintre cele mai simple protocoale. Astăzi, există două versiuni ale protocolului HTTP - 1.0 și 1.1. Cele mai frecvente sunt comenzi GET și POST. Formatul Cererea este după cum urmează:
URL-ul include calea către resursa și parametrii care sunt transmise după calea. Am pus un semn de întrebare și apoi du-te pereche <имя>=<значение> prin semnul . Intr-un fel
După cum puteți vedea, aici am solicitat resurse / RFS / spectacol și să treacă parametrii showName și secondLetter.
Primul cuvânt al servlet
Ce este un servlet. Descrieți pe scurt activitatea servlet, puteți: Web-server, care este capabil de a lucra cu servlete, Java-mașină începe, care, la rândul său execută servlet, iar servlet trimite datele pe care le va genera. Ie atunci când o cerere vine de pe un server client utilizând un fișier de configurare special poate determina care servlet pentru a efectua servlet este executat și creează o pagină HTML care serverul trimite la client.
Și acum, încă o dată, și încet 🙂
Pe server apare o solicitare de la o cerere de client conține în sine URL-ul și parametrii. Serverul are un fișier special de configurare, pe care el spune despre modul în care un servlet trebuie să se facă în cazul sosirii unui anumit URL. Un servlet este executat (în cazul în care puteți utiliza setările) și creează pagina HTML care este trimis la client.
Serverul este, în esență, un recipient (acum componente non-vizuale), care încarcă Servlets, le execută, de asteptare anumite metode și a obține rezultatele lor, trimite-l la client.
Astfel, servlet - un Java clasa care se extinde, în general, din clasa • HttpServlet și are prioritate față de metodele:
• doGet - dacă vrem să răspundă cererii servlet GET.
• doPost - dacă vrem să răspundă la cererea servlet POST.
• doPut, doDelete - dacă vrem să răspundă la UPT servlet și DELETE cerere (există în HTTP). Aceste metode sunt rareori puse în aplicare, deoarece Echipa proprii este, de asemenea, foarte rar.
• init, distruge - pentru managementul la momentul servlet, și momentul distrugerii sale.
Dacă aveți nevoie pentru a prinde toate comenzile, cea mai simplă metodă este de a redefini serviciu. Această metodă se numește atunci când cererea vine de la client. In apare HttpServlet interogare parsarea și metoda doGet cauzate conform respectivei comenzi, doPost etc.
Vom scrie un servlet foarte simplu, care afișează tradiționale Bună ziua, lume!.
Dar, mai întâi avem nevoie pentru a rula Web-server care acceptă servleturile. Cel mai simplu pentru noi să Tomcat.
HTML și XML
Pentru înțelegerea în continuare a materialului, trebuie să aveți unele cunoștințe despre cele două limbi de markup - HTML (Hyper Text Markup Language) și XML (Extensible Markup Language).
Într-un cuvânt - cele două limbi folosesc un sistem de „tag-uri.“ Tag - este un set de caractere, care este inclus în paranteze unghiulare "<«, «>“. De exemplu:
După cum vedeți, am „descoperit“ tag-ul B și după textul „închide“ ea. În principiu, nimic complicat. Este important, care va face browser-ul (sau în alte aplicații), care îndeplinesc următoarea secvență. Pentru HTML, acest lucru înseamnă că textul care nazhoditsya interior ar trebui să fie izolate „bold“ font.
Este important să se înțeleagă că HTML - este doar o modalitate de a „spune“ browser-ului cum să formatați textul. Ie folosind diferite etichete specificați informațiile dvs. vor fi afișate în orice formă. Ie HTML are un set specific de tag-uri cu care există formatarea textului - dimensiunea fontului, alinierea, culoarea de fundal, etc.
Spre deosebire de HTML programare XML - pentru a stoca structura de date. Specificați numele structurii documentului, că în cazul în care și în ce ordine este, ci pentru a arăta astfel un browser de document pe ideea nu poate fi - el ar trebui să sugereze cum să interpreteze o anumită etichetă. Puteți veni cu propriile tag-uri, care sunt foarte importante și este clar pentru tine și instrumentul. Din pacate (sau poate din fericire), acest subiect necesită o carte separată, așa că nu se va opri.
Foarte mult mi cer doar un singur lucru - să se familiarizeze cu conceptele generale ale HTML și XML pentru înțelegerea în continuare. înțelegere destul de simplu - vor învăța subtilitățile ei înșiși în viitor activitatea independentă.
Rulați Tomcat web-server
Descarca Tomcat poate fi un server - Apache Tomcat.
Pe partea stângă, veți vedea o listă de versiuni Tomcat - alege dreapta (am testat aplicarea sa la versiunea 6). ATENȚIE: Înainte de a descărca un fișier de verificare ce versiune a JVM pe care îl utilizați. Dacă 1.4, versiunea Tomcat 6.x / 5.5 nu va face. Există o bibliotecă suplimentară care rezolvă problema de compatibilitate, dar sfatul meu sincer pentru tine - da-te JVM 1.5 si vei evita problemele cu instalarea. În principiu, ați fost treci cu ușurință alte părți nu, pentru că există, de asemenea, necesită Java versiunea 1.5 sau mai mare.
În esență, descărcați fișierul pe care tocmai l-ați dezarhivați în orice director. Am crea de obicei un dosar separat în JAVA pentru a instala toate pachetele, IDE, JDK, și alte lucruri. Nu mai este nevoie fiecare pachet are propriul său director.
În viitor, voi folosi valoarea TOMCAT_HOME pentru a arăta ce director in cadrul Tomcat instalat, trebuie să faci ceva pentru a începe, pentru a seta sau schimba.
De asemenea, este foarte important - trebuie să setați un mediu JAVA_HOME variabilă. Ar trebui să specificați calea către directorul rădăcină al JDK instalat.
Pentru Windows, acest lucru se face după cum urmează:
Start-> Setări-> Controlul Panel-> System-> Avansat-> Variabile de mediu.
Pentru Unix, trebuie doar linia de comandă pentru a crea o JAVA_HOME variabilă sau să-l înregistreze în setarea inițială. (Cred că pentru cei care folosesc Unix este nici o problema).
În cazul în care memoria mea mă servește, pentru versiunile anterioare ale Tomcat a fost, de asemenea, este necesar, cu o posibilă TOMCAT_HOME variabilă, dar acum nu este necesar. Deci, noi nu putem face.
După ce ați instalat Tomcat să verifice performanța sa. Pentru a face acest lucru, du-te la directorul
Server de pornire în 8828 ms: INFO
Numărul de milisecunde, desigur, nu poate fi atât. Dacă totul merge bine, începe browser-ul și tipul în ea
8080 - acesta este portul implicit care ia Tomcat. Port 80, el nu se atinge. Deși, dacă doriți să utilizați un alt port - introduceți directorul
După cum puteți vedea, puteți schimba portul 8080 la oricare alta, care este convenabil pentru tine. Nu uitați că, dacă schimbați fișierul pe neobohdimo reporniți Tomcat. În partea din dreapta sus a inscripției va fi liniștitor Dacă vedeți această pagină prin intermediul unui browser web, aceasta înseamnă că ați configurare Tomcat cu succes. Felicitări! Și felicitări, le - ați lansat propriul dvs. personal web-server. După cum puteți vedea care le-am moștenit de la clasa biblioteca HttpServlet și suprascrie o singură metodă - doGet. Pentru diferența Java între un simbol și un octet este foarte important - ca și Java este proiectat pentru viitor, pentru simbolul-l folosește doi octeți, în loc de una așa cum a fost în limbajul C devreme sau Pascal. Că clase diferite sunt utilizate pentru tipuri diferite de I / O fluxuri. Reader / Writer - citire / intrare de caractere. InputStream / OutputStream - octeți de citire / scriere. Deci, servlet nostru asamblat și gata de instalare. Pentru instalare trebuie să facem o serie de acțiuni. Se pare destul de simplu: câteva puncte ar trebui să menționăm: Tag servlet-name conține un nume pe care am definit în secțiunea 2 (există și o etichetă de servlet-name), și adresa URL-model tag-ul include o adresă URL. Acum să ruleze Tomcat și să încercați să obțineți un răspuns de la servlet nostru. Deci, începe apelare Tomcat și linia de browser: Pentru a începe să utilizați toată baza noastră de date, trebuie să - creați un alt director și copiați JAR pentru munca noastră cu baza de date - mysql-conector-java-3.1.13-bin.jar. este director Prin urmare, calea completă către fișierul va fi: Și, desigur, ne schimbăm servlet nostru, în scopul de a aduna datele din baza de date. Noul cod pentru servlet nostru va fi ceva mai complicat. Bine ati venit la Tomcat Bine ati venit la Tomcat Vă mulțumim pentru seria dvs. de articole foarte utile. Aparent, problema cu JDK 1.8, la compilare de cmd dă următoarele: Încercarea de a compila nimic dat în zhdk 6-a, eroarea este aceeași. Deci, ce este codul. Descărcați un eșantion sau ceva diferit? Da, și propria sa, și de a descărca un eșantion Campiglio nu este, de asemenea, corectă. Pentru a compila din linia de comandă este necesar să se utilizeze o -encoding cheie suplimentară - în caz contrar într-un UTF-8 din linia de comandă cu litere românești nu pot fi compilate. Da, desigur, Campiglio, cu o cheie pe ea și a primit un caracter unmappable pentru codificarea utf-8 O eroare similară cu eroarea Alex (Alex din Romania doar simboluri care urmează să fie afișate într-un diamant cu întrebări, am afișat doar întrebări (în diferite stadii de eroare)). Nu știu de ce, dar aceste două linii aparent identice funcționează diferit. Mai întâi m-am luat un carnețel în UTF-8, un al doilea copiat aici. De ce nu este munca mea - și nu au înțeles. Mai bine să nu folosească setContentType și setCharacterEncoding. Aș adăuga că am avut o problemă cu faptul că modificările dreptul la un java fișier, compilate în clasa, doborâți în folderul corespunzător Tomcat, stimularea URL-ul, dar nu a existat nici o schimbare. cu adevărat șocant atunci când transplantat la dezvoltarea desktop-ul ... de fapt, am uimit de modul în care încă mai funcționează. configs tyscha, concepte. cum să depanare, dacă nu pornește, nu este clar, documentația oficială pe întreaga bibliotecă. este încă doar un exemplu, există un întreg întunecat, tot felul de Maven, iedera, cadre - fiecare cu propria sa logică, etc. etc ... la producția nu dozhivosh, dacă începeți de la zero. Multumesc pentru articol! Vă mulțumesc pentru cuvintele frumoase. Acest lucru - tot felul de instrumente. Așa că vreau să dau cel puțin forțele lor să înțeleagă că trebuie să ne uităm (și care parte), și nu este necesar sau nu este necesar. Multumesc pentru articol toate sa întâmplat prima dată. org.apache.tomcat
Deci, dacă ați tastat URL-ul specificat, partea din fata ochilor se va deschide pagina principală a serverului Tomcat cu un frumos și (vă asigur) este pisica foarte bine-cunoscut în colțul din stânga sus. (Deși mi se pare că acest lucru este mai mult ca un tigru - acesta poate fi modul în care aceasta este?)Cele mai populare servlet - Hello, World
Acum, ne concentrăm pe câteva puncte importante:
În cazul nostru, vom imprima textul și, prin urmare, obținerea Writer. Această clasă ne permite să scrie textul HTML cel mai normal în ea. Ce facem. Pentru a construi servlet nu va avea biblioteca standard JDK - trebuie să conectați biblioteci suplimentare. Și o astfel de bibliotecă pentru fericirea noastră este în furnizarea de Tomcat - uite-l în directorul
Fișierul web.xml trebuie să fie localizat în directorul Utilizarea bazei de date
Doar o singură problemă cu care se confruntă - nu pot realiza afișarea corectă a chirilic în browser.
textul în limba română se obține în acest fel: ............
M-am gândit că problema tomkate 8, set 6, dar problema nu a mers departe.
Poate că problema apare în timpul compilării (utilizați ideea 14).
În general, am înțeles mai mult.
caracter unmappable pentru codificarea utf-8
fiecare literă rusă.
Voi încerca să instalați o versiune mai veche zhdk
Soluția HETE la problema nu poate fi găsit.
Poate că problema cu OP de codificare, nu există aproape nici idei.
Sunt aproape de a ajunge la rupere departe de chirilic acum.
Într-adevăr rău 2 zile, ucis la problema.
Deja am dat seama. Mai întâi am deschis fișierul * .java în Notepad, salvați-l în UTF-8 format, și apoi deschideți-l în Notepad ++ și din nou, a văzut un doodle)). Fixe textul din nou în notpade și salvați fișierul. Apoi am compilat fără erori prin intermediul consolei.
Apoi, în Idea am creat un nou proiect și a schimbat toate codificarea UTF-8 (implicit au existat ferestre-1251), și apoi totul a fost bine Campiglio în Idea.
de codificare modificări la un proiect existent nu a ajutat că am încercat inițial. Pentru că am păcătuit la tomkat, atunci zhdk, este încă ceva.
Dar, apoi, din nou, este ciudat faptul că fișierul descărcat și a dat aceeași eroare atunci când compilarea, nu am văzut că încă aici pe cineva a avut astfel de probleme.
Nu-ți face griji, mă bucur că am făcut-o fix, ca AS Pușkin, experiența - fiul erorilor dificil))
fiecare literă rusă.
În general, am găsit o eroare, dar nu a înțeles ce este.
Eroarea este în această linie:
response.setContentType ( «text / html, charset = utf-8" ); - linie de defect
response.setContentType ( «text / html; charset = utf-8" ); - Linie fixă
În primul caz, stabilește un tip comun de informații care urmează să fie returnate - în acest caz HTML în UTF-8. Toate enumerate separate prin punct și virgulă.
În al doilea caz, puteți utiliza doar «utf-8" . Acest lucru indică faptul că timpii morți codificarea UTF-8.
A decis că în Tomcat reluat serviciile. El a văzut ceva în lui sau crom hashes aceleași oferte.
mâinile în jos toate acest studiu, atunci când vă imaginați volumul. Nu-mi pot imagina cum totul este studiat în universități.
Din păcate, cel mai mult în industria cererii în programarea pentru ziua curentă. = (
Problema a fost că el a făcut-o prin proiectul Maven a crescut cu dependenta, Mauger care poate ajuta. Trebuie să adăugați următorul cod în pom.xml.
Tomcat-servlet-api
8.5.3