Java中如何创建一个小型在线问卷工具

答案是使用Spring Boot快速搭建问卷工具,通过定义Question和Survey数据结构,创建SurveyController处理问卷展示与提交,利用@RestController提供REST接口,结合内嵌Tomcat运行服务,实现基础Web交互。

要在Java中创建一个小型在线问卷工具,核心是搭建一个简单的Web服务来展示问卷、收集用户提交的数据,并返回结果。可以使用轻量级框架如Spring Boot快速实现,无需复杂配置。

1. 使用Spring Boot搭建基础Web项目

Spring Boot能快速启动Web应用,适合开发小型工具。

  • 通过Spring Initializr创建项目,选择依赖:Spring Web、Thymeleaf(或不选模板引擎,用纯JSON)
  • 生成并导入项目到IDE(如IntelliJ IDEA或Eclipse)
  • 确保主类上有@SpringBootApplication注解

2. 定义问卷数据结构

创建Java类来表示问卷和问题。

public class Question {
    private String text;
    private List options;
    private String answer;

    // 构造函数、getter和setter
    public Question(String text, List options) {
        this.text = text;
        this.options = options;
    }
    // getter/setter 省略,可用Lombok简化
}
public class Survey {
    private List questions = new ArrayList<>();

    public Survey() {
        // 初始化示例问题
        questions.add(new Question("您对我们的服务满意吗?", 
            Arrays.asList("非常满意", "满意", "一般", "不满意")));
        questions.add(new Question("您会推荐我们吗?", 
            Arrays.asList("会", "可能会", "不会")));
    }

    public List getQuestions() {
        return questions;
    }
}

3. 创建控制器处理请求

使用@Controller或@RestController定义网页路由。

@RestController
public class SurveyController {

    private final Survey survey = new Survey();
    private final Map responses = new HashMap<>(); // 简单存储

    @GetMapping("/survey")
    public Survey getSurvey() {
        return survey;
    }

    @PostMapping("/submit")
    public String submitAnswers(@RequestBody Map userAnswers) {
        // 存储答案(这里可写入文件或数据库)
        userAnswers.forEach((qIndex, answer) ->
            responses.put(Integer.parseInt(qIndex), answer)
        );
        return "感谢您的参与!";
    }
}

若想返回HTML页面,可改用@Controller并配合Thymeleaf模板渲染问卷表单。

4. 启动与测试

运行主类启动内嵌Tomcat服务器,默认端口8080。

  • 访问 http://localhost:8080/survey 获取问卷JSON
  • 用Postman或JavaScript发送POST请求到 /submit 提交答案
  • 可进一步添加前端页面(HTML+JS)提升用户体验

基本上就这些。不复杂但容易忽略的是数据持久化和并发安全。当前responses用HashMap,仅适用于单用户测试。真实场景建议加入数据库(如SQLite)或至少加同步控制。小型工具这样已够用。