1、实现exam.html,完成如下的页面: 2、新建ExamServlet,取得表单提交的各项值后,在页面输出姓名、学号、各题答案、成绩。
时间: 2024-09-29 18:13:12 浏览: 27
SSD2_Exam_1_Practical.rar_answers_ssd2 exam 1
为了创建一个名为`exam.html`的HTML页面,并实现一个处理表单提交的Java Servlet `ExamServlet`,首先你需要做以下几个步骤:
**1. 创建exam.html页面:**
在这个文件中,你需要设计一个包含姓名、学号输入框以及答题区域的表单。例如:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>考试页面</title>
</head>
<body>
<form action="/ExamServlet" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br><br>
<label for="student_id">学号:</label>
<input type="text" id="student_id" name="student_id"><br><br>
<!-- 假设题目数为4,每个题目是一个输入框 -->
<h3>选择题:</h3>
<input type="radio" name="q1" value="A"> A<br>
<input type="radio" name="q1" value="B"> B<br>
... (重复此结构到第四个题目)
<button type="submit">提交答案</button>
</form>
</body>
</html>
```
**2. 创建ExamServlet.java:**
这是一个简单的Java Servlet,用于处理POST请求并展示用户提交的数据:
```java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ExamServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取表单数据
String name = request.getParameter("name");
String studentId = request.getParameter("student_id");
// 假设从request中获取题目答案,这里简化示例只取第一个
String answer1 = request.getParameterValues("q1")[0];
int score = calculateScore(answer1); // 这里需要根据实际评分规则编写计算函数
// 设置响应内容
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>考试结果</title></head>");
out.println("<body>");
out.println("<h1>姓名: " + name + "</h1>");
out.println("<p>学号: " + studentId + "</p>");
out.println("<p>答案: " + answer1 + "</p>");
out.println("<p>成绩: " + score + "</p>");
out.println("</body>");
out.println("</html>");
}
private int calculateScore(String answer) {
// 根据实际情况计算得分,此处仅作示例,可能返回0分或1分
return answer.equals("正确答案") ? 1 : 0;
}
}
```
记得在web.xml配置文件中添加对这个Servlet的映射:
```xml
< servlet >
< servlet-name > ExamServlet </ servlet-name >
< servlet-class > com.example.ExamServlet </ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name > ExamServlet </ servlet-name >
< url-pattern > /ExamServlet </ url-pattern >
</ servlet-mapping >
```
**相关问题--:**
1. ExamServlet是如何处理表单提交的?
2. HTML表单中的`method="post"`有何作用?
3. 在ExamServlet中如何获取用户提交的题目答案?
阅读全文