質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

0回答

423閲覧

servletで画像が表示されない

hide4

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2022/06/03 10:08

編集2022/06/04 06:46

maven + java + vscodeでwebアプリ開発を進めています(初学者です)

試しでservletから画像を出力しようと思っていますが、コンパイル、ビルド後のwarファイルをtomcatサーバ上で実行したところ画像が出力されません。
参考により、src/main/resourcesにリソースを配備するものと読み取りましたが、この場合、.javaから画像ファイル等を呼び出す場合のパス指定をどのようにすればよいかご教授いただければ幸いです。

現状、
out.println( " <img src=\"hoge1.jpg\" width=\"250\" height=\"175\"> " );のような呼び出し方をしていますが正常に出力できていません。

  • プロジェクト構成
│ pom.xml │ ├─src │ └─main │ ├─java │ │ └─servlet │ │ SelfIntroduction.java │ │ │ ├─resources │ │ hoge1.jpg │ │ │ └─webapp │ │ index.jsp │ │ │ └─WEB-INF │ web.xml │ └─target │ hoge.war │ ├─classes │ │ hoge1.jpg │ │ │ └─servlet │ SelfIntroduction.class │ │ ├─generated-sources │ └─annotations ├─hoge │ │ index.jsp │ │ │ ├─META-INF │ └─WEB-INF │ │ web.xml │ │ │ ├─classes │ │ │ hoge1.jpg │ │ │ │ │ └─servlet │ │ SelfIntroduction.class │ │ │ │ │ └─lib │ jakarta.servlet-api-5.0.0.jar │ ├─maven-archiver │ pom.properties │ └─maven-status └─maven-compiler-plugin └─compile └─default-compile createdFiles.lst inputFiles.lst
  • SelfIntroduction.java
package servlet; import java.io.IOException; import java.io.PrintWriter; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; public class SelfIntroduction extends HttpServlet { private static final long serialVersionUID = 1L; public SelfIntroduction() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println( "<html> " ); out.println( "<body> " ); out.println( " <img src=\"hoge1.jpg\" width=\"250\" height=\"175\"> " ); out.println( "</body> " ); out.println( "</html> " ); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
  • pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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>hoge</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>hoge Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>hoge</finalName> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </pluginManagement> </build> </project>
  • 実行環境
vscode: 1.67.2 apatche-tomcat: 10.0.21 java: 16

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/06/04 02:18

実際のファイル名は hoge1.jpgですか? hoge.jpgですか?
hide4

2022/06/04 06:48

ありがとうございます。 実際のファイル名はhoge1.jpgになります。 ※質問で記載していたファイル名は誤りでしたので修正しました。 SelfIntroduction.javaから呼び出すファイル名を正しいものに修正しても表示はされないままです。
jimbe

2022/06/04 07:02

maven のリソースフォルダと http リクエストとは何の関係も無いように思います。 html に書いた画像ファイル名がどの様な url でサーバにリクエストされるのか、そしてそれがサーバのどのファイルにマッピングされるのかを確認されては如何でしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問