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

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

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

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

servlet

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

Q&A

解決済

1回答

1786閲覧

Javaのエラーについてです。高校の授業で。

Aya_nishimura

総合スコア16

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

servlet

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

0グッド

0クリップ

投稿2020/05/19 00:21

編集2020/05/25 08:31

以下のコードを実行すると
「 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.」
というエラーが発生します。
おそらく、どこかのパスが違う気がするのですが、全くわかりません。
どこが違うのかご教授お願いします。
ディレクトリ
イメージ説明
Health.java

package model; import java.io.Serializable; public class Health implements Serializable { private double height, weight, bmi; private String bodyType; public double getHeight() { return height; } public void setHeight(Double height) { this.height = height; } public double getWeight() { return weight; } public void setWeight(Double weight) { this.weight = weight; } public void setBmi(Double bmi) { this.bmi = bmi; } public double getBmi() { return this.bmi; } public void setBodyType(String bodyType) { this.bodyType = bodyType; } public String getBodyType() { return this.bodyType; } }

healthCheck.java

package servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import model.Health; import model.HealthCheckLogic; @WebServlet("/healthCheck") public class HealthCheck extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // フォワード RequestDispatcher dispatcher = request.getRequestDispatcher ("/WEB-INF/jsp/healthCheck.jsp"); dispatcher.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // リクエストパラメータを取得 String weight = request.getParameter("weight"); // 体重 String height = request.getParameter("height"); // 身長 // 入力値をプロパティに設定 Health health = new Health(); health.setHeight(Double.parseDouble(height)); health.setWeight(Double.parseDouble(weight)); // 健康診断を実行し結果を設定 HealthCheckLogic healthCheckLogic = new HealthCheckLogic(); healthCheckLogic.execute(health); // リクエストスコープに保存 request.setAttribute("health", health); // フォワード RequestDispatcher dispatcher = request.getRequestDispatcher ("/jsp/healthCheckResult.jsp"); dispatcher.forward(request, response); } }

healthCheck.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>スッキリ健康診断</title> </head> <body> <h1>スッキリ健康診断</h1> <form action= "HealthCheck" method="post"> 身長:<input type="text" name="height">(cm)<br> 体重:<input type="text" name="weight">(kg)<br> <input type="submit" value="診断"> </form> </body> </html>

HealthCheckLogic.java

package model; public class HealthCheckLogic { public void execute(Health health) { // BMIを算出して設定 double weight = health.getWeight(); double height = health.getHeight(); double bmi = weight / (height / 100.0 * height / 100.0); health.setBmi(bmi); // BMI指数から体格を判定して設定 String bodyType; if (bmi < 18.5) { bodyType = "痩せ型"; } else if (bmi < 25) { bodyType = "普通"; } else { bodyType = "肥満"; } health.setBodyType(bodyType); } }

healthCheckResult.java

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="model.Health" %> <% // リクエストスコープに保存されたHealthを取得 Health health = (Health) request.getAttribute("health"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>スッキリ健康診断</title> </head> <body> <h1>スッキリ健康診断の結果</h1> <p> 身長:<%= health.getHeight() %><br> 体重:<%= health.getWeight() %><br> BMI:<%= health.getBmi() %><br> 体格:<%= health.getBodyType() %> </p> <a href="/HealthCheck">戻る</a> </body> </html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

WEB-INF 以下に置かれた jsp には、直接アクセスできません。(Servlet からの forward などでないと開けない。)

healthCheck.jsp を直接開けるようにするには、WebContents 以下で META-INF、WEB-INF 以外の 場所に配置するようにしてください。

※WebContents直下や WebContents/jsp など。

【コメントを受けて】

WEB-INFの下にjpsフォルダを作り、jspファイルを作る。という構造になっています。

であれば、 healthCheck.java を実行すればよいと思います。

doGet() にて

java

1 // フォワード 2 RequestDispatcher dispatcher = 3 request.getRequestDispatcher 4 ("/WEB-INF/jsp/healthCheck.jsp"); 5 dispatcher.forward(request, response);

となっているので結果的に /WEB-INF/jsp/healthCheck.jsp の実行結果が表示されます。

投稿2020/05/22 13:36

編集2020/05/23 05:35
Yasumichi

総合スコア1773

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

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

Aya_nishimura

2020/05/23 05:28

ご回答ありがとうございます。 しかし /WEB-INF/jsp/main.jsp のように、WEB-INFの下にjpsフォルダを作り、jspファイルを作る。という構造になっています。
Yasumichi

2020/05/23 05:32

であれば、 healthCheck.java を実行すればよいと思います。
Aya_nishimura

2020/05/23 05:42

ありがとうございました。解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問