- tor hakda ;
- programma arhitekturasy barada ;
- HTTP / HTTPS protokollary hakda ;
- Maven esaslary barada;
- servletler hakda (ýönekeý web programmasy ýazmak) .
Mazmuny:
- Serwet gap
- Serwet gaplaryny nädip ulanmaly
- Tomcat gurmak we işletmek "
- Tomcat-a anketany ýerleşdirmek
- HTTP ýerine protokol ulanmak
- Şahadatnama döretmek
- Serweri gurmak
- HTML sahypalarynyň dinamiki nesli
- Tomcat üçin alternatiwalar
Serwet gap
Bu, serwerde işleýän we döreden hyzmatlarymyz bilen täsirleşip bilýän programma. Başga bir söz bilen aýdylanda, web programmamyzy serwerde işletmek islesek, ilki bilen hyzmat ediş konteýnerini ýerleşdirýäris, soň bolsa hyzmat ediş enjamlaryny ýerleşdirýäris. Işleýiş usuly ýönekeý: müşderi serwer bilen habarlaşanda, konteýner haýyşyny gaýtadan işleýär, haýsy hyzmatçynyň işlemelidigini kesgitleýär we geçirýär.Serwet gaplaryny nädip ulanmaly
Marşrutlaşdyryş haýyşlaryndan başga-da, servlet konteýner beýleki funksiýalary ýerine ýetirýär:- JSP faýllaryndan HTML sahypalaryny dinamiki döredýär.
- HTTPS habarlaryny şifrleýär / açýar.
- Serwlet dolandyryşy üçin çäklendirilen girişi üpjün edýär.
Tomcat gurmak we işletmek
-
“Tomcat” -y gurmak üçin göçürilen arhiwi gerekli bukja açyň.
-
Tomcat-yň işlemek üçin Java 8 ýa-da has ýokary wersiýasyny talap edýändigini ýadyňyzdan çykarmaň. JAVA_HOME gurşaw üýtgeýjisiniň häzirki jdk wersiýasyna degişlidigine göz ýetiriň.
-
Ondan soň , Tomcat-a ulanyjynyň girişini sazlamaly . Bu, bukjada ýerleşýän tomcat-users.xml faýlynda edilýär.
Tomcat öňünden dört rol bilen üpjün edilýär:
- manager-gui - grafiki interfeýs we ýagdaý sahypasyna girmek;
- dolandyryjy-skript - tekst interfeýsine we ýagdaý sahypasyna girmek;
- manager-jmx - JMX we status sahypasyna girmek;
- dolandyryjy-status - diňe status sahypasyna girmek.
<tomcat-users> belliginiň içinde bu rollary aç-açan ýazarys we ulanyjymyza belläris:
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="user" password="password" roles="manager-gui, manager-script, manager-jmx, manager-status"/>
Indi hemme zat başlamaga taýyn!
-
Bin bukjasynda startup.bat faýlyny işlediň (Linux-da startup.sh).
-
Birnäçe sekuntdan soň brauzeriňizde http: // localhost: 8080 / baglanyşygyny açyň . Grafiki menejer şol ýerde peýda bolar:
Şeýle menýuny görseňiz, Tomkatyň işleýändigini aňladýar.
-
Işlemeýän bolsa, JAVA_HOME we CATALINA_HOME gurşaw üýtgeýjilerini el bilen barlaň:
- JAVA_HOME - Java 8+-iň häzirki wersiýasyna salgylanmalydyr;
- CATALINA_HOME - Tomkata ýüzlenmeli ýa-da ýok bolmaly (Tomkatyň başga bir wersiýasyny görkezmeli däl).
Tomcat-a anketany ýerleşdirmek
Tomkaty işe girizmegi başardyk, şonuň üçin oňa haýsydyr bir taslama ýerleşdirmegiň wagty geldi. Öňki makaladaky hyzmatkärleri ulanalyň . MainServlet:import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/hello")
public class MainServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
HttpSession session = req.getSession();
Integer visitCounter = (Integer) session.getAttribute("visitCounter");
if (visitCounter == null) {
visitCounter = 1;
} else {
visitCounter++;
}
session.setAttribute("visitCounter", visitCounter);
String username = req.getParameter("username");
resp.setContentType("text/html");
PrintWriter printWriter = resp.getWriter();
if (username == null) {
printWriter.write("Hello, Anonymous" + "
");
} else {
printWriter.write("Hello, " + username + "
");
}
printWriter.write("Page was visited " + visitCounter + " times.");
printWriter.close();
}
}
IndexServlet:
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/")
public class IndexServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.sendRedirect(req.getContextPath() + "/hello");
}
}
Gurnamazdan ozal, hyzmatkärlerimiz söweş arhiwinde gaplanmalydyr. Adatça Maven munuň üçin ulanylýar, ýöne uruş arhiwini döretmek üçin ähli hyzmatçylaryň kartalaşdyrylan web.xml faýly gerek. Täze @WebServlet düşündirişini ulanyp, servlet ýazdyk, şonuň üçin web.xml ýok. Bagtymyza, IDEA biziň üçin hapa işleri edip biler we taslamamyzy aýratynlykda uruş arhiwine salyp biler. Munuň üçin taslama gurluşyny açmaly (Ctrl + Shift + Alt + S) -> Artefaktlar -> Islenýän gurluşy saýlaň -> "Taslama gurluşyna goşuň" -yň gapdalyndaky gutujygyny belläň -> "OK" düwmesine basyň. Ctrl + F9 kombinasiýasyny ulanyp taslama guruň. Indi söweş arhiwimiz maksatly katalogda. Faýlyň has ýönekeý bir zady üýtgedip bolar - mysal üçin servlet.war - we has amatly ýere - C: \ my \. Piwo ulanmaga taýyn bolanda, ony bir gapda goýuň . Bu iki ýol bilen edilip bilner.
-
GUI arkaly
Munuň üçin http: // localhost: 8080 / manager / html baglanyşygyna eýeriň . Tomcat, giriş we parol soramagyňyzy haýyş edýär.
Menden soň ähli ädimleri gaýtalasaň, giriş ulanyjy, parol parol .
Üstünlikli ygtyýarnamadan soň Tomcat Web Programma Dolandyryjysyny görersiňiz. Programmalar bölüminde eýýäm 5 programma bar - bular bilen işlemegi ýönekeýleşdirmek üçin zerur Tomcat peýdaly programmalar. Geljekde aýrylyp bilner.
Aşakda ýerleşdirmek bölümi. Ony ulanyp, ýerleşdirmek üçin söweş arhiwini saýlap bilersiňiz. Theol we kontekst bilen el bilen gireliň:
“Gurnamak” düwmesine basyň, programmamyzyň Programmalar bölüminde peýda bolandygyny görýäris:
Tomcat GUI ulanyp, ony duruzyp, täzeden açyp bileris, sessiýanyň uzynlygyny kesgitläp we pozup bileris. Iberilende, programmamyza http: // localhost: 8080 / demo baglanyşygy arkaly girmelidigini aňladýan kontekst / demo kesgitledik . Barlaň, hemme zat işlemeli. -
Faýl ulgamy arkaly
Bu görnüşde bir programma ýerleşdirmek üçin, Tomkatyň açylmadyk katalogyny açmaly we web sahypalaryna girmeli. Ine, biziň bilýän peýdaly programmalarymyz:
Biziň etmeli zadymyz, servlet.war-ymyzy şu ýere göçürmek.
Birnäçe sekunt garaşýarys, täze hyzmat bukjasynyň peýda bolandygyny görýäris, bu bolsa programmamyzyň ýerleşdirilendigini aňladýar. Tanyş Programma Dolandyryjy interfeýsine geçeliň - http: // localhost: 8080 / manager / . Bu ýerde, programmamyzyň / servlet kontekstinde ýerleşdirilendigini görýäris:
Şeýle usul bilen ýerleşdirilende, kontekst awtomatiki usulda ýerleşdirilen söweş arhiwiniň adyna berilýär. Konteksti üýtgetmek üçin täze döredilen bukjanyň adyny programma bilen üýtgedip bilersiňiz, ýöne ondan ozal faýly pozmaly: ýogsam Tomcat programmany arhiwiň ady bilen täzeden ýerleşdirer.
Görşüňiz ýaly, Tomcat-a programmalary ýerleşdirmek, görünişinden has aňsat. Emma beýleki funksiýalaryny ulanmak aňsat. Barlap göreliň.
HTTP ýerine protokol ulanmak
.Adyňyzda bolsa, HTTP bilen HTTPS arasyndaky tapawudy aýratyn makalada ara alyp maslahatlaşdyk . HTTPS, HTTP bilen birmeňzeş protokol, ýöne geçirilýän maglumatlaryň şifrlenmegini ulanýar. Müşderi tarapynda şifrlemek brauzer tarapyndan dolandyrylýar we serwer tarapynda şifrlemäni üpjün etmeli. HTTP haýyşlary Tomcat tarapyndan kabul edilip, ugrukdyrylandygy sebäpli, şifrlemäni bermek mantykly bolar. Munuň üçin size zerur:- Öz-özüňe gol çekilen şahadatnama döretmek;
- Goşmaça serwer sazlamalaryny düzüň.
Şahadatnama döretmek
JDK wersiýa garamazdan, köp sanly kömekçi enjamlar bilen gelýär, olaryň biri düwme düwmesi . Bu şifrlemek düwmelerini döretmek we olar bilen işlemek üçin gural. Ony ulanmak üçin buýruk setirini ulanyp, C: \ Program Files \ Java \ jdk1.8.0_181 \ bin katalogyna giriň we buýruk düwmesini -genkey -alias tomcat -keyalg RSA işlediň .- düwme - parametrleri bilen kömekçi enjamy işe girizmek;
- -genkey - täze açar döretmek isleýändigimizi görkezýär;
- -alias tomcat - esasy lakam döretmek;
- -keyalg RSA - esasy nesil algoritmi hökmünde RSA-ny saýlaň.
Serweri gurmak
Şahadatnama taýýar bolansoň, serwer sazlamalaryny, ýagny SSL birleşdirijisini sazlamaly. Bu, apache-tomcat-9.0.30 / conf / -de ýerleşýän server.xml faýlynda edilýär . Munuň ýaly bloklary tapýarys:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
we olaryň gapdalynda konfigurasiýamyzy ýerleşdirýäris:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="C:\Users\user\.keystore" keystorePass="mypass"
clientAuth="false" sslProtocol="TLS"/>
“KeystoreFile” we “keystorePass” parametrlerini bize degişli bahalary belleýäris, “shutdown.bat” we “startup.bat” faýllaryny ulanyp, Tomkaty ýatda saklaň we täzeden açyň. Indi serwer https haýyşlaryny gaýtadan işlemäge taýyn, üýtgedilen adrese azajyk - https: // localhost: 8443 / demo / salam . Baglanyşyga basanyňyzda, şahadatnamanyň şübheli boljakdygy barada duýduryş görersiňiz, bu geň däldir. Biraz öň düşündirilişi ýaly, adaty şahadatnama almak üçin sertifikat hyzmatlarynyň biriniň hyzmatlaryndan peýdalanmaly. Emma şu wagta çenli maksadymyza ýetdik: programma HTTPS protokolyny ulanyp işleýär we bu esasy zat!
HTML sahypalarynyň dinamiki nesli
Indi serwet konteýnerleriniň beýleki aýratynlyklaryna - HTML sahypalarynyň dinamiki nesline syn bermegi dowam etdireliň. Statik HTML kody içgysgynç ýerine, üýtgeýänleri, aýlawlary, massiwleri we beýleki dil gurluşlaryny ulanyp, JAVA koduny ýazyp boljak ideal dünýäni göz öňüne getiriň. Göz öňüne getirdiňizmi? Gowy habar, şuňa meňzeş bir zadyň barlygy, erbet habar bolsa düýbünden ýoklugy. Eger çaklamadyk bolsaňyz, JSP (Java Server Pages) tehnologiýasy hakda gürleşýäris. Gysgaça aýdylanda, bu size JAVA kodunyň böleklerini HTML sahypasyna salmaga mümkinçilik berýän tehnologiýa. Dogry, onda bu kod müşderä iberilmezden ozal HTML-e öwrülýär, ýöne dürli faktorlary göz öňünde tutup dinamiki dörediler. Mysal üçin, şertli gurluşlary ulanyp, käbir şertlere baglylykda dürli mazmuna hyzmat edip bilersiňiz. Mysal JSP sahypasy:<%@ page language="java"" %>
<html>
<head>
<title>JSP</title>
</head>
<body>
<%
String firstName="name";
String secondName="surname";
if(firstName.equals("name")){
out.print("Hello :"+firstName+"<br>");
}
if(firstName.equals("name") && secondName.equals("surname"))
{
out.print("Hello, my dear friend! <br>");
}
else
{
out.print("I don’t know you. Go away! <br>");
}
%>
</body>
</html>
JSP hakda has giňişleýin maglumaty şu ýerden okap bilersiňiz . Aslynda ... biz munuň üçin däl, hyzmat ediş gaplary üçin! JSP bilen näme baglanyşygy bar? Bu ýönekeý: JAVA koduny JSP-den HTML kodyna öwürmek servlet konteýner tarapyndan amala aşyrylýar. Serwlet JSP mazmunyny jogap hökmünde yzyna gaýtarjak bolanda, konteýner üns berýär we şol mazmuny müşderä ibermezden ozal ony brauzerde okalýan HTML sahypasyna öwürýär. Häzirki wagtda JSP tehnologiýasynyň köp meňzeşleri bar - Thymeleaf, FreeMarket, Mustache we başgalar. Olaryň hemmesi meňzeş prinsipde işleýärler. Iş üçin haýsysyny saýlamaly, tagam meselesi. Bu, hyzmat ediş gapyny saýlamaga hem degişlidir. Mysallarda iň köp ýaýran konteýner Tomkaty ulanýardyk, ýöne käbir taslamalarda beýlekiler ulanylýar. Iň meşhurlary bilen gysgaça tanyşmaga we Tomkatdan tapawudyna göz aýlamaly.
Tomcat üçin alternatiwalar
-
GlassFish , Oracle tarapyndan goldanýan açyk çeşme gap.
Tomkatdan tapawutlylykda, hyzmatlardan başga-da, JavaEE çarçuwasyndaky beýleki komponentleri işledip bilýän doly hukukly web serweri. Şol bir wagtyň özünde has köp RAM ulanýar. Serweri gowy düzeniňizde has çeýe, bu bolsa ulanmagy has kynlaşdyrýar. JavaEE çarçuwasyny ulanyp, programmalar düzülende ulanmaga mynasyp.
-
WildFly - öňki Jboss . Şeýle hem açyk çeşme. Red Hat tarapyndan işlenip düzüldi. Başga bir kompaniýa önümi - JBoss Enterprise Programma Platformasy bilen bulaşmazlyk üçin ady üýtgedildi.
“WildFly”, “GlassFish” ýaly, doly hukukly serwerdir. Wayeri gelende aýtsak, “WildFly” kapotyň aşagynda Tomkaty hyzmat ediş gapy hökmünde ulanýar. “GlassFish” -den tapawutlylykda “WildFly” has ýeňil we gurmak has aňsat.
-
Jetty - öňkülerine meňzeş, açyk çeşme. “Eclipse” tarapyndan işlenip düzüldi.
Tomcat ýaly, JavaEE çarçuwasynyň ähli böleklerine goldaw bolmazdan, ýönekeý serwet konteýner. Şol bir wagtyň özünde has ýeňil we hatda jübi telefonynda hem işledip bolýar. Çalt başlaýar we saklanýar we gowy terezini alýar. Tomkatdan tapawutlylykda, has kiçi jemgyýet we bilim bazasy bar.
-
WebLogic , ulanmazdan ozal satyn almagy talap edýän ygtyýarly programma üpjünçiligi. “Oracle” -yň eýeçiligi.
Tomkat bilen deňeşdirilende, onuň işleýşi birneme giňdir. Ftp protokoly bilen işläp biler. Emma programmalary işläp düzmekde we synagdan geçirmekde beýle çeýe däl.
-
WebSphere (has takygy WebSphere Programma Serweri) tölegli programma üpjünçiligi. IBM tarapyndan işlenip düzüldi. “WildFly” we “GlassFish” ýaly, bu doly hukukly programma serweri. Itöne has amatly gurnama interfeýsi we ýokary amaly ygtybarlylygy bar.
Zyýanly tarapy, köp serişdäni ulanýar, başlamak we durmak üçin köp wagt alýar, bu kiçi taslamalary işläp düzmekde gaty amatly däl.
GO TO FULL VERSION