源码获取:俺的博客首页 "资源" 里下载!

项目介绍

这是一个基于SpringMVC+Spring+MyBatis的SSM问卷调查系统。
管理端权限
管理员信息CURD
制作调查问卷
发布调查问卷
统计调查结果
统计报表展示
用户端权限
填写问卷

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 
6.数据库:MySql 5.7等版本均可;

技术栈

1. 后端:Spring Springmvc Mybatis 
2. 前端:JSP+css+javascript+jQuery+layui

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2.使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置,然后运行;
4.运行项目,在浏览器中输入http://localhost:8080/survey
管理员用户名密码:admin/123456

 

登录控制层:

@Controller
public class LoginController {@Autowiredprivate AdminService adminService;@GetMapping("/login")public String v_login(){return "login";}@PostMapping("/login")@ResponseBodypublic Map<String, Object> login(@RequestBody Map<String,Object> map, HttpServletRequest request){String account = map.get("account")+"";String password = map.get("password")+"";if(Strings.isNullOrEmpty(account) || Strings.isNullOrEmpty(password)){return MapControl.getInstance().error("用户名或密码不能为空").getMap();}Admin admin = adminService.login(account, MD5Utils.getMD5(password));if(admin != null){SessionUtils.setAdmin(request,admin);return MapControl.getInstance().success().getMap();}else{return MapControl.getInstance().error("用户名或密码错误").getMap();}}@GetMapping("/pwd")public String pwd(){return "pwd";}@PostMapping("/pwd")@ResponseBodypublic Map<String,Object> pwd(Integer id,String type,String sourcePwd,String newPwd){Admin user = adminService.detail(id);if(user.getPassword().equals(MD5Utils.getMD5(sourcePwd))){Admin entity = new Admin();entity.setId(id);entity.setPassword(MD5Utils.getMD5(newPwd));int update = adminService.update(entity);if(update>0){return MapControl.getInstance().success().getMap();}else{return MapControl.getInstance().error().getMap();}}else{return MapControl.getInstance().error("原密码错误").getMap();}}
}

问卷管理控制层:

@Controller
@RequestMapping("/survey")
public class SurveyController {@Autowiredprivate SurveyService surveyService;@Autowiredprivate QuestionService questionService;@GetMapping("/create")public String v_create(){return "survey/add";}@PostMapping("/create")@ResponseBodypublic Map<String,Object> create(@RequestBody Survey survey, HttpServletRequest request){Admin currAdmin = SessionUtils.getAdmin(request);survey.setCreator(currAdmin.getId());survey.setState(Survey.state_create);survey.setAnon(survey.getAnon()!=null?0:1);int result = surveyService.create(survey);if(result<=0){//失败的情况下return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}@PostMapping("/delete")@ResponseBodypublic Map<String,Object> delete(String ids){int result = surveyService.deleteBatch(ids);if(result<=0){//失败的情况下return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}@PostMapping("/update")@ResponseBodypublic Map<String, Object> update(@RequestBody Survey survey){survey.setAnon(survey.getAnon()!=null?0:1);int result = surveyService.update(survey);if(result<=0){//失败的情况下return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}@GetMapping("/list")public String list(){return  "survey/list";}@PostMapping("/query")@ResponseBodypublic Map<String,Object> query(@RequestBody Survey survey, ModelMap modelMap){List<Survey> list = surveyService.query(survey);//创建者信息写入survey对象for (Survey entity : list) {entity.setAdmin(SystemInit.adminMap.get(entity.getCreator()));}Integer count = surveyService.count(survey);return MapControl.getInstance().page(list,count).getMap();}@GetMapping("/detail")public String detail(Integer id,ModelMap modelMap){Survey survey = surveyService.detail(id);modelMap.addAttribute("survey",survey);return "survey/update";}@GetMapping("/question")public String question(Integer id,ModelMap modelMap){Survey survey = surveyService.detail(id);modelMap.addAttribute("survey",survey);return "survey/question";}@GetMapping("/preview/{id}")public String preview(@PathVariable("id") Integer id,ModelMap modelMap){Survey survey = surveyService.detail(id);Question question = new Question();question.setSurveyId(survey.getId());//查询一个问卷中的所有问题及选项List<Question> questions = questionService.query(question);//将问题设置为survey的属性survey.setQuestions(questions);modelMap.addAttribute("survey",survey);return "survey/preview";}@RequestMapping(value = "/upload",method = RequestMethod.POST)public String upload(Integer id, @RequestParam("file") MultipartFile multipartFile, HttpServletRequest request){//上传的位置String path = request.getSession().getServletContext().getRealPath("/upload/");//判断该路径是否存在File file = new File(path);if (!file.exists()) {file.mkdirs();}//上传文件项String filename = multipartFile.getOriginalFilename();String uuid = UUID.randomUUID().toString().replace("-", "");String saveName = uuid + "_" + filename.substring(filename.lastIndexOf(File.separator) + 1);try {multipartFile.transferTo(new File(path, saveName));Survey survey = new Survey();survey.setId(id);survey.setBgimg(saveName);surveyService.update(survey);} catch (IOException e) {e.printStackTrace();}return "redirect:preview/"+id;}@PostMapping("/publish")@ResponseBodypublic Map<String,Object> publish(Integer id,HttpServletRequest request){Survey param = surveyService.detail(id);if(!Survey.state_exec.equals(param.getState())){return MapControl.getInstance().error("操作失败,当前问卷未在执行中!").getMap();}String uuid = "/dy/"+UUID.randomUUID().toString();Survey survey = new Survey();survey.setId(id);//http://localhost:8080/survey/ieieas-asdf-asdf-3-asd-f-asdfString url = "http://"+request.getServerName()+ ":" + request.getServerPort() + request.getContextPath()+uuid;survey.setUrl(url);surveyService.update(survey);return MapControl.getInstance().success().getMap();}@PostMapping("/submit")@ResponseBodypublic Map<String,Object> submit(@RequestBody List<Map<String,Object>> list){List<AnswerOpt> optList = new ArrayList();List<AnswerTxt> txtList = new ArrayList();String uuid = UUID.randomUUID().toString();for (Map<String, Object> stringObjectMap : list) {if(object2String(stringObjectMap.get("type")).equals("1") || object2String(stringObjectMap.get("type")).equals("2")){List<Object> opts = (List<Object>) stringObjectMap.get("opts");for (Object opt : opts) {AnswerOpt answerOpt = new AnswerOpt();answerOpt.setQuestionId(object2Integer(stringObjectMap.get("questionId")));answerOpt.setSurveyId(object2Integer(stringObjectMap.get("surveyId")));answerOpt.setType(object2String(stringObjectMap.get("type")));answerOpt.setOptId(object2Integer(opt));answerOpt.setCreateTime(new Date());answerOpt.setVoter(uuid);optList.add(answerOpt);}}if(object2String(stringObjectMap.get("type")).equals("3") || object2String(stringObjectMap.get("type")).equals("4")){AnswerTxt answerTxt = new AnswerTxt();answerTxt.setQuestionId(object2Integer(stringObjectMap.get("questionId")));answerTxt.setSurveyId(object2Integer(stringObjectMap.get("surveyId")));answerTxt.setResult(object2String(stringObjectMap.get("result")));answerTxt.setCreateTime(new Date());answerTxt.setVoter(uuid);txtList.add(answerTxt);}}surveyService.submit(optList,txtList);return MapControl.getInstance().success().getMap();}@GetMapping("/query_detail/{id}")public String query_detail(@PathVariable("id") Integer id,ModelMap modelMap){Survey survey = surveyService.detail(id);Question question = new Question();question.setSurveyId(survey.getId());//查询一个问卷中的所有问题及选项List<Question> questions = questionService.query(question);//将问题设置为survey的属性survey.setQuestions(questions);//总投票人数AnswerOpt answerOpt = new AnswerOpt();answerOpt.setSurveyId(id);List<AnswerOpt> answerOpts = surveyService.queryAnswerOpt(answerOpt);Set<String> set = new HashSet<String>();for (AnswerOpt opt : answerOpts) {set.add(opt.getVoter());}for (Question question1 : questions) {for (QuestionOpt questionOpt : question1.getOptions()) {int num = 0;for (AnswerOpt opt : answerOpts) {if(questionOpt.getId() == opt.getOptId()){num++;}}questionOpt.setNum(num);}}modelMap.addAttribute("survey",survey);modelMap.addAttribute("total",set.size());return "survey/query_detail";}public String object2String(Object object){if(object !=null){return object+"";}else{return null;}}public Integer object2Integer(Object object){if(object !=null){return Integer.parseInt(object+"");}else{return null;}}}

后台管理员管理控制层:

@Controller
@RequestMapping("/admin")
public class AdminController {@Autowiredprivate AdminService adminService;@GetMapping("/create")public String v_create(){return "admin/add";}@PostMapping("/create")@ResponseBodypublic Map<String,Object> create(@RequestBody Admin admin){admin.setPassword(MD5Utils.getMD5(admin.getPassword()));int result = adminService.create(admin);if(result<=0){//失败的情况下return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}@PostMapping("/delete")@ResponseBodypublic Map<String,Object> delete(String ids){int result = adminService.deleteBatch(ids);if(result<=0){//失败的情况下return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}@PostMapping("/update")@ResponseBodypublic Map<String, Object> update(@RequestBody Admin admin){int result = adminService.update(admin);if(result<=0){//失败的情况下return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}@GetMapping("/list")public String list(){return  "admin/list";}@PostMapping("/query")@ResponseBodypublic Map<String,Object> query(@RequestBody Admin admin, ModelMap modelMap){System.out.println(admin.getPage());System.out.println(admin.getLimit());System.out.println(admin.getAccount());List<Admin> list = adminService.query(admin);Integer count = adminService.count(admin);return MapControl.getInstance().page(list,count).getMap();}@GetMapping("/detail")public String detail(Integer id,ModelMap modelMap){Admin admin = adminService.detail(id);modelMap.addAttribute("admin",admin);return "admin/update";}}

源码获取:俺的博客首页 "资源" 里下载!

Java项目:问卷调查系统(java+SSM+layui+JSP+Mysql)相关推荐

  1. 基于javaweb的问卷调查系统(java+ssm+layui+jsp+mysql)

    基于javaweb的问卷调查系统(java+ssm+layui+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclips ...

  2. Java项目:考试系统Java基础Gui(java+Gui)

    源码获取:博客首页 "资源" 里下载! 功能简介: 所属课程.题目内容.题目选项.题目答案.题目等级.学生管理.试卷管理.题目管理.时间控制 服务页面: public class ...

  3. java项目-第161期ssm弹幕视频网站系统_ssm毕业设计_计算机毕业设计

    java项目-第161期ssm弹幕视频网站系统_ssm毕业设计_计算机毕业设计 [源码请到资源专栏下载] 今天分享的项目是<ssm弹幕视频网站> 该项目分为2个角色,管理员.用户. 用户可 ...

  4. java项目-第126期SSM的物流仓库管理系统-java毕业设计_计算机毕业设计

    java项目-第126期SSM的物流仓库管理系统-java毕业设计_计算机毕业设计 [源码请到资源专栏下载] 大家好,今天分享的源码是<基于SpringBoot+Thymeleaf的物流仓库后台 ...

  5. 基于javaweb的实现进销存系统(java+ssm+bootstrap+jsp+mysql)

    基于javaweb的实现进销存系统(java+ssm+bootstrap+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/mye ...

  6. java项目-第135期ssm台球厅收费系统-java毕业设计_计算机毕设

    java项目-第135期ssm台球厅收费系统-毕业设计ssm项目 [源码请到资源专栏下载] 今天分享的项目是<台球厅俱乐部收费系统> 该项目分为两个角色:会员.管理员角色. 管理员拥有最大 ...

  7. java项目-第145期ssm汽车在线销售系统-java毕业设计_计算机毕业设计

    java项目-第145期ssm汽车在线销售系统-java毕业设计_计算机毕业设计 [源码请到资源专栏下载] 今天分享的项目是<ssm汽车在线销售系统> 该项目分为2个角色,管理员和用户. ...

  8. java项目-第155期ssm班级同学录网站-java毕业设计_计算机毕业设计

    java项目-第155期ssm班级同学录网站-java毕业设计_计算机毕业设计 [源码请到资源专栏下载] 今天分享的项目是<ssm班级同学录网站> 该项目分为2个角色,管理员.用户. 用户 ...

  9. java项目-第122期ssm校园快递物流管理系统-计算机毕业设计项目

    java项目-第122期ssm校园快递物流管理系统-计算机毕业设计项目 [源码请到资源专栏下载] Hi,大家好,今天分享的源码是<ssm校园快递物流管理系统>. 这款系统分为三个角色:管理 ...

  10. java项目-第136期ssm超市收银管理系统-java毕业设计

    java项目-第136期ssm超市收银管理系统-计算机毕业设计 [源码请到资源专栏下载] 今天分享的项目是<超市收银管理系统> 该项目分为超级管理员和收银员2个角色. 管理员拥有最大的权限 ...

最新文章

  1. mysql smack_super-smack测试mysql性能
  2. 巨人网络开发工程师试题
  3. 2017-2018-1 20155230 《信息安全系统设计基础》第二周课堂实验
  4. 作用域和作用域链 —javascript面向对象高级
  5. java开发中实际遇到的问题总结_内行总结:装修中最容易遇到的16个问题及其解决方式!...
  6. 有时候,996确实会让你麻木
  7. 实训汇编语言设计——16位数拆分为4组
  8. ORACLE数据库测试题(一)
  9. 作业调度之先来先服务算法C语言实现
  10. Entry模拟对输入的密码进行验证是否符合规范
  11. 全国计算机软考机试试题,软考机试试题.doc
  12. 【装机吧U盘装系统】
  13. 打瓶颈,破性能,性能大牛教你怎么玩转性能测试
  14. 《推荐系统实践》 第四章 利用用户标签数据 读书笔记
  15. 为什么要高内聚低耦合?
  16. 许奔创新社-第25问:创新者的刻意练习怎么做?
  17. PM_14 项目文档管理与配置管理
  18. 一张图了解“大数据,云计算,物联网”的关系
  19. 99% 的人都不知道的20 个关于谷歌搜索的技巧
  20. 操作系统习题1-银行排队叫号问题

热门文章

  1. PAT甲级 A1099
  2. hit_training_20140403
  3. 简单实现微信抢红包的功能(Java)
  4. 赵小楼《天道》《遥远的救世主》深度解析(66)辩证思维的讨论:人性、教义、逻辑
  5. 微信小程序之CSS实现图片遮罩
  6. 00后小花张子枫亲力推荐 OPPO Reno6系列影像表现着实不俗
  7. 苹果 M1“痛失”Windows 11!
  8. html图片水印的代码,简单实用的给图片加水印源代码
  9. 手把手教你写一篇价值十万的软文
  10. 最新联发科Helio X30(mt6799)芯片处理器详细资料(datasheet)