Alıştırma - Basit bir Tomcat Java web uygulaması oluşturma
Web uygulamaları envanter yönetimi, çevrimiçi formlar ve müşteriye yönelik portallar gibi gerçek dünya görevlerini işlemek için yaygın olarak kullanılır. Bu modülde, popüler bir açık kaynak sunucu olan Apache Tomcat'i kullanarak java web uygulaması oluşturmayı ve dağıtmayı öğreneceksiniz.
Kullanıcıların gerçek zamanlı olarak veri girebileceği ve platformunuzla etkileşim kurabileceği dinamik bir web uygulaması oluşturmak için bir proje üzerinde çalışan bir geliştirici olduğunuzu varsayalım. İstemciniz bu uygulamanın test için yerel olarak ve kolay erişim için bulutta kullanılabilir olmasını istiyor. Bu kurulum, önce yerel makinenizde test etmenizi ve ardından sorunsuz bir geçiş olarak canlı bir ortama dağıtmanızı sağlar. Bu kurulumu sıfırdan oluşturmak, gelecekteki güncelleştirmeler ve yapılandırmalar için esneklik sağlar.
Bu modülde, Tomcat ile java web uygulaması oluşturma ve dağıtmaya yönelik temel adımları keşfedeceksiniz. İki seçeneğiniz vardır: hemen dağıtım için mevcut bir proje depoyu kopyalayın veya Maven ile sıfırdan yeni bir proje oluşturun. Bu modül maven projenizi ayarlamayı, Tomcat'i yapılandırmayı, uygulamayı yerel olarak dağıtmayı ve bağımlılıkları ve paketleri yönetmek için Maven gibi araçları kullanmayı kapsar.
Bu modülün sonunda, Tomcat'te Java tabanlı web uygulamaları oluşturabilecek ve dağıtabilecek ve hem yerel ortamda hem de bulutta barındırılan ortamlarda web uygulaması dağıtımını desteklemeye hazırlayabileceksiniz.
Java Tomcat web uygulaması oluşturma
Bu alıştırmada, giriş alan ve sonucu ekranda görüntüleyen minimal bir Java web uygulaması oluşturacaksınız. Ardından Tomcat kullanarak web uygulamasını bilgisayarınıza yerel olarak dağıtabilirsiniz. Aşağıdaki iki seçeneğiniz vardır:
- 1. Seçenek: Örnek depoyu kopyalayın ve web uygulamanızı hemen dağıtın.
- Seçenek 2: Sıfırdan bir Maven Tomcat projesi oluşturun.
1. Seçenek: Örnek depoyu kopyalayın ve web uygulamanızı hemen dağıtın
Depoyu kopyalamak için aşağıdaki adımları kullanın:
Aşağıdaki komutu kullanarak örnek proje deposunu kopyalayın:
git clone https://github.com/MicrosoftDocs/simple-tomcat-maven-app.gitAşağıdaki komutu kullanarak kopyalanan proje deposuna gidin:
cd simple-tomcat-app
Yerel Tomcat sunucunuzu Tomcat'e yerel olarak dağıtmak üzere yapılandırmak için aşağıdaki adımları kullanın:
Uyarı
Kullanıcı adlarını ve parolaları doğrudantomcat-users.xml ve Maven'in settings.xml gibi yapılandırma dosyalarında düz metin olarak depolamak güvenli kabul edilmez ve genellikle bu uygulamayı (özellikle üretim ortamları için) önermeyiz. Ancak, diğer alternatifler bu eğitim modülünün kapsamı dışındadır. Gerçek kullanıcı adınızı ve parolanızı kullanmayın!
Tomcat yapılandırma dosyası conf/tomcat-users.xml aşağıdaki örneğe benzemesi için düzenleyin:
<tomcat-users> <user username="your-tomcat-username" password="your-tomcat-password" roles="manager-script"/> </tomcat-users>Kimlik bilgilerinizi Maven ~/.m2/settings.xml dosyasına eklemek için aşağıdaki örneği kullanın; burada
your-tomcat-usernameöğesini bir kullanıcı adı ile veyour-tomcat-passwordöğesini bir parola ile değiştirin:<servers> <server> <id>TomcatServer</id> <username>your-tomcat-username</username> <password>your-tomcat-password</password> </server> </servers>Web uygulamanızı paketlemek ve dağıtmak için aşağıdaki komutu kullanın:
mvn clean package cargo:deploy
Dağıtımdan sonra uygulamanıza adresinden http://localhost:8080/simple-tomcat-apperişebilirsiniz.
2. Seçenek: Sıfırdan Maven Tomcat projesi oluşturma
Maven Tomcat projesini sıfırdan oluşturmak için, Maven projesini oluşturmaktan başlayıp web uygulamanızı Tomcat'e dağıtmakla biten birden çok yordamla çalışırsınız.
Maven projesi oluşturma
Java web uygulamanız için maven projesi oluşturmak için aşağıdaki komutu kullanın:
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=simple-tomcat-app \
-DarchetypeArtifactId=maven-archetype-webapp \
-DinteractiveMode=false
Aşağıdaki çıkış tipiktir:
[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] ------------------------------------------------------------------------
Artık simple-tomcat-app adlı bir klasörde yeni bir Maven web projeniz var. Artık aşağıdaki dosyaları ve dizinleri kullanabilirsiniz:
└── simple-tomcat-app
├── pom.xml
└── src
├── main
│ ├── java
│ ├── resources
│ └── webapp
│ ├── index.jsp
│ └── WEB-INF
│ └── web.xml
└── test
├── java
└── resources
Maven pom.xml dosyasını değiştirme
Aşağıdaki adımları kullanarak pom.xml dosyasını değiştirin:
aşağıdaki örneği kullanarak pom.xml açın ve Java sürümünü 21 olarak ayarlayın:
<java.version>21</java.version> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target>Aşağıdaki örneği kullanarak Tomcat ve Azure dağıtım eklentileri ekleyin:
<!-- 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>
pom.xml dosyasının tam içeriği aşağıdadır:
<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>
Web arabirimi oluşturma
Web sayfası eklemek için aşağıdaki örneği kullanarak src/main/webapp/index.jsp dosyasını düzenleyin:
<!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 oluşturma
Servlet, istekleri işleyerek ve dinamik içerik oluşturarak sunucunun özelliklerini genişletmek için kullanılan bir Java programlama sınıfıdır. Servlet'ler, Apache Tomcat gibi bir web kapsayıcısı içinde sunucu tarafında çalışır ve öncelikli olarak web uygulamalarında HTTP isteklerini işlemek için kullanılır. Bir istemci (örneğin, bir web tarayıcısı) bir web sunucusuna istek gönderdiğinde, servlet isteği işler. Servlet, veritabanlarına erişme veya diğer hizmetleri çağırma gibi gerekli iş mantığını gerçekleştirir ve istemciye geri göndermek için genellikle HTML biçiminde bir yanıt oluşturur. Servlet'ler geliştiricilerin Java kullanarak dinamik, platformdan bağımsız web uygulamaları oluşturmasını sağlar.
Bir servlet oluşturmak için aşağıdaki adımları kullanın:
Aşağıdaki komutu kullanarak dosya yapısını güncelleştirerek bir servlet ekleyin:
mkdir -p src/main/java/com/example && touch src/main/java/com/example/HelloServlet.javaAşağıdaki kod örneğini kullanarak HelloSeverlet.java dosyasının içeriğini güncelleştirin:
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>"); } }
Yeni dosya yapınız şöyle görünür:
└── simple-tomcat-app
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── HelloServlet.java
│ ├── resources
│ └── webapp
│ ├── index.jsp
│ └── WEB-INF
│ └── web.xml
└── test
├── java
└── resources
Tomcat'e yerel olarak dağıtma
Yerel Tomcat sunucunuzu dağıtmak üzere yapılandırmak için aşağıdaki adımları kullanın:
Uyarı
Kullanıcı adlarını ve parolaları doğrudantomcat-users.xml ve Maven'in settings.xml gibi yapılandırma dosyalarında düz metin olarak depolamak güvenli değildir ve özellikle üretim ortamları için genellikle önerilmez. Ancak, diğer alternatifler bu eğitim modülünün kapsamı dışındadır. Gerçek kullanıcı adınızı ve parolanızı kullanmayın!
Aşağıdaki örneği kullanarak Tomcat yapılandırma dosyası conf/tomcat-users.xml düzenleyin:
<tomcat-users> <user username="your-tomcat-username" password="your-tomcat-password" roles="manager-script"/> </tomcat-users>Aşağıdaki örneği kullanarak maven'ın ~/.m2/settings.xml dosyasına kimlik bilgilerinizi ekleyin, yerine
your-tomcat-usernamekullanıcı adı veyour-tomcat-passwordparola ekleyin:<servers> <server> <id>TomcatServer</id> <username>your-tomcat-username</username> <password>your-tomcat-password</password> </server> </servers>
Web uygulamanızı Tomcat'e dağıtma
Web uygulamanızı paketlemek ve dağıtmak için aşağıdaki komutu kullanın:
mvn clean package cargo:deploy
Dağıtımdan sonra, uygulamanız http://localhost:8080/simple-tomcat-app adresinde kullanılabilir.