Servlet_JSP_Tomcat
ディレクトリ構成
- Servlet_JSP_Tomcat/app/src
.
├── main
│ ├── java
│ │ └── ittimfn
│ │ └── servlet
│ │ └── MyServlet.java
│ ├── resources
│ └── webapp
│ ├── WEB-INF
│ │ └── web.xml
│ └── jsp
│ └── myjsp.jsp
└── test
├── java
│ └── ittimfn
│ └── servlet
│ └── AppTest.java
└── resources
13 directories, 4 files
./main/java/ittimfn/servlet/MyServlet.java
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package ittimfn.servlet;
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("サーブレット: Hello Servlet World!<br>");
out.println(getServletContext().getServerInfo());
out.println("</body></html>");
}
}
}
./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>/jsp/myjsp.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>myjsp</servlet-name>
<url-pattern>/myjsp</url-pattern>
</servlet-mapping>
</web-app>
./main/webapp/jsp/myjsp.jsp
<%@ page contentType="text/html; charset=utf-8" %><html><body>
ジェイエスピー: 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>
build.gradle
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java application project to get you started.
* For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
* User Manual available at https://docs.gradle.org/7.6/userguide/building_java_projects.html
*/
plugins {
// Apply the application plugin to add support for building a CLI application in Java.
id 'application'
id 'war'
}
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
}
dependencies {
// Use JUnit Jupiter for testing.
testImplementation 'org.junit.jupiter:junit-jupiter:5.9.1'
// This dependency is used by the application.
implementation 'com.google.guava:guava:31.1-jre'
providedCompile 'javax.servlet:javax.servlet-api:4.0.1'
}
application {
// Define the main class for the application.
mainClass = 'ittimfn.servlet.App'
}
sourceCompatibility = 17
targetCompatibility = 17
tasks.named('test') {
// Use JUnit Platform for unit tests.
useJUnitPlatform()
}
実行
ビルド
デプロイ
# コンテナが起動している場合は止めておく。
cd docker
docker-compose stop
cd ..
# シンボリックリンクは機能しないので、ファイルコピーする。
cp ./app/build/libs/app.war ./docker/webapps/
起動
cd docker
docker-compose up -d
url
参考