项目编号:BS-PT-014
开发技术: jsp/servlet 前端技术:jquery+layui
开发工具:IDEA/Eclipse
数据库:MYSQL5
功能介绍:
在线调查问卷系统:实现了调查问卷管理,调查项管理,问卷审核管理,问卷统计管理,用户管理,友情链接管理等功能。问卷支持单选,多选,问答多种调查题型。支持公开问卷和私有问卷等类型。功能完整,运行无误。
部分功能截图:
首页:
调查问卷填写:
问卷列表展示:
后台管理界面:
网站系统配置:
问卷管理:
友情连接管理:
问卷添加:
问卷审核:问卷添加后,审核通过才能使用
问卷统计:统计每个调查问卷的情况
用户管理:
友情连接管理:
以上就是网络在线调查问卷系统的基本功能,可以根据需求进行调整。基于JSP实现的在线调查问卷系统。
package com.ec.survey.ctrl; import java.io.IOException; import java.io.PrintWriter; import java.net.URLEncoder; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ec.survey.dao.AdminDAO; import com.ec.survey.dao.DAOFactory; import com.ec.survey.dao.QuestionDAO; import com.ec.survey.dao.SurveyDAO; import com.ec.survey.dto.Admin; public class AdminManage extends HttpServlet { /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String mutex1=""; //String mutex2=""; String op=request.getParameter("op"); if("AddAdmin".equals(op)){ String username=request.getParameter("username"); String pwd=request.getParameter("pwd"); AdminDAO dao=DAOFactory.getAdminDAO(); Admin admin=new Admin(); admin.setA_user(username); admin.setA_pass(pwd); boolean ret1=dao.addAdmin(admin); if(ret1) response.sendRedirect("../admin/AdminList.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=default&ret=false&words="+URLEncoder.encode("增加管理员出错!请联系管理员", "UTF-8") ); } else if("DelAdmin".equals(op)){ Long aid=Long.valueOf(request.getParameter("aid")); AdminDAO dao=DAOFactory.getAdminDAO(); boolean ret1=dao.delAdmin(aid); if(ret1) response.sendRedirect("../admin/AdminList.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=default&ret=false&words="+URLEncoder.encode("删除管理员出错!请联系管理员", "UTF-8")); }else if("EditAdmin".equals(op)){ Long aid=Long.valueOf(request.getParameter("aid")); String oldpwd=request.getParameter("oldpwd"); String pwd=request.getParameter("pwd"); String username=request.getParameter("username"); AdminDAO dao=DAOFactory.getAdminDAO(); if(dao.checkPwd(username, oldpwd)!=true){ response.sendRedirect("../admin/OpResult.jsp?op=default&ret=false&words="+URLEncoder.encode("旧密码错误", "UTF-8")); return; } synchronized(mutex1){ Admin admin=dao.findAdmin(aid); admin.setA_user(username); admin.setA_pass(pwd); boolean ret1=dao.updateAdmin(admin); if(ret1) response.sendRedirect("../admin/AdminList.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=default&ret=false&words="+URLEncoder.encode("编辑管理员出错!请联系管理员", "UTF-8")); } } } }
package com.ec.survey.ctrl; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ec.survey.dao.ConfigDAO; import com.ec.survey.dao.DAOFactory; import com.ec.survey.dto.Config; public class ConfigManage extends HttpServlet { /** * Constructor of the object. */ public ConfigManage() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ConfigDAO configdao=DAOFactory.getConfigDAO(); Config config=new Config(); config.setCSiteName(request.getParameter("siteName")); config.setCSiteUrl(request.getParameter("siteURL")); config.setCIsOpen(Boolean.valueOf(request.getParameter("siteOpen"))); config.setCCloseWord(request.getParameter("closeWord")); config.setCopyright(request.getParameter("copyright")); boolean ret=configdao.updateConfig(config); if (ret==true) response.sendRedirect("../admin/OpResult.jsp?op=SysConfig&ret=true"); else response.sendRedirect("../admin/OpResult.jsp?op=SysConfig&ret=false"); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
package com.ec.survey.ctrl; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ec.survey.dao.DAOFactory; import com.ec.survey.dao.QuestionDAO; import com.ec.survey.dto.Question; public class QuestionManage extends HttpServlet { /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String mutex = ""; String mutex1 = ""; String mutex2 = ""; String op=request.getParameter("op"); if("AddQuestion".equals(op)){ String sid=request.getParameter("sid"); String type=request.getParameter("type"); String qhead=request.getParameter("qHead"); String qbody=request.getParameter("qBody"); String qresult=request.getParameter("qResult"); String qimg=request.getParameter("qImg"); Question question=new Question(); question.setSurvey(Long.valueOf(sid)); question.setQType(Long.valueOf(type)); question.setQHead(qhead); question.setQBody(qbody); question.setQResult(qresult); question.setQImg(qimg); question.setQOrder(0L); String [] qbodys=qbody.split("&\\$\\$&"); String spliter=""; for(int i=1;i<qbodys.length;i++) if(i==qbodys.length-1) spliter=spliter+"null&null"; else spliter=spliter+"null&"; question.setQJdtz(spliter); QuestionDAO dao=DAOFactory.getQuestionDAO(); boolean ret=dao.addQuestion(question); if(ret==true) response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=true&sid="+sid); else{ response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=false"); } }else if("DelQuestion".equals(op)){ String sid=request.getParameter("sid"); String qid=request.getParameter("qid"); QuestionDAO dao=DAOFactory.getQuestionDAO(); boolean ret=dao.delQuestion(Long.valueOf(qid)); if(ret==true) response.sendRedirect("../admin/QuestionAdmin.jsp?sid="+sid); else response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=false"); }else if("EditQuestion".equals(op)){ String sid=request.getParameter("sid"); String qid=request.getParameter("qid"); //System.out.println(qid); String type=request.getParameter("type"); String qhead=request.getParameter("qHead"); String qbody=request.getParameter("qBody"); String qimg=request.getParameter("qImg"); QuestionDAO dao=DAOFactory.getQuestionDAO(); synchronized(mutex){ Question question=dao.findQuestion(Long.valueOf(qid)); //System.out.println(question==null); question.setQType(Long.valueOf(type)); question.setQHead(qhead); question.setQBody(qbody); question.setQImg(qimg); String [] qbodys=qbody.split("&\\$\\$&"); String spliter=""; for(int i=1;i<qbodys.length;i++) if(i==qbodys.length-1) spliter=spliter+"null&null"; else spliter=spliter+"null&"; question.setQJdtz(spliter); question.setQOrder(0L); boolean ret=dao.updateQuestion(question); if(ret==true) response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=true&sid="+sid); else response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=false"); } }else if("setJD".equals(op)){ String sid=request.getParameter("sid"); String qid=request.getParameter("qid"); int jd_count=Integer.parseInt(request.getParameter("jd_count")); List<String> list=new ArrayList<String>(); for(int j=0;j<jd_count;j++){ String checked=request.getParameter("check_jd"+j); list.add(checked); } QuestionDAO dao=DAOFactory.getQuestionDAO(); synchronized(mutex1){ Question question=dao.findQuestion(Long.valueOf(qid)); String [] jdtz=question.getQJdtz().split("&"); for(int j=0;j<jdtz.length;j++){ if("on".equals(list.get(j))) jdtz[j]="over"; } String newJdtz=""; for(int j=0;j<jdtz.length;j++){ if(j==jdtz.length-1) newJdtz=newJdtz+jdtz[j]; else newJdtz=newJdtz+jdtz[j]+"&"; } question.setQJdtz(newJdtz); boolean ret=dao.updateQuestion(question); if(ret==true) response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=true&sid="+sid); else response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=false"); } }else if("setTZ".equals(op)){ String sid=request.getParameter("sid"); String qid=request.getParameter("qid"); int jd_count=Integer.parseInt(request.getParameter("tz_count")); List<String> list=new ArrayList<String>(); for(int j=0;j<jd_count;j++){ String checked=request.getParameter("check_tz"+j); list.add(checked); } QuestionDAO dao=DAOFactory.getQuestionDAO(); synchronized(mutex2){ Question question=dao.findQuestion(Long.valueOf(qid)); //set value of jdtz for every choice String [] jdtz=question.getQJdtz().split("&"); for(int j=0;j<jdtz.length;j++){ //System.out.println(list.get(j)); if("on".equals(list.get(j))||list.get(j)==null){ jdtz[j]="null"; }else jdtz[j]=list.get(j); } //start concat the jdtz field with &. String newJdtz=""; for(int j=0;j<jdtz.length;j++){ if(j==jdtz.length-1) newJdtz=newJdtz+jdtz[j]; else newJdtz=newJdtz+jdtz[j]+"&"; } question.setQJdtz(newJdtz); boolean ret=dao.updateQuestion(question); if(ret==true) response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=true&sid="+sid); else response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=false"); } } } }
package com.ec.survey.ctrl; import java.io.IOException; import java.io.PrintWriter; import java.net.URLEncoder; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ec.survey.dao.AnswersheetDAO; import com.ec.survey.dao.DAOFactory; import com.ec.survey.dao.QuestionDAO; import com.ec.survey.dao.SurveyDAO; import com.ec.survey.dao.TextDAO; import com.ec.survey.dto.Survey; public class SurveyManage extends HttpServlet { /** * */ private static final long serialVersionUID = -1737458302140188798L; /** * Constructor of the object. */ public SurveyManage() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter(); String mutex1=""; String mutex2=""; if("AddSurvey".equals(request.getParameter("op"))){ SurveyDAO surveydao=DAOFactory.getSurveyDAO(); Survey survey=new Survey(); survey.setSName(request.getParameter("Survey_name")); survey.setSAuthor(request.getParameter("Survey_author")); survey.setSDesc(request.getParameter("Survey_description")); survey.setSCreateDate(new Date()); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); try { survey.setSExpireDate(sdf.parse(request.getParameter("Survey_ExpireDate"))); } catch (ParseException e) { out.println("wrong DATE format.please check it!"); } survey.setTemplet(0L); survey.setSIpRepeat(Boolean.valueOf(request.getParameter("Survey_ipRepeat"))); survey.setSIsOpen(Boolean.valueOf(request.getParameter("Survey_isOpen"))); if(request.getParameter("Survey_isImg")!=null) survey.setSImg(request.getParameter("imgfilepath")); if(request.getParameter("Survey_isPassword")!=null) survey.setSPassword(request.getParameter("Survey_Password1")); if(request.getParameter("Survry_IPLimit")!=null){ //survey.setSIpLimitType(request.getParameter("Survey_ipLimitKinds")); survey.setSIpRange(request.getParameter("Survey_ipRange")); } survey.setSHits(0L); survey.setSIsAudited(false); survey.setSUsehits(0L); boolean ret=surveydao.addSurvey(survey); //System.out.println(ret); if(ret==true) response.sendRedirect("../admin/OpResult.jsp?op=SurveyAdd&ret=true"); else response.sendRedirect("../admin/OpResult.jsp?op=SurveyAdd&ret=false"); } else if("SurveyAudi".equals(request.getParameter("op"))){ Boolean audit=Boolean.valueOf(request.getParameter("audit")); SurveyDAO surveydao=DAOFactory.getSurveyDAO(); synchronized(mutex1){ Survey survey=surveydao.findSurvey(Long.valueOf(request.getParameter("sid"))); if(audit==true) survey.setSIsAudited(true); else survey.setSIsAudited(false); boolean ret=surveydao.updateSurvey(survey); if(ret==true) response.sendRedirect("../admin/SurveyAudi.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=SurveyAudi&ret=false"); } }else if("EditSurvey".equals(request.getParameter("op"))){ SurveyDAO surveydao=DAOFactory.getSurveyDAO(); String sid=request.getParameter("Survey_id"); synchronized(mutex2){ Survey survey=surveydao.findSurvey(Long.valueOf(request.getParameter("Survey_id"))); survey.setSName(request.getParameter("Survey_name")); survey.setSAuthor(request.getParameter("Survey_author")); survey.setSDesc(request.getParameter("Survey_description")); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); try { survey.setSExpireDate(sdf.parse(request.getParameter("Survey_ExpireDate"))); } catch (ParseException e) { out.println("wrong DATE format.please check it!"); } survey.setTemplet(0L);//?????幦?? survey.setSIpRepeat(Boolean.valueOf(request.getParameter("Survey_ipRepeat"))); survey.setSIsOpen(Boolean.valueOf(request.getParameter("Survey_isOpen"))); if(request.getParameter("Survey_isImg")!=null){ if(request.getParameter("imgfilepath")!=null) survey.setSImg(request.getParameter("imgfilepath")); }else survey.setSImg(null); //System.out.println(request.getParameter("Survey_isPassword")); if(request.getParameter("Survey_isPassword")!=null){ survey.setSPassword(request.getParameter("Survey_isPassword")); }else survey.setSPassword(null); if(request.getParameter("Survry_IPLimit")!=null){ //survey.setSIpLimitType(request.getParameter("Survey_ipLimitKinds")); survey.setSIpRange(request.getParameter("Survey_ipRange")); //System.out.print(request.getParameter("Survey_ipRange")); }else { survey.setSIpLimitType(null); survey.setSIpRange(null); } boolean ret=surveydao.updateSurvey(survey); //System.out.println(ret); if(ret==true) response.sendRedirect("../admin/SurveyEdit.jsp?sid="+sid+"&words="+URLEncoder.encode("操作成功!", "UTF-8")); else response.sendRedirect("../admin/OpResult.jsp?op=SurveyEdit&ret=false"); } }else if("DelSurvey".equals(request.getParameter("op"))){ Long surveyId=Long.valueOf(request.getParameter("sid")); SurveyDAO surveydao=DAOFactory.getSurveyDAO(); boolean ret1=surveydao.delSurvey(surveyId); QuestionDAO questiondao=DAOFactory.getQuestionDAO(); if(ret1==true) ret1=questiondao.delQuestions(surveyId); if(ret1==true){ TextDAO tdao=DAOFactory.getTextDAO(); ret1=tdao.delText(surveyId); } if(ret1==true){ AnswersheetDAO adao=DAOFactory.getAnswersheetDAO(); ret1=adao.delAnswersheets(surveyId); } if(ret1==true) response.sendRedirect("../admin/SurveyAdmin.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=SurveyDel&ret=false"); } } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }