keishin
@keishin

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Eclipseにおいてパスが正しく出力されません。

解決したいこと

eclipseで、動的webプロジェクトの作成時に、パスに勝手に変なルートが追加されてしまいます。

解決方法を教えて下さい。

発生している問題・エラー

下記のコードを実行した際に、
実際であれば
http://localhost:8080/BMICulculator/HealthCheck
がパスとして実行されるはずであるのに、

以下のパスが出力されてしまい、404エラーになります。
http://localhost:8080/BMICulculator/WEB-INF/classes/HealthCheck.java

手入力で、http://localhost:8080/BMICulculator/HealthCheckを打ち込んだ場合には適切にHTMLページが表示されます。

該当するソースコード



import java.io.IOException;

import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import model.Health;

/**
 * Servlet implementation class HealthCheck
 */
@WebServlet("/HealthCheck")
public class HealthCheck extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public HealthCheck() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//フォワードする先のJSPのURIを記入
		RequestDispatcher rd = request.getRequestDispatcher("/healthCheck.jsp");
		rd.forward(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 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 logic = new HealthCheckLogic();
		logic.execute(health);
		//リクエストスコープに保存
		request.setAttribute("Health",health);
		//foward
		RequestDispatcher rd = request.getRequestDispatcher("/healthCheckResult.jsp");
		rd.forward(request,response);
	}

}

自分で試したこと

・プロジェクトのクリーン
・エクリプスの再起動

・原因の目処が立たず、ググり方もよくわからない状況です。。

0

1Answer

Comments

  1. @keishin

    Questioner

    URLマッピング確認しましたが、間違いはなさそうでした。
    先程、eclipseを開いて実行したところ、正常に実行することができました。
    原因の分からないまま治ってしまったので怖いですが、とりあえず解決しました。
    ご回答ありがとうございました。

Your answer might help someone💌