Cvičení – vytvoření jednoduché webové aplikace Tomcat v Javě
Webové aplikace se běžně používají ke zpracování reálných úloh, jako je správa zásob, online formuláře a portály pro zákazníky. V tomto modulu se dozvíte, jak vytvořit a nasadit webovou aplikaci v Javě pomocí Apache Tomcatu, oblíbeného opensourcového serveru.
Předpokládejme, že pracujete na projektu a vytváříte dynamickou webovou aplikaci, ve které můžou uživatelé zadávat data a pracovat s vaší platformou v reálném čase. Váš klient chce, aby byla tato aplikace k dispozici místně pro testování a v cloudu pro snadný přístup. Toto nastavení vám umožní nejprve otestovat místní počítač a pak ho nasadit do živého prostředí jako bezproblémový přechod. Sestavení tohoto nastavení od začátku vám dává flexibilitu pro budoucí aktualizace a konfigurace.
V tomto modulu prozkoumáte základní kroky pro sestavení a nasazení webové aplikace v Javě pomocí Tomcatu. Máte dvě možnosti: buď naklonujte existující úložiště projektu pro okamžité nasazení, nebo vytvořte nový projekt úplně od začátku pomocí Mavenu. Tento modul se zabývá nastavením projektu Maven, konfigurací Tomcat, místním nasazením aplikace a používáním nástrojů, jako je Maven ke správě závislostí a balíčků.
Na konci tohoto modulu budete moct vytvářet a nasazovat webové aplikace založené na Javě na Tomcat a připravit vás na podporu nasazení webových aplikací místně i v prostředích hostovaných v cloudu.
Vytvoření webové aplikace Java Tomcat
V tomto cvičení vytvoříte minimální webovou aplikaci v Javě, která vezme vstup a zobrazí výsledek na obrazovce. Pak webovou aplikaci nasadíte místně do počítače pomocí Tomcatu. Máte následující dvě možnosti:
- Možnost 1: Naklonujte ukázkové úložiště a okamžitě nasaďte webovou aplikaci.
- Možnost 2: Vytvoření projektu Maven Tomcat od začátku
Možnost 1: Naklonujte ukázkové úložiště a okamžitě nasaďte webovou aplikaci.
Pokud chcete naklonovat úložiště, postupujte následovně:
Naklonujte ukázkové úložiště projektu pomocí následujícího příkazu:
git clone https://github.com/MicrosoftDocs/simple-tomcat-maven-app.gitPomocí následujícího příkazu přejděte do naklonovaného úložiště projektu:
cd simple-tomcat-app
Pomocí následujících kroků nakonfigurujte místní server Tomcat, abyste ho mohli nasadit místně do Tomcatu:
Výstraha
Ukládání uživatelských jmen a hesel přímo do konfiguračních souborů, jako jsoutomcat-users.xml a settings.xml Mavenu ve formátu prostého textu, se nepovažuje za bezpečné a obecně nedoporučujeme tento postup – zejména pro produkční prostředí. Jiné alternativy jsou však mimo rozsah tohoto trénovacího modulu. Nepoužívejte skutečné uživatelské jméno a heslo!
Upravte konfigurační soubor Tomcat conf/tomcat-users.xml tak, aby vypadal jako v následujícím příkladu:
<tomcat-users> <user username="your-tomcat-username" password="your-tomcat-password" roles="manager-script"/> </tomcat-users>Přidejte své přihlašovací údaje do souboru maven ~/.m2/settings.xml pomocí následujícího příkladu, kde nahradíte
your-tomcat-usernameuživatelským jménem ayour-tomcat-passwordheslem:<servers> <server> <id>TomcatServer</id> <username>your-tomcat-username</username> <password>your-tomcat-password</password> </server> </servers>Pomocí následujícího příkazu zabalte a nasaďte webovou aplikaci:
mvn clean package cargo:deploy
Po nasazení můžete k aplikaci přistupovat na adrese http://localhost:8080/simple-tomcat-app.
Možnost 2: Vytvoření projektu Maven Tomcat od začátku
Pokud chcete vytvořit projekt Maven Tomcat od začátku, projdete několik postupů, počínaje vytvořením projektu Maven a končíte nasazením webové aplikace do Tomcatu.
Vytvoření projektu Maven
Pokud chcete vytvořit projekt Maven pro webovou aplikaci v Javě, použijte následující příkaz:
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=simple-tomcat-app \
-DarchetypeArtifactId=maven-archetype-webapp \
-DinteractiveMode=false
Následující výstup je typický:
[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] ------------------------------------------------------------------------
Teď máte nový webový projekt Maven ve složce s názvem simple-tomcat-app. K dispozici jsou následující soubory a adresáře:
└── simple-tomcat-app
├── pom.xml
└── src
├── main
│ ├── java
│ ├── resources
│ └── webapp
│ ├── index.jsp
│ └── WEB-INF
│ └── web.xml
└── test
├── java
└── resources
Úprava souboru pom.xml Mavenu
Upravte soubor pom.xml pomocí následujícího postupu:
Otevřete pom.xml a nastavte verzi Javy na 21 pomocí následujícího příkladu:
<java.version>21</java.version> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target>Pomocí následujícího příkladu přidejte moduly plug-in pro nasazení Tomcat a Azure:
<!-- 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>
Tady je úplný obsah souboru pom.xml :
<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>
Vytvoření webového rozhraní
Pokud chcete přidat webovou stránku, upravte soubor src/main/webapp/index.jsp pomocí následujícího příkladu:
<!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>
Vytvoření servletu
servlet je programovací třída Java používaná k rozšíření možností serveru zpracováním požadavků a generováním dynamického obsahu. Servlety běží na straně serveru v rámci webového kontejneru , jako je Apache Tomcat, a primárně se používají ke zpracování požadavků HTTP ve webových aplikacích. Když klient – například webový prohlížeč – odešle požadavek na webový server, servlet požadavek zpracuje. Servlet provádí veškerou potřebnou obchodní logiku , například přístup k databázím nebo volání jiných služeb , a pak vygeneruje odpověď – často ve formě HTML – pro odeslání zpět klientovi. Servlets umožňuje vývojářům vytvářet dynamické webové aplikace nezávislé na platformě pomocí Javy.
K vytvoření servletu použijte následující kroky:
Pomocí následujícího příkazu aktualizujte strukturu souborů a přidejte servlet:
mkdir -p src/main/java/com/example && touch src/main/java/com/example/HelloServlet.javaAktualizujte obsah souboru HelloSeverlet.java pomocí následujícího příkladu kódu:
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>"); } }
Vaše nová struktura souborů vypadá takto:
└── simple-tomcat-app
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── HelloServlet.java
│ ├── resources
│ └── webapp
│ ├── index.jsp
│ └── WEB-INF
│ └── web.xml
└── test
├── java
└── resources
Místní nasazení do Tomcatu
Pomocí následujících kroků nakonfigurujte místní server Tomcat, abyste ho mohli nasadit:
Výstraha
Ukládání uživatelských jmen a hesel přímo do konfiguračních souborů, jako tomcat-users.xml a settings.xml Maven v prostém textu, není bezpečné a obecně se nedoporučuje, zejména pro produkční prostředí. Jiné alternativy jsou však mimo rozsah tohoto trénovacího modulu. Nepoužívejte skutečné uživatelské jméno a heslo!
Pomocí následujícího příkladu upravte konfigurační soubor Tomcat /tomcat-users.xml :
<tomcat-users> <user username="your-tomcat-username" password="your-tomcat-password" roles="manager-script"/> </tomcat-users>Přidejte své přihlašovací údaje do souboru maven ~/.m2/settings.xml pomocí následujícího příkladu a nahraďte
your-tomcat-usernameuživatelské jméno ayour-tomcat-passwordheslem:<servers> <server> <id>TomcatServer</id> <username>your-tomcat-username</username> <password>your-tomcat-password</password> </server> </servers>
Nasazení webové aplikace do Tomcatu
Pomocí následujícího příkazu zabalte a nasaďte webovou aplikaci:
mvn clean package cargo:deploy
Po nasazení je vaše aplikace k dispozici na adrese http://localhost:8080/simple-tomcat-app.