--Erstellen Sie eine WAR-Datei mit Gradle, die Java Servlet und JSP enthält
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
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 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
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
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
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)
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
$ cp mywebapp/build/libs/mywebapp-1.0.war tomcat9/apache-tomcat-9.0.37/webapps/mywebapp.war
$ ./tomcat9/apache-tomcat-9.0.37/bin/startup.sh
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>