java 描述服务器遇到内部错误,无法完成请求[已关闭]

wn9m85ua  于 2023-02-18  发布在  Java
关注(0)|答案(1)|浏览(177)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
1小时前关闭。
Improve this question
我创建了一个表单来检查用户输入的身高和体重的BMI。但运行项目后,它抛出此错误消息:
org.apache.jasper.JasperException:
在第[35]行处理[/views/web/checkBMI.jsp]时发生异常
32:字符串ChieuCao =请求.获取参数(“txtChieuCao”);
33:字符串CanNang =请求.获取参数(“txtCanNang”);
三十四岁:
35:双高度=双。解析双(曹队长);
36:双权重=双解析双(CanNang);
37:双倍BMI =体重/(身高 * 身高);
三十八岁:
这是我的文件checkBMI.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.lang.*" %>
<%@ include file="/common/taglib.jsp" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Check BMI</title>
</head>
<body>
<div>
    <div class="title">
        KIỂM TRA BMI CỦA BẠN
    </div>
    <div>
        <table>
            <tr>
                <td>Chiều cao:</td>
                <td><input type="text" name="txtChieuCao" placeholder="Enter your height (m)!"></td>
            </tr>
            <tr>
                <td>Cân nặng:</td>
                <td><input type="text" name="txtCanNang" placeholder="Enter your weight (kg)!"></td>
            </tr>
            <tr>
                <td>Kết Quả BMI:</td>
                <td>
                <%
                String ChieuCao = request.getParameter("txtChieuCao");
                String CanNang = request.getParameter("txtCanNang");
                
                double height = Double.parseDouble(ChieuCao);
                double weight = Double.parseDouble(CanNang);
                double BMI = weight/(height * height);
                
                if (BMI < 18.5) {
                    out.println("BMI: " + BMI);
                    out.println("Bạn đang thiếu cân! Bạn nên có chế độ ăn phù hợp hơn!");
                }
                else if (18.5 <= BMI && BMI <= 24.9) {
                    out.println("BMI: " + BMI);
                    out.println("Bạn đang có thể trạng khỏe mạnh, bạn nên duy trì thể trạng này!");
                }
                else if (25 <= BMI && BMI <= 29.9) {
                    out.println("BMI: " + BMI);
                    out.println("Bạn đang thừa cân! Bạn nên có chế độ ăn phù hợp hơn!");
                }
                else {
                    out.println("BMI: " + BMI);
                    out.println("Bạn đang béo phì! Bạn nên có chế độ ăn phù hợp hơn!");
                }
                %>
                </td>
            </tr>
        </table>
    </div>
    <div>
        <form action="#" method="post">
        <input type="submit" value="Submit">
            <input type="reset" value="Reset">
        </form>
    </div>
</div>
</body>
</html>

我试过我知道的方法,但是没用。请帮帮我。

06odsfpq

06odsfpq1#

错误是由于Double.parseDouble方法未能将输入分析为有效数字而导致的。可能的更正如下所示;

String ChieuCao = request.getParameter("txtChieuCao");
String CanNang = request.getParameter("txtCanNang");

if (ChieuCao == null || ChieuCao.isEmpty() || CanNang == null || CanNang.isEmpty()) {
    out.println("Please enter a valid height and weight!");
} else {
    double height = Double.parseDouble(ChieuCao);
    double weight = Double.parseDouble(CanNang);
    double BMI = weight/(height * height);

if (BMI < 18.5) {
    // output BMI results
} else if (18.5 <= BMI && BMI <= 24.9) {
    // output BMI results
} else if (25 <= BMI && BMI <= 29.9) {
    // output BMI results
} else {
    // output BMI results
}
}

相关问题