Erstellen Sie ein Java-Servlet und eine JSP-WAR-Datei für die Bereitstellung auf Apache Tomcat 9 mit Gradle

Überblick

--Erstellen Sie eine WAR-Datei mit Gradle, die Java Servlet und JSP enthält

Diese Umgebung

Erstellen Sie mit Gradle eine WAR-Datei, die Java Servlet und JSP enthält

Bereiten Sie ein Verzeichnis für den Quellcode vor

Erstellen Sie dieses Mal ein Verzeichnis mit dem Namen mywebapp in einem beliebigen Verzeichnis und bereiten Sie darin einen einfachen Beispielcode vor.

$ mkdir mywebapp

$ cd mywebapp

Dateiliste

mywebapp
├── build.gradle
└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           └── MyServlet.java
        └── webapp
            ├── WEB-INF
            │   └── web.xml
            └── myjsp.jsp

build.gradle

plugins {
  id 'war'
}

repositories {
  mavenCentral()
}

dependencies {
  // Java Servlet 4.0 API
  // https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api
  providedCompile 'javax.servlet:javax.servlet-api:4.0.1'
}

// Java 14
sourceCompatibility = 14
targetCompatibility = 14

// Application
version = '1.0'

src/main/java/com/example/MyServlet.java

package com.example;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/myservlet")
public class MyServlet extends HttpServlet {

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
    res.setContentType("text/html; charset=utf-8");
    try (PrintWriter out = res.getWriter()) {
      out.println("<html><body>");
      out.println("Servlet: Hello Servlet World!<br>");
      out.println(getServletContext().getServerInfo());
      out.println("</body></html>");
    }
  }
}

src/main/webapp/myjsp.jsp

<%@ page contentType="text/html; charset=utf-8" %><html><body>
JSP: Hello JSP World!<br>
<%= pageContext.getServletContext().getServerInfo() %><br>
java.vm.name: <%= System.getProperty("java.vm.name") %><br>
java.vm.vendor: <%= System.getProperty("java.vm.vendor") %><br>
java.vm.version: <%= System.getProperty("java.vm.version") %><br>
</body></html>

src/main/webapp/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- Web Application Deployment Descriptor (Java Servlet 4.0) -->
<web-app
  xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0">

  <servlet>
    <servlet-name>myjsp</servlet-name>
    <jsp-file>/myjsp.jsp</jsp-file>
  </servlet>

  <servlet-mapping>
    <servlet-name>myjsp</servlet-name>
    <url-pattern>/myjsp</url-pattern>
  </servlet-mapping>

</web-app>

Erstellen Sie eine WAR-Datei

Erstellen Sie eine WAR-Datei mit der Gradle-Build-Aufgabe.

$ gradle build

Stellen Sie sicher, dass die WAR-Datei generiert wird.

$ file build/libs/mywebapp-1.0.war
build/libs/mywebapp-1.0.war: Zip archive data, at least v1.0 to extract

Installieren Sie Apache Tomcat 9

Bereiten Sie das Installationsverzeichnis vor

Erstellen Sie dieses Mal ein Verzeichnis mit dem Namen tomcat9 in einem beliebigen Verzeichnis und installieren Sie es in diesem Verzeichnis.

$ mkdir tomcat9

$ cd tomcat9

Laden Sie Apache Tomcat 9 herunter und entpacken Sie es

Apache Tomcat® - Apache Tomcat 9 Software Downloads

$ wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz

$ tar xf apache-tomcat-9.0.37.tar.gz

Bereiten Sie eine Java-VM zum Booten vor

Legen Sie die Umgebungsvariable JAVA_HOME fest.

$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home

$ PATH=${JAVA_HOME}/bin:${PATH}

$ java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment AdoptOpenJDK (build 14.0.1+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 14.0.1+7, mixed mode, sharing)

Stellen Sie sicher, dass Apache Tomcat 9 gestartet wird

Starten Sie Apache Tomcat 9 mit startup.sh.

$ ./apache-tomcat-9.0.37/bin/startup.sh
Using CATALINA_BASE:   /Users/foo/tomcat9/apache-tomcat-9.0.37
Using CATALINA_HOME:   /Users/foo/tomcat9/apache-tomcat-9.0.37
Using CATALINA_TMPDIR: /Users/foo/tomcat9/apache-tomcat-9.0.37/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home
Using CLASSPATH:       /Users/foo/tomcat9/apache-tomcat-9.0.37/bin/bootstrap.jar:/Users/foo/tomcat9/apache-tomcat-9.0.37/bin/tomcat-juli.jar
Tomcat started.

Stellen Sie sicher, dass Sie mit Curl darauf zugreifen und starten Sie es.

$ curl --include -s http://localhost:8080/ | head -15
HTTP/1.1 200 
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Sun, 12 Jul 2020 10:38:03 GMT




<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Apache Tomcat/9.0.37</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />

Stoppen Sie Apache Tomcat 9 mit shutdown.sh.

$ ./apache-tomcat-9.0.37/bin/shutdown.sh
Using CATALINA_BASE:   /Users/foo/tomcat9/apache-tomcat-9.0.37
Using CATALINA_HOME:   /Users/foo/tomcat9/apache-tomcat-9.0.37
Using CATALINA_TMPDIR: /Users/foo/tomcat9/apache-tomcat-9.0.37/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home
Using CLASSPATH:       /Users/foo/tomcat9/apache-tomcat-9.0.37/bin/bootstrap.jar:/Users/foo/tomcat9/apache-tomcat-9.0.37/bin/tomcat-juli.jar
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED

Stellen Sie die WAR-Datei in Apache Tomcat 9 bereit

Legen Sie die WAR-Datei im Apache Tomcat 9-Webanwendungsverzeichnis ab

$ cp mywebapp/build/libs/mywebapp-1.0.war tomcat9/apache-tomcat-9.0.37/webapps/mywebapp.war

Starten Sie Apache Tomcat 9

$ ./tomcat9/apache-tomcat-9.0.37/bin/startup.sh

Greifen Sie auf Java-Servlets und JSPs zu

Greifen Sie mit Curl auf das Java-Servlet zu und überprüfen Sie den Vorgang.

$ curl --include http://localhost:8080/mywebapp/myservlet
HTTP/1.1 200 
Content-Type: text/html;charset=utf-8
Content-Length: 94
Date: Sun, 12 Jul 2020 13:06:56 GMT

<html><body>
Servlet: Hello Servlet World!<br>
Apache Tomcat/9.0.37
</body></html>

Greifen Sie mit Curl auf die JSP zu und überprüfen Sie den Vorgang.

$ curl --include http://localhost:8080/mywebapp/myjsp.jsp
HTTP/1.1 200 
Set-Cookie: JSESSIONID=EE7C8309A86FBBEDBCEB618759FF6022; Path=/mywebapp; HttpOnly
Content-Type: text/html;charset=utf-8
Content-Length: 204
Date: Sun, 12 Jul 2020 13:07:08 GMT

<html><body>
JSP: Hello JSP World!<br>
Apache Tomcat/9.0.37<br>
java.vm.name: OpenJDK 64-Bit Server VM<br>
java.vm.vendor: AdoptOpenJDK<br>
java.vm.version: 14.0.1+7<br>
</body></html>

Referenzmaterial

Recommended Posts

Erstellen Sie ein Java-Servlet und eine JSP-WAR-Datei für die Bereitstellung auf Apache Tomcat 9 mit Gradle
Erstellen Sie ein Java-Servlet und eine JSP-WAR-Datei für die Bereitstellung auf Apache Tomcat 9 mit Gradle
Herunterladen von Dateien (Servlet, HTML, Apache, Tomcat)
Gründe, Servlet und JSP in der Java-Entwicklung getrennt zu verwenden
So erstellen Sie ein neues Gradle + Java + Jar-Projekt in Intellij 2016.03
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
So erstellen Sie eine Zip-Datei beim Gruppieren von Datenbanksuchergebnissen in Java
Server mit Spring Gradle ausführbar So erstellen Sie JAR und WAR
Versuchen Sie, ein Bulletin Board in Java zu erstellen
So stellen Sie Struts2 manuell als Kriegsdatei bereit
So komprimieren Sie eine JAVA-CSV-Datei und verwalten sie in einem Byte-Array
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
So erstellen Sie einen Daten-URI (base64) in Java
So konvertieren Sie eine Datei in ein Byte-Array in Java
[Java] Erstellen Sie eine temporäre Datei
Erstellen Sie eine JAR-Datei, die auf Gradle ausgeführt werden kann
So stellen Sie eine einfache Java-Servlet-App auf Heroku bereit
Ich möchte eine Parkettdatei auch in Ruby erstellen
So entwickeln und registrieren Sie eine Sota-App in Java
Erstellen Sie eine Java- und JavaScript-Teamentwicklungsumgebung (Gradle-Umgebungskonstruktion)
Ein einfaches CRUD-Beispiel mit Java Servlet / JSP und MySQL
SCP überträgt War-Datei an Tomcat
Erstellen Sie eine Memo-App mit Tomcat + JSP + Servlet + MySQL mit Eclipse
Erstellen Sie ein Servlet-Programm in Eclipse
Fügen Sie dem JAR-Dateinamen in Gradle einen Zeitstempel hinzu
Erstellen wir eine TODO-App in Java 13 TODO-Formularvalidierung 1: Zeichenbegrenzung · Gradle-Update zur Verwendung von @Validated
Hallo Welt in Java und Gradle
Ich möchte eine Servlet-War-Datei mit OpenJDK unter CentOS7 erstellen. Ohne mvn. Ohne Internetverbindung.
So testen Sie eine private Methode und verspotten sie teilweise in Java
Lassen Sie Apache und Tomcat unter CentOS 8 im Handumdrehen zusammenarbeiten
Erstellen eines Projekts (und eines GitHub-Repositorys) mit Java und Gradle mit IntelliJ IDEA
[Java] Erstellen Sie mit dem Befehl jar eine JAR-Datei, die sowohl komprimiert als auch nicht komprimiert ist
So zeichnen Sie JFR (Java Flight Recorder) auf und geben eine Dump-Datei aus
Haben Sie ein Werkzeug zum Erstellen und Öffnen einer neuen Leinwand in der Mac-Vorschau
So erstellen Sie Ihre eigene Anmerkung in Java und erhalten den Wert
[Java] Erstellen und Anwenden eines Folienmasters
Java-Implementierung zum Erstellen und Lösen von Labyrinthen
Stellen Sie JavaServlet-Apps lokal in Tomcat bereit
Erstellen Sie eine TODO-App in Java 7 Create Header
[Einführung in JSP + Servlet] Eine kleine Animation ♬
Beispiel zum Entpacken einer gz-Datei in Java
Von Java nach C und von C nach Java in Android Studio
Erstellen wir eine TODO-App in Java 9 Erstellen einer TODO-Anzeige Sortieren nach Datum und Uhrzeit + Setzen Sie das Fälligkeitsdatum auf das aktuelle Datum
Lassen Sie uns eine TODO-Anwendung mit Java 2 erstellen. Ich möchte eine Vorlage mit Spring Initializr erstellen und eine Hello-Welt erstellen
Erstellen Sie eine Windows-Desktopanwendung in Ruby und verteilen Sie eine ausführbare Datei (.exe)!
[Java] [POI] Erstellen Sie eine Tabelle in Word und beginnen Sie eine neue Zeile in einer Zelle
Ein Memo zum Erstellen eines einfachen Formulars, das nur HTML und CSS in Rails 6 verwendet
[Java] Ich habe versucht, über den Verbindungspool eine Verbindung mit Servlet (Tomcat) & MySQL & Java herzustellen
Erstellen wir eine vielseitige Dateispeicher (?) - Operationsbibliothek, indem wir die Dateispeicherung / -erfassung mit Java abstrahieren
Scraping und Schreiben bestimmter Elemente in eine Datei
Zwei Möglichkeiten, einen Thread in Java + @ zu starten
Erstellen Sie eine CSR mit erweiterten Informationen in Java
So zeigen Sie eine Webseite in Java an
Code zum Escapezeichen von JSON-Zeichenfolgen in Java