ServletResponse.setContentTypeで、Contenty-Typeをセットする。
ServletResponse (Java(TM) EE 7 Specification APIs)
今回は、Fedora41のVSCodeでやる。
まず、Mavenのインストール。
bg1@vbox:~$ sudo dnf install maven リポジトリの更新を読み込み中: リポジトリを読み込みました。 Package Arch Version Repository Size Installing: maven noarch 1:3.9.6-7.fc41 fedora 21.8 KiB Installing dependencies: aopalliance noarch 1.0-40.fc41 fedora 11.4 KiB apache-commons-cli noarch 1.8.0-2.fc41 fedora 126.1 KiB apache-commons-codec noarch 1.17.1-2.fc41 fedora 404.2 KiB apache-commons-io noarch 1:2.16.1-2.fc41 fedora 639.0 KiB apache-commons-lang3 noarch 3.14.0-6.fc41 fedora 785.1 KiB atinject noarch 1.0.5-13.fc41 fedora 26.9 KiB cdi-api noarch 2.0.2-15.fc41 fedora 67.6 KiB google-guice noarch 5.1.0-13.fc41 fedora 676.0 KiB guava noarch 33.2.1-2.fc41 fedora 2.9 MiB httpcomponents-client noarch 4.5.14-9.fc41 fedora 848.1 KiB httpcomponents-core noarch 4.4.16-9.fc41 fedora 1.1 MiB jakarta-annotations noarch 1.3.5-23.fc41 fedora 74.6 KiB jansi x86_64 2.4.1-4.fc41 fedora 180.3 KiB jcl-over-slf4j noarch 1.7.36-2.fc41 fedora 19.6 KiB jsr-305 noarch 3.0.2-17.fc41 fedora 44.7 KiB maven-lib noarch 1:3.9.6-7.fc41 fedora 1.9 MiB maven-openjdk21 noarch 1:3.9.6-7.fc41 fedora 38.0 B maven-resolver noarch 1:1.9.18-5.fc41 fedora 985.0 KiB maven-shared-utils noarch 3.4.2-8.fc41 fedora 166.6 KiB maven-wagon noarch 3.5.3-8.fc41 fedora 166.7 KiB plexus-cipher noarch 2.0-12.fc41 fedora 30.3 KiB plexus-classworlds noarch 2.8.0-4.fc41 fedora 71.3 KiB plexus-containers-component-annotations noarch 2.2.0-4.fc41 fedora 18.2 KiB plexus-interpolation noarch 1.27-4.fc41 fedora 85.6 KiB plexus-sec-dispatcher noarch 2.0-14.fc41 fedora 40.1 KiB plexus-utils noarch 3.5.1-8.fc41 fedora 287.0 KiB publicsuffix-list noarch 20250616-1.fc41 updates 332.8 KiB sisu noarch 1:0.3.5-15.fc41 fedora 589.9 KiB slf4j noarch 1.7.36-2.fc41 fedora 80.5 KiB Transaction Summary: Installing: 30 packages パッケージサイズ 10 MiB 、ダウンロードサイズ 10 MiB 。 完了後、12 MiB のサイズが利用されます(インストール 12 MiB、削除 0 B)。 Is this ok [y/N]: y [ 1/30] maven-1:3.9.6-7.fc41.noarch 100% | 44.3 KiB/s | 18.0 KiB | 00m00s [ 2/30] apache-commons-lang3-0:3.14.0-6.fc41.noarch 100% | 387.7 KiB/s | 616.8 KiB | 00m02s [ 3/30] apache-commons-cli-0:1.8.0-2.fc41.noarch 100% | 29.5 KiB/s | 89.7 KiB | 00m03s [ 4/30] maven-lib-1:3.9.6-7.fc41.noarch 100% | 479.0 KiB/s | 1.6 MiB | 00m03s [ 5/30] atinject-0:1.0.5-13.fc41.noarch 100% | 12.9 KiB/s | 22.9 KiB | 00m02s [ 6/30] google-guice-0:5.1.0-13.fc41.noarch 100% | 330.8 KiB/s | 606.3 KiB | 00m02s [ 7/30] jakarta-annotations-0:1.3.5-23.fc41.noarch 100% | 28.9 KiB/s | 44.9 KiB | 00m02s [ 8/30] guava-0:33.2.1-2.fc41.noarch 100% | 1.1 MiB/s | 2.5 MiB | 00m02s [ 9/30] maven-shared-utils-0:3.4.2-8.fc41.noarch 100% | 117.8 KiB/s | 148.6 KiB | 00m01s [10/30] maven-resolver-1:1.9.18-5.fc41.noarch 100% | 475.7 KiB/s | 753.0 KiB | 00m02s [11/30] jansi-0:2.4.1-4.fc41.x86_64 100% | 39.3 KiB/s | 116.8 KiB | 00m03s [12/30] plexus-cipher-0:2.0-12.fc41.noarch 100% | 16.3 KiB/s | 25.4 KiB | 00m02s [13/30] maven-wagon-0:3.5.3-8.fc41.noarch 100% | 50.7 KiB/s | 107.6 KiB | 00m02s [14/30] plexus-classworlds-0:2.8.0-4.fc41.noarch 100% | 38.7 KiB/s | 60.8 KiB | 00m02s [15/30] plexus-containers-component-annotations-0:2.2.0-4.fc41.noarch 100% | 11.5 KiB/s | 17.1 KiB | 00m01s [16/30] plexus-interpolation-0:1.27-4.fc41.noarch 100% | 52.0 KiB/s | 80.0 KiB | 00m02s [17/30] plexus-utils-0:3.5.1-8.fc41.noarch 100% | 161.5 KiB/s | 262.0 KiB | 00m02s [18/30] sisu-1:0.3.5-15.fc41.noarch 100% | 335.3 KiB/s | 516.0 KiB | 00m02s [19/30] plexus-sec-dispatcher-0:2.0-14.fc41.noarch 100% | 11.6 KiB/s | 33.4 KiB | 00m03s [20/30] slf4j-0:1.7.36-2.fc41.noarch 100% | 43.3 KiB/s | 67.9 KiB | 00m02s [21/30] aopalliance-0:1.0-40.fc41.noarch 100% | 9.5 KiB/s | 15.2 KiB | 00m02s [22/30] jsr-305-0:3.0.2-17.fc41.noarch 100% | 23.2 KiB/s | 35.3 KiB | 00m02s [23/30] apache-commons-codec-0:1.17.1-2.fc41.noarch 100% | 203.5 KiB/s | 313.4 KiB | 00m02s [24/30] httpcomponents-client-0:4.5.14-9.fc41.noarch 100% | 429.2 KiB/s | 663.2 KiB | 00m02s [25/30] httpcomponents-core-0:4.4.16-9.fc41.noarch 100% | 397.1 KiB/s | 639.4 KiB | 00m02s [26/30] jcl-over-slf4j-0:1.7.36-2.fc41.noarch 100% | 16.5 KiB/s | 23.8 KiB | 00m01s [27/30] publicsuffix-list-0:20250616-1.fc41.noarch 100% | 270.9 KiB/s | 89.9 KiB | 00m00s [28/30] apache-commons-io-1:2.16.1-2.fc41.noarch 100% | 325.0 KiB/s | 478.1 KiB | 00m01s [29/30] maven-openjdk21-1:3.9.6-7.fc41.noarch 100% | 38.3 KiB/s | 9.1 KiB | 00m00s [30/30] cdi-api-0:2.0.2-15.fc41.noarch 100% | 33.8 KiB/s | 53.5 KiB | 00m02s ------------------------------------------------------------------------------------------------------------------------------------------------------------- [30/30] Total 100% | 562.6 KiB/s | 9.9 MiB | 00m18s トランザクションを実行中 [ 1/32] パッケージ ファイルを検証 100% | 300.0 B/s | 30.0 B | 00m00s [ 2/32] トランザクションの準備 100% | 39.0 B/s | 30.0 B | 00m01s [ 3/32] インストール中 slf4j-0:1.7.36-2.fc41.noarch 100% | 452.7 KiB/s | 83.3 KiB | 00m00s [ 4/32] インストール中 atinject-0:1.0.5-13.fc41.noarch 100% | 696.3 KiB/s | 27.9 KiB | 00m00s [ 5/32] インストール中 plexus-utils-0:3.5.1-8.fc41.noarch 100% | 6.7 MiB/s | 288.2 KiB | 00m00s [ 6/32] インストール中 httpcomponents-core-0:4.4.16-9.fc41.noarch 100% | 18.3 MiB/s | 1.1 MiB | 00m00s [ 7/32] インストール中 plexus-cipher-0:2.0-12.fc41.noarch 100% | 735.3 KiB/s | 31.6 KiB | 00m00s [ 8/32] インストール中 jcl-over-slf4j-0:1.7.36-2.fc41.noarch 100% | 819.2 KiB/s | 20.5 KiB | 00m00s [ 9/32] インストール中 apache-commons-codec-0:1.17.1-2.fc41.noarch 100% | 8.4 MiB/s | 406.0 KiB | 00m00s [10/32] インストール中 plexus-containers-component-annotations-0:2.2.0-4.fc41.noarch 100% | 857.3 KiB/s | 19.7 KiB | 00m00s [11/32] インストール中 plexus-classworlds-0:2.8.0-4.fc41.noarch 100% | 1.9 MiB/s | 73.0 KiB | 00m00s [12/32] インストール中 plexus-sec-dispatcher-0:2.0-14.fc41.noarch 100% | 2.5 MiB/s | 41.3 KiB | 00m00s [13/32] インストール中 cdi-api-0:2.0.2-15.fc41.noarch 100% | 2.0 MiB/s | 69.2 KiB | 00m00s [14/32] インストール中 sisu-1:0.3.5-15.fc41.noarch 100% | 13.7 MiB/s | 591.1 KiB | 00m00s [15/32] インストール中 publicsuffix-list-0:20250616-1.fc41.noarch 100% | 3.7 MiB/s | 333.8 KiB | 00m00s [16/32] インストール中 httpcomponents-client-0:4.5.14-9.fc41.noarch 100% | 16.3 MiB/s | 850.1 KiB | 00m00s [17/32] インストール中 maven-wagon-0:3.5.3-8.fc41.noarch 100% | 3.9 MiB/s | 169.5 KiB | 00m00s [18/32] インストール中 apache-commons-io-1:2.16.1-2.fc41.noarch 100% | 18.4 MiB/s | 640.6 KiB | 00m00s [19/32] インストール中 maven-shared-utils-0:3.4.2-8.fc41.noarch 100% | 6.6 MiB/s | 168.0 KiB | 00m00s [20/32] インストール中 jsr-305-0:3.0.2-17.fc41.noarch 100% | 522.2 KiB/s | 50.7 KiB | 00m00s [21/32] インストール中 guava-0:33.2.1-2.fc41.noarch 100% | 30.5 MiB/s | 2.9 MiB | 00m00s [22/32] インストール中 aopalliance-0:1.0-40.fc41.noarch 100% | 794.5 KiB/s | 11.9 KiB | 00m00s [23/32] インストール中 google-guice-0:5.1.0-13.fc41.noarch 100% | 15.7 MiB/s | 677.1 KiB | 00m00s [24/32] インストール中 plexus-interpolation-0:1.27-4.fc41.noarch 100% | 3.2 MiB/s | 86.4 KiB | 00m00s [25/32] インストール中 jansi-0:2.4.1-4.fc41.x86_64 100% | 3.5 MiB/s | 182.5 KiB | 00m00s [26/32] インストール中 jakarta-annotations-0:1.3.5-23.fc41.noarch 100% | 1.3 MiB/s | 76.5 KiB | 00m00s [27/32] インストール中 apache-commons-lang3-0:3.14.0-6.fc41.noarch 100% | 10.8 MiB/s | 786.7 KiB | 00m00s [28/32] インストール中 apache-commons-cli-0:1.8.0-2.fc41.noarch 100% | 3.8 MiB/s | 127.9 KiB | 00m00s [29/32] インストール中 maven-resolver-1:1.9.18-5.fc41.noarch 100% | 8.4 MiB/s | 993.2 KiB | 00m00s [30/32] インストール中 maven-lib-1:3.9.6-7.fc41.noarch 100% | 9.9 MiB/s | 1.9 MiB | 00m00s [31/32] インストール中 maven-openjdk21-1:3.9.6-7.fc41.noarch 100% | 26.3 KiB/s | 296.0 B | 00m00s [32/32] インストール中 maven-1:3.9.6-7.fc41.noarch 100% | 13.1 KiB/s | 23.2 KiB | 00m02s 完了しました! bg1@vbox:~$
続いて、tomcat-webapps
bg1@vbox:~$ sudo dnf install tomcat-webapps リポジトリの更新を読み込み中: リポジトリを読み込みました。 Package Arch Version Repository Size Installing: tomcat-webapps noarch 1:9.0.107-1.fc41 updates 146.2 KiB Transaction Summary: Installing: 1 package パッケージサイズ 80 KiB 、ダウンロードサイズ 80 KiB 。 完了後、146 KiB のサイズが利用されます(インストール 146 KiB、削除 0 B)。 Is this ok [y/N]: y [1/1] tomcat-webapps-1:9.0.107-1.fc41.noarch 100% | 200.0 KiB/s | 80.0 KiB | 00m00s ------------------------------------------------------------------------------------------------------------------------------------------------------------- [1/1] Total 100% | 51.0 KiB/s | 80.0 KiB | 00m02s トランザクションを実行中 [1/3] パッケージ ファイルを検証 100% | 35.0 B/s | 1.0 B | 00m00s [2/3] トランザクションの準備 100% | 4.0 B/s | 1.0 B | 00m00s [3/3] インストール中 tomcat-webapps-1:9.0.107-1.fc41.noarch 100% | 293.1 KiB/s | 148.3 KiB | 00m01s 完了しました! bg1@vbox:~$
続いて、tomcat-admin-webapps
bg1@vbox:~$ sudo dnf install tomcat-admin-webapps リポジトリの更新を読み込み中: リポジトリを読み込みました。 Package Arch Version Repository Size Installing: tomcat-admin-webapps noarch 1:9.0.107-1.fc41 updates 252.6 KiB Transaction Summary: Installing: 1 package パッケージサイズ 77 KiB 、ダウンロードサイズ 77 KiB 。 完了後、253 KiB のサイズが利用されます(インストール 253 KiB、削除 0 B)。 Is this ok [y/N]: y [1/1] tomcat-admin-webapps-1:9.0.107-1.fc41.noarch 100% | 228.1 KiB/s | 77.1 KiB | 00m00s ------------------------------------------------------------------------------------------------------------------------------------------------------------- [1/1] Total 100% | 79.5 KiB/s | 77.1 KiB | 00m01s トランザクションを実行中 [1/3] パッケージ ファイルを検証 100% | 71.0 B/s | 1.0 B | 00m00s [2/3] トランザクションの準備 100% | 2.0 B/s | 1.0 B | 00m00s [3/3] インストール中 tomcat-admin-webapps-1:9.0.107-1.fc41.noarch 100% | 326.3 KiB/s | 258.7 KiB | 00m01s 完了しました! bg1@vbox:~$
で、CATALINA_HOMEを設定してなかったので、
bg1@vbox:~$ echo 'export CATALINA_HOME=$HOME/tomcat/apache-tomcat-9.0.100' >> ~/.bashrc bg1@vbox:~$ source ~/.bashrc
設定する。
bg1@vbox:~/project/cloud/github.com/Sample/servlet/ServletResponse/setContentType/src$ mkdir ServletResponse bg1@vbox:~/project/cloud/github.com/Sample/servlet/ServletResponse/setContentType/src$ code ServletResponse
ServletResponseディレクトリを指定してVSCodeを起動。

Tomcat for Javaは非推奨なので、Community Server Connectorsを入れる。
bg1@vbox:~/project/cloud/github.com/Sample/servlet/ServletResponse/setContentType/src/ServletResponse$ mvn archetype:generate \ > -DgroupId=com.bgstation0.servlet.sample.servletresponse \ > -DartifactId=ServletResponse \ > -DarchetypeArtifactId=maven-archetype-webapp \ > -DinteractiveMode=false (中略) [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ (中略) bg1@vbox:~/project/cloud/github.com/Sample/servlet/ServletResponse/setContentType/src/ServletResponse$
Maven Webアプリ雛形作成。
こうなればいい。

src/mainの下のjavaディレクトリ以下が掘られてないので、
bg1@vbox:~/project/cloud/github.com/Sample/servlet/ServletResponse/setContentType/src/ServletResponse/ServletResponse/src/main$ mkdir -p java/com/bgstation0/servlet/sample/servletresponse bg1@vbox:~/project/cloud/github.com/Sample/servlet/ServletResponse/setContentType/src/ServletResponse/ServletResponse/src/main$
こんな感じでディレクトリを掘る。

そして、その下にServletMain.javaを作る。
package com.bgstation0.servlet.sample.servletresponse; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/ServletMain") public class ServletMain extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.getWriter().append("<html><head><title>main</title></head><body>VSCode-ABCDE</body></html>"); } }
最初は、text/htmlで。

赤線はpom.xmlのdependencyにjavax.servletを追加することで解消。

コマンドパレットでAdd Local Server


この辺はそのままで

そのままFinish

今、TomcatはStopped

Start Server

StartedだけどUnknown

warファイル右クリックでRun on Server

Tomcat 9.x

No

こうなる。
setContentTypeでtext/plainに。

こうなる。