Gyakorlat – Egyszerű Tomcat Java-webalkalmazás létrehozása
A webalkalmazásokat széles körben használják olyan valós feladatok kezelésére, mint a leltárkezelés, az online űrlapok és az ügyféloldali portálok. Ebben a modulban megtudhatja, hogyan hozhat létre és helyezhet üzembe Java-webalkalmazásokat az Apache Tomcat, egy népszerű nyílt forráskódú kiszolgáló használatával.
Tegyük fel, hogy Ön egy fejlesztő, aki egy projekten dolgozik egy dinamikus webalkalmazás létrehozásán, ahol a felhasználók adatokat írhatnak be, és valós időben kezelhetik a platformot. Az ügyfél azt szeretné, hogy az alkalmazás helyileg elérhető legyen tesztelés céljából, valamint a felhőben a könnyű hozzáférés érdekében. Ez a beállítás lehetővé teszi, hogy először tesztelje a helyi gépet, majd zökkenőmentes átmenetként helyezze üzembe az élő környezetben. Ennek a beállításnak az alapoktól való létrehozása rugalmasságot biztosít a jövőbeli frissítésekhez és konfigurációkhoz.
Ebben a modulban megismerheti a Java-webalkalmazások Tomcattel való létrehozásának és üzembe helyezésének alapvető lépéseit. Két lehetősége van: klónozhat egy meglévő projekt-adattárat az azonnali üzembe helyezéshez, vagy új projektet hozhat létre a Mavennel. Ez a modul bemutatja a Maven-projekt beállítását, a Tomcat konfigurálását, az alkalmazás helyi üzembe helyezését, valamint a függőségek és csomagok kezelésére szolgáló eszközök, például a Maven használatát.
A modul végére Java-alapú webalkalmazásokat hozhat létre és helyezhet üzembe a Tomcaten, felkészítve a webalkalmazások helyi és felhőalapú környezetekben való üzembe helyezésének támogatására.
Java Tomcat-webalkalmazás létrehozása
Ebben a gyakorlatban létrehoz egy minimális Java-webalkalmazást, amely bemenetet vesz igénybe, és megjeleníti az eredményt a képernyőn. Ezután helyileg telepítheti a webalkalmazást a számítógépen a Tomcat használatával. A következő két lehetőség közül választhat:
- 1. lehetőség: Klónozza a mintaadattárat, és azonnal telepítse a webalkalmazást.
- 2. lehetőség: Hozzon létre egy Maven Tomcat-projektet az alapoktól.
1. lehetőség: A mintaadattár klónozása és a webalkalmazás azonnali üzembe helyezése
Az adattár klónozásához kövesse az alábbi lépéseket:
Klónozza a mintaprojekt-adattárat a következő paranccsal:
git clone https://github.com/MicrosoftDocs/simple-tomcat-maven-app.gitLépjen a klónozott projekt-adattárra az alábbi paranccsal:
cd simple-tomcat-app
A következő lépésekkel konfigurálhatja a helyi Tomcat-kiszolgálót, hogy helyileg üzembe helyezhesse a Tomcatet:
Figyelmeztetés
A felhasználónevek és jelszavak közvetlen tárolása olyan konfigurációs fájlokban, mint atomcat-users.xml és a Maven settings.xml egyszerű szövegben nem tekinthető biztonságosnak, és általában nem javasoljuk ezt a gyakorlatot – különösen éles környezetekben. Más alternatívák azonban nem tartoznak a képzési modul hatókörébe. Ne használja a valódi felhasználónevet és jelszót!
Szerkessze a Tomcat konfigurációs fájl conf/tomcat-users.xml fájlját, hogy az a következő példához hasonlóan nézzen ki:
<tomcat-users> <user username="your-tomcat-username" password="your-tomcat-password" roles="manager-script"/> </tomcat-users>Adja hozzá hitelesítő adatait a Maven ~/.m2/settings.xml fájlhoz az alábbi példa alapján, ahol
your-tomcat-usernamefelhasználónevet ésyour-tomcat-passwordjelszót állítson be:<servers> <server> <id>TomcatServer</id> <username>your-tomcat-username</username> <password>your-tomcat-password</password> </server> </servers>A webalkalmazás csomagolásához és üzembe helyezéséhez használja az alábbi parancsot:
mvn clean package cargo:deploy
Az üzembe helyezés után elérheti az alkalmazást a . címen http://localhost:8080/simple-tomcat-app.
2. lehetőség: Maven Tomcat-projekt létrehozása az alapoktól
Ha teljesen új Maven Tomcat-projektet szeretne létrehozni, több eljáráson kell dolgoznia, kezdve a Maven-projekt létrehozásával, majd a webalkalmazás Tomcatben való üzembe helyezésével.
Maven-projekt létrehozása
Ha Maven-projektet szeretne létrehozni a Java-webalkalmazáshoz, használja a következő parancsot:
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=simple-tomcat-app \
-DarchetypeArtifactId=maven-archetype-webapp \
-DinteractiveMode=false
A következő kimenet jellemző:
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /home/XXXXXXXX/LearnProjects/simple-tomcat-maven-app
[INFO] Parameter: package, Value: com.microsoft.azure.samples
[INFO] Parameter: groupId, Value: com.microsoft.azure.samples
[INFO] Parameter: artifactId, Value: azure-javaweb-app-simple
[INFO] Parameter: packageName, Value: com.microsoft.azure.samples
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /private/tmp/TMP/azure-javaweb-app
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.657 s
[INFO] Finished at: 2024-10-18T12:39:41-07:00
[INFO] ------------------------------------------------------------------------
Most már van egy új Maven-webprojekt egy simple-tomcat-app nevű mappában. A következő fájlok és könyvtárak válnak elérhetővé:
└── simple-tomcat-app
├── pom.xml
└── src
├── main
│ ├── java
│ ├── resources
│ └── webapp
│ ├── index.jsp
│ └── WEB-INF
│ └── web.xml
└── test
├── java
└── resources
A Maven pom.xml fájl módosítása
Módosítsa a pom.xml fájlt az alábbi lépésekkel:
Nyissa meg apom.xml , és állítsa a Java-verziót 21-esre az alábbi példával:
<java.version>21</java.version> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target>Az alábbi példával adhat hozzá Tomcat- és Azure-telepítési beépülő modulokat:
<!-- Tomcat 10 Maven Plugin --> <plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven3-plugin</artifactId> <version>1.9.9</version> <configuration> <!-- Container Configuration --> <container> <containerId>tomcat10x</containerId> <type>remote</type> </container> <!-- Configuration for Remote Deployment --> <configuration> <type>runtime</type> <properties> <cargo.remote.uri>http://localhost:8080/manager/text</cargo.remote.uri> <cargo.remote.username>cargo</cargo.remote.username> <cargo.remote.password>your-cargo-password</cargo.remote.password> </properties> </configuration> <!-- Deployable Artifact Configuration --> <deployables> <deployable> <groupId>${project.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> <type>war</type> <properties> <context>${project.artifactId}</context> </properties> </deployable> </deployables> </configuration> </plugin>
A pom.xml fájl teljes tartalma:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>simple-tomcat-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>simple-tomcat-app</name>
<properties>
<java.version>21</java.version>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>simple-tomcat-app</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<!-- Tomcat 10 Maven Plugin -->
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven3-plugin</artifactId>
<version>1.9.9</version>
<configuration>
<!-- Container Configuration -->
<container>
<containerId>tomcat10x</containerId>
<type>remote</type>
</container>
<!-- Configuration for Remote Deployment -->
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.uri>http://localhost:8080/manager/text</cargo.remote.uri>
<cargo.remote.username>cargo</cargo.remote.username>
<cargo.remote.password>your-cargo-password</cargo.remote.password>
</properties>
</configuration>
<!-- Deployable Artifact Configuration -->
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<properties>
<context>${project.artifactId}</context>
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
</plugins>
</build>
</project>
Webes felület létrehozása
Weblap hozzáadásához szerkessze az src/main/webapp/index.jsp fájlt az alábbi példával:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Simple Tomcat App</title>
</head>
<body>
<h1>Welcome to the Simple Tomcat App</h1>
<form action="hello" method="get">
<label for="name">Enter your name:</label>
<input type="text" id="name" name="name">
<button type="submit">Submit</button>
</form>
</body>
</html>
Servlet létrehozása
A servlet egy Java-programozási osztály, amely a kérések kezelésével és dinamikus tartalom generálásával bővíti a kiszolgáló képességeit. A Servletek a webtárolók kiszolgálóoldalán futnak – például apache Tomcat –, és elsősorban a WEBalkalmazásokban található HTTP-kérések feldolgozására szolgálnak. Amikor egy ügyfél – például egy webböngésző – kérést küld egy webkiszolgálónak, a servlet feldolgozza a kérést. A servlet végrehajtja a szükséges üzleti logikát – például adatbázisok elérését vagy más szolgáltatások hívását –, majd létrehoz egy - gyakran HTML formátumú - választ az ügyfélnek való visszaküldéshez. A Servlets lehetővé teszi a fejlesztők számára, hogy dinamikus, platformfüggetlen webalkalmazásokat hozzanak létre a Java használatával.
A servlet létrehozásához kövesse az alábbi lépéseket:
Frissítse a fájlstruktúrát egy servlet hozzáadásához az alábbi paranccsal:
mkdir -p src/main/java/com/example && touch src/main/java/com/example/HelloServlet.javaFrissítse a HelloSeverlet.java fájl tartalmát az alábbi példakód használatával:
package com.example; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/hello") public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); response.setContentType("text/html"); response.getWriter().write("<h1>Hello, " + name + "!</h1>"); } }
Az új fájlstruktúra a következőképpen néz ki:
└── simple-tomcat-app
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── HelloServlet.java
│ ├── resources
│ └── webapp
│ ├── index.jsp
│ └── WEB-INF
│ └── web.xml
└── test
├── java
└── resources
Helyi üzembe helyezés a Tomcatben
A következő lépésekkel konfigurálhatja a helyi Tomcat-kiszolgálót, hogy üzembe helyezhesse azt:
Figyelmeztetés
A felhasználónevek és jelszavak közvetlen tárolása olyan konfigurációs fájlokban, mint atomcat-users.xml és a Maven settings.xml egyszerű szövegben nem biztonságos, és általában nem ajánlott, különösen a produkciós környezetekben. Más alternatívák azonban nem tartoznak a képzési modul hatókörébe. Ne használja a valódi felhasználónevet és jelszót!
Szerkessze a Tomcat konfigurációs fájl conf/tomcat-users.xml fájlját az alábbi példával:
<tomcat-users> <user username="your-tomcat-username" password="your-tomcat-password" roles="manager-script"/> </tomcat-users>Adja hozzá a hitelesítő adatait a Maven ~/.m2/settings.xml fájlhoz az alábbi példát követve, a
your-tomcat-usernamehelyére írja be a felhasználónevét, ayour-tomcat-passwordhelyére pedig a jelszavát.<servers> <server> <id>TomcatServer</id> <username>your-tomcat-username</username> <password>your-tomcat-password</password> </server> </servers>
A webalkalmazás üzembe helyezése a Tomcatben
A webalkalmazás csomagolásához és üzembe helyezéséhez használja az alábbi parancsot:
mvn clean package cargo:deploy
A telepítés után az alkalmazása elérhető a következő címen: http://localhost:8080/simple-tomcat-app.