用Javaweb写一个学生爱好调查问卷
时间: 2023-05-28 08:05:04 浏览: 273
以下是一个简单的学生爱好调查问卷的示例,使用Java Servlet和JSP技术:
1. 创建一个名为StudentSurvey的Java Web项目。
2. 创建一个名为SurveyServlet的Servlet类,用于处理用户提交的问卷数据。在doPost()方法中,从请求参数中获取学生姓名、年级、性别和爱好等数据,并将其保存到数据库中。
```java
@WebServlet("/survey")
public class SurveyServlet extends HttpServlet {
private static final String JDBC_URL = "jdbc:mysql://localhost:3306/student_survey?useSSL=false&serverTimezone=UTC";
private static final String JDBC_USER = "root";
private static final String JDBC_PASSWORD = "password";
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");
String grade = req.getParameter("grade");
String gender = req.getParameter("gender");
String[] hobbies = req.getParameterValues("hobby");
try (Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD)) {
String sql = "INSERT INTO survey (name, grade, gender, hobby) VALUES (?, ?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, name);
stmt.setString(2, grade);
stmt.setString(3, gender);
stmt.setString(4, String.join(",", hobbies));
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
resp.sendRedirect("result.jsp");
}
}
```
3. 创建一个名为survey.jsp的JSP页面,用于展示问卷表单。在表单中包括学生姓名、年级、性别和爱好等字段。
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生爱好调查问卷</title>
</head>
<body>
<h1>学生爱好调查问卷</h1>
<form method="post" action="survey">
<p>姓名:<input type="text" name="name"></p>
<p>年级:
<select name="grade">
<option value="1">一年级</option>
<option value="2">二年级</option>
<option value="3">三年级</option>
<option value="4">四年级</option>
<option value="5">五年级</option>
<option value="6">六年级</option>
</select>
</p>
<p>性别:
<input type="radio" name="gender" value="男">男
<input type="radio" name="gender" value="女">女
</p>
<p>爱好:
<input type="checkbox" name="hobby" value="篮球">篮球
<input type="checkbox" name="hobby" value="足球">足球
<input type="checkbox" name="hobby" value="游泳">游泳
<input type="checkbox" name="hobby" value="音乐">音乐
<input type="checkbox" name="hobby" value="阅读">阅读
</p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
```
4. 创建一个名为result.jsp的JSP页面,用于展示问卷提交成功的页面。在页面中显示提交成功的消息,并提供返回首页的链接。
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生爱好调查问卷</title>
</head>
<body>
<h1>学生爱好调查问卷</h1>
<p>问卷提交成功!</p>
<p><a href="survey.jsp">返回首页</a></p>
</body>
</html>
```
5. 在项目的web.xml文件中配置Servlet和JSP的映射关系。
```xml
<web-app>
<servlet>
<servlet-name>SurveyServlet</servlet-name>
<servlet-class>com.example.StudentSurvey.SurveyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SurveyServlet</servlet-name>
<url-pattern>/survey</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>survey.jsp</welcome-file>
</welcome-file-list>
</web-app>
```
6. 运行项目,访问http://localhost:8080/StudentSurvey/survey.jsp,即可开始填写问卷。提交问卷后,将跳转到result.jsp页面,显示提交成功的消息。提交的数据将保存到MySQL数据库中,可以使用MySQL客户端工具查看。
阅读全文