1)创建Web项目ch5.4ex_score,将素材文件index.jsp复制到文件夹src/main/webapp,将Score.java复制到包src/main/java/com。 (2)本案例只有一个页面index.jsp。JavaBean对象的创建、为属性设置值和获取属性值,都采用JSP动作元素标签<jsp:…… />来进行。 (3)在Score.java的方法setScore(String score)中,需将输入的成绩score(String类型)转换为float类型,然后再计算(提示:类型转换可用float a = 0; try { a = Float.parseFloat(score); } catch ( ) { })。 (4)未输入成绩,或将输入的成绩转换为float类型时失败,或成绩范围超出0~100,则忽略此次输入的成绩,并给出提示信息。
时间: 2024-03-13 18:44:57 浏览: 103
好的,根据您提供的要求,我可以为您提供一些基础的代码实现。
首先,我们需要在创建的Web项目ch5.4ex_score中找到index.jsp文件,并添加以下代码:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.Score" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>成绩输入页面</title>
</head>
<body>
<h1>请输入成绩:</h1>
<form action="index.jsp" method="post">
<p>语文:<jsp:getProperty name="score" property="chinese" /></p>
<p>数学:<jsp:getProperty name="score" property="math" /></p>
<p>英语:<jsp:getProperty name="score" property="english" /></p>
<input type="submit" value="提交">
</form>
<%
String chinese = request.getParameter("chinese");
String math = request.getParameter("math");
String english = request.getParameter("english");
Score score = new Score();
if (chinese != null && math != null && english != null) {
score.setChinese(chinese);
score.setMath(math);
score.setEnglish(english);
}
%>
<%
if (score.isValid()) {
out.println("<h2>您输入的成绩如下:</h2>");
out.println("<p>语文:" + score.getChinese() + "</p>");
out.println("<p>数学:" + score.getMath() + "</p>");
out.println("<p>英语:" + score.getEnglish() + "</p>");
} else {
out.println("<h2>您输入的成绩无效,请重新输入!</h2>");
}
%>
</body>
</html>
```
在这个代码中,我们首先导入了Score.java文件,然后创建了一个Score对象。在页面中,我们使用了JSP动作元素标签`<jsp:.../>`来获取Score对象中的属性值,并在表单中添加了提交按钮。
在页面的下半部分,我们使用了Java代码块`<% ... %>`来获取表单中的参数值,并将其设置到Score对象的属性中。同时,我们使用了Score对象的`isValid()`方法来判断输入的成绩是否有效,如果有效则将其输出到页面上,否则输出错误提示信息。
然后,在Score.java文件中,我们添加以下代码:
```
package com;
public class Score {
private float chinese;
private float math;
private float english;
public void setChinese(String score) {
float s = 0;
try {
s = Float.parseFloat(score);
} catch (Exception e) {
System.out.println("输入的成绩格式不正确!");
return;
}
if (s < 0 || s > 100) {
System.out.println("输入的成绩超出范围!");
return;
}
this.chinese = s;
}
public void setMath(String score) {
float s = 0;
try {
s = Float.parseFloat(score);
} catch (Exception e) {
System.out.println("输入的成绩格式不正确!");
return;
}
if (s < 0 || s > 100) {
System.out.println("输入的成绩超出范围!");
return;
}
this.math = s;
}
public void setEnglish(String score) {
float s = 0;
try {
s = Float.parseFloat(score);
} catch (Exception e) {
System.out.println("输入的成绩格式不正确!");
return;
}
if (s < 0 || s > 100) {
System.out.println("输入的成绩超出范围!");
return;
}
this.english = s;
}
public float getChinese() {
return chinese;
}
public float getMath() {
return math;
}
public float getEnglish() {
return english;
}
public boolean isValid() {
if (chinese == 0 && math == 0 && english == 0) {
return false;
}
return true;
}
}
```
在这个代码中,我们定义了一个Score类,包含了语文、数学、英语三门课的成绩属性,以及设置和获取这些属性的方法。在设置属性时,我们使用了`Float.parseFloat()`方法将输入的字符串转换为float类型,同时判断输入的成绩是否超出范围,超出范围则输出错误提示信息。
在`isValid()`方法中,我们判断三门课的成绩是否都为0,如果是则表示输入的成绩无效。
综上所述,以上代码实现了输入学生成绩、判断输入成绩是否有效、输出成绩信息的基本功能,同时也对错误输入进行了处理和提示。
阅读全文