Gyakorlat – Egyszerű Tomcat Java-webalkalmazás létrehozása

Befejeződött

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:

  1. Klónozza a mintaprojekt-adattárat a következő paranccsal:

    git clone https://github.com/MicrosoftDocs/simple-tomcat-maven-app.git
    
    
  2. Lé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!

  1. 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>
    
  2. Adja hozzá hitelesítő adatait a Maven ~/.m2/settings.xml fájlhoz az alábbi példa alapján, ahol your-tomcat-username felhasználónevet és your-tomcat-password jelszót állítson be:

    <servers>
        <server>
            <id>TomcatServer</id>
            <username>your-tomcat-username</username>
            <password>your-tomcat-password</password>
        </server>
    </servers>
    
  3. 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:

  1. 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>
    
  2. 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:

  1. 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.java
    
  2. Frissí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!

  1. 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>
    
  2. Adja hozzá a hitelesítő adatait a Maven ~/.m2/settings.xml fájlhoz az alábbi példát követve, a your-tomcat-username helyére írja be a felhasználónevét, a your-tomcat-password helyé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.