写一个学生信息注册JSP页面,主要包括学生学号、姓名,性别,年龄(下拉列表16~24)、爱好(篮球、吉他、唱歌、读书)等可多选,点击注册按钮后,提交到servlert,如果成功就提示注册成功,失败就提示失败。(提示:需要用到javabean,DAO等,内置对象out输出)
时间: 2024-10-20 12:03:07 浏览: 136
在一个典型的JSP页面中创建一个用于学生信息注册的表单,首先需要创建一个JavaBean来存储学生信息,例如StudentInfo.java:
```java
// StudentInfo.java
import java.io.Serializable;
public class StudentInfo implements Serializable {
private String studentID;
private String name;
private String gender;
private int age; // 下拉列表范围16至24
private String[] hobbies; // 学生爱好,数组形式
// getters and setters
}
```
接下来,在JSP页面studentReg.jsp中,我们可以这样设计表单:
```jsp
<!-- studentReg.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<title>Student Registration</title>
</head>
<body>
<form action="registerServlet" method="post">
<label for="studentID">学号:</label>
<input type="text" id="studentID" name="studentID"><br>
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br>
<label for="gender">性别:</label>
<select id="gender" name="gender">
<option value="male">男</option>
<option value="female">女</option>
</select><br>
<label for="age">年龄:</label>
<select id="age" name="age" onchange="validateAge(this)">
<!-- 16 to 24 options here -->
</select><br>
<label>Hobbies:</label>
<input type="checkbox" name="hobbies[]" value="basketball">篮球<br>
<input type="checkbox" name="hobbies[]" value="guitar">吉他<br>
... (其他选项类似)
<button type="submit">注册</button>
</form>
<%@ include file="/WEB-INF/jsp/common/messages.jsp" %>
</body>
</html>
```
在这个例子中,`onchange`事件会触发一个验证函数`validateAge`,确保用户选择的年龄在范围内。
然后,你需要一个名为`registerServlet`的后端Java Servlet处理表单提交:
```java
// RegisterServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.List; // 假设你有HobbyDao来获取爱好选项
public class RegisterServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String studentID = request.getParameter("studentID");
// ... 获取其他字段的值
List<String> hobbies = HobbyDao.getHobbies(); // 假设getHobbies()是一个从数据库获取爱好选项的方法
try {
// 对数据进行校验并保存到数据库(这里仅示例)
if (saveToDatabase(studentID, name, gender, age, hobbies)) {
request.setAttribute("message", "注册成功");
} else {
request.setAttribute("message", "注册失败,请检查输入的信息");
}
} catch (Exception e) {
// 处理错误
request.setAttribute("message", "注册失败,请稍后再试");
}
RequestDispatcher rd = getServletContext().getRequestDispatcher("/common/messages.jsp");
rd.forward(request, response);
}
private boolean saveToDatabase(String... fields) { ... } // 这里需要实际的保存操作逻辑
}
```
在这个Servlet中,我们假设有一个HobbyDao类负责数据库交互,以及一个`saveToDatabase`方法来保存学生信息到数据库。最后,我们将结果传递给包含消息显示的`messages.jsp`页面。
阅读全文