目 录
摘 要 2
Abstract 4
第一章 引言 8
1.1 课题背景以及研究内容 8
1.1.1 课题背景 8
1.1.2 IQ智商测试系统的特点 8
1.13 IQ测试知识普及 8
第二章 课题设计方案以及难点 10
2.1设计方案 10
2.2实现难点 10
2.2.1 Servlet的搭建 10
2.2.2 ajax的异步认证 10
2.2.3 系统初始化 10
2.2.4 分页数据提交 11
2.2.5 计分统计 11
2.3设计难点最终解决方案 11
第三章 课题的总体架构设计 11
3.1系统加构简介 11
3.2开发环境 12
3.3技术简介 12
3.3.1 Servlet 12
3.3.2 Ajax技术 13
3.3.3 JDBC技术 15
3.3.4 CSS与JavaScript技术 17
3.3.5 MVC架构 17
3.3.6 Spring 18
3.3.7 Apache DBUtils 18
3.3.8 JSP技术 19
3.3.9 Jquery 21
3.3.9 Junit测试 22
3.4开发规范 22
第四章 系统实施 24
4.1部署方案 24
4.1.1 MyEclipse的安装 24
4.1.2 JDK的的简介以及安装 25
4.1.3 Tomcat的简介及其安装 28
4.1.4 MySql数据库的安装 31
4.1.5 开发环境的配置 33
第五章 系统实现 36
5.1 表结构设计 36
5.1.1 用户表(user): 36
5.1.2 试题表(iqinfo): 36
5.1.3 分数表(scoreinfo): 36
5.2代码结构 37
5.2.1系统框架: 37
5.2.2工程结构简介 37
5.2.3 关键实体类简介 39
5.3模块展示 42
5.3.1登入模块 42
5.3.2管理模块 43
5.4 系统测试 46
5.4.1 JUNIT工具介绍 46
5.4.2 JUNIT测试用例 47
5.4.3 FindBugs代码检查 49
第六章 总 结 51
第二章 课题设计方案以及难点
2.1设计方案
本次安全管理系统的网站设计与国内很多网站设计的思路是一致的。严格基于MVC的设计思想,前端通过一个jsp来设计一个前台登入页面,通过用户名和密码时行后台校验,验证成功后方可登录系统。用户信息保存在Session会话中,会话过期将会导致用缓存信息失效,最后通过apache出色的开源框架dbutils来将前台页面与后台数据库相结合。通过这几项处理,一个基本的IQ测试系统的框架就能基本完成了。
2.2实现难点
2.2.1 Servlet的搭建
Servlet 是在服务器上运行的小程序。这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。
2.2.2 ajax的异步认证
Ajax是web2.0时代中一个具有代表性的技术。他可以通过后台与服务器的少量数据交换来实现网页的异步更新。但是他的使用必须遵循一定的硬性要求,所以所在网站设计方面,这方面的难点还是要考虑到的。
2.2.3 系统初始化
由于采用的是标准IQ测试题库,题目中的信息已经维护到数据库中,同步读取只会加大应用端与数据库端的负载,这里想到一些固定的信息,比如题目及分数在应该初始化的时候加载到内存中,目前决定采用单例+监听的方式来加载。
2.2.4 分页数据提交
在顺序答题时,有六十道题要加载到页面,放在同一页肯定影响展示和操作的方便,这里需要进行分页展示;分页展示定时功能和题目的先后顺序会受影响;这里采用session会话按type类型顺序操作,写了一个顺序算法来解决。
2.2.5 计分统计
每个提交答卷的用户,都希望很快看到结果,这里采取同步计算分数的方式,但对于每题都和结果比对一下,会加大服务器压力,性能下降;这里采用的是将分数根据题目编号初始化到内存中,在内存中计算速度超级快的,然后固化到数据库中。
2.3设计难点最终解决方案
前三个难点是自己通过参考书籍以及根据自己学的那些基础来解决的,后面难点是自己征求了知道老师的意见和指导进行设计的,自己验证了一下发展比较科学而且容易实现。
第三章 课题的总体架构设计
3.1系统加构简介

架构图

3.2开发环境
开发工具:Eclipe+MyEclipe;
JDK版本:JDK6.0;
数据库 : MYSQL7.0
服务器 : Tomcat7.0
技术支持:控制层:Servlet;展示层:JSP;持久层:dbutils;
前端技术:Jquery+CSS+EasyUI;
系统支持:Window环境。

登录页面代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>用户登录</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><link rel="shortcut icon" href="images/favicon.ico"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript"src="js/jquery-easyui-1.2.6/jquery-1.7.2.min.js">
</script><link rel="stylesheet" type="text/css"href="js/jquery-easyui-1.2.6/themes/default/easyui.css" /><link rel="stylesheet" type="text/css"href="js/jquery-easyui-1.2.6/themes/icon.css" /><script type="text/javascript"src="js/jquery-easyui-1.2.6/jquery.easyui.min.js">
</script><script type="text/javascript"src="js/jquery-easyui-1.2.6/locale/easyui-lang-zh_CN.js">
</script><script type="text/javascript">
$(function() {//字符验证组件 $('#loginname,#password').validatebox( {required : true,missingMessage : '输入不能为空'});$('#btn').click(function() {if (!$('#myform').form('validate')) {$.messager.show( {title : 'warn',msg : '验证不通过,表单不能提交!'});return false; //当表单验证不通过的时候 必须要return false }});});
</script></head><body><center><br /><br /><%if (request.getAttribute("res") != null) {%><font color="red"><%=request.getAttribute("res")%></font><%}%><br /><br /><table border="1" bordercolor="#D2E9FF" width="625px"bgcolor="#F5F5F5"style="BORDER-LEFT-WIDTH: 0px; BORDER-COLLAPSE: collapse; BORDER-RIGHT-WIDTH: 0px;"><tr><td height="126" background="images/logo.png" align="center"></td></tr><tr><td align="center"><form action="LoginServlet" id="myform" method="post"><table height="205px" width="360px" bgcolor="#FFFAF0"style="margin-top: 40px; margin-bottom: 40px"><tr height="60"><th align="center" colspan="2" style="font: 22px;">登录中心</th></tr><tr><td align="right">用户名:&nbsp;&nbsp;</td><td>&nbsp;&nbsp;<input type="text" name="loginname" id="loginname" size="21" /><input type="hidden" name="method" value="login"></td></tr><tr><td align="right">密&nbsp;&nbsp;&nbsp;&nbsp;码:&nbsp;&nbsp;</td><td>&nbsp;&nbsp;<input type="password" name="password" id="password" size="23" /></td></tr><tr><td align="center" colspan="2"><input type="submit" value="登录" id="btn" />&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="重置" /><!--&nbsp;&nbsp;&nbsp;&nbsp;<a href="jsp/login/reg.jsp">注册?</a>--></td></tr></table></form></td></tr><tr style="font-style: italic; font-size: 15px;"><td height="40" bgcolor="#FFFAF0" align="center"><font size="2px" color="blue">Please use IE8 and IE9 to display the best effect.</font><br></td></tr></table></center></body>
</html>

用户信息界面代码:

<%@ page language="java" import="java.util.*,com.bysj.po.*,com.bysj.dao.*,com.bysj.dao.impl.*,com.bysj.util.*"pageEncoding="UTF-8"%>
<%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";
%>
<%User user = (User) request.getAttribute("user");if (user == null) {} //重新登录
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>user</title><script type="text/javascript"src="js/jquery-easyui-1.2.6/jquery-1.7.2.min.js">
</script><link rel="stylesheet" type="text/css"href="js/jquery-easyui-1.2.6/themes/default/easyui.css" /><link rel="stylesheet" type="text/css"href="js/jquery-easyui-1.2.6/themes/icon.css" /><script type="text/javascript"src="js/jquery-easyui-1.2.6/jquery.easyui.min.js">
</script><script type="text/javascript"src="js/jquery-easyui-1.2.6/locale/easyui-lang-zh_CN.js">
</script><script type="text/javascript">
$(function() {//字符验证组件 $('#loginname,#password').validatebox( {required : true,missingMessage : '输入不能为空!'});$('#age').numberbox( {//required : true,missingMessage : '输入必须是数字!',precision : 0});$('#btn').click(function() {if (!$('#myform').form('validate')) {$.messager.show( {title : '警告',msg : '验证失败,不能提交表单!'});return false; //当表单验证不通过的时候 必须要return false }});});
</script>
<script type="text/javascript">
$(document).ready(function(){ $("#myselect").change(function(){ var v = $(this).children('option:selected').val(); if(v==0){alert("请选择有效的类别!");    }else{$.ajax({type: "POST", //用POST方式传输dataType: "json", //数据格式:JSONcache:false,  async:false, url: "ServerGuestServlet?method=queryLever", //异步请求data: "superid="+v,  error : function(XMLHttpRequest,textStatus, errorThrown) {alert(errorThrown);},success : function(json) {if(json.result){var lis="";$.each(json.list, function(i, item) { //可以对已经 申请的服务标记lis+="<input name=\"sid\" type=\"radio\" value="+item.id+"><label for=\"radio\">"+item.servername+"</label>";if((i+1)%4==0){lis+="<br/>";//每行四个}}) $(".classtype").html(lis);      //将遍历出来的数据呈现在所需位置}else{alert(json.msg);}}});}})
});
</script></head><body><center><br><%String res = (String)request.getAttribute("res") ;if("ok".equals(res)){%><font color="red">更新成功!</font><% }%><br><br><form id="myform" method="post" action="UserSevlet?method=update"><table width="40%" border="1" cellpadding="0" cellspacing="0"style="border-collapse: collapse; border-color: blue;"><tr class="line_g hover_bg" align="center" bgcolor="lightblue"><th colspan="2">用户信息查看|变更</th></tr><tr><td align="right">登录名:&nbsp;&nbsp;</td><td>&nbsp;&nbsp;<input type="text" name="loginname" id="loginname" value="<%=user.getLoginname() %>" size="21" disabled="disabled"/><input type="hidden" name="role" value="<%=user.getRole() %>"  /><input type="hidden" name="uid" value="<%=user.getUid() %>"></td></tr><tr><td align="right">用户名:&nbsp;&nbsp;</td><td>&nbsp;&nbsp;<input type="text" name="username" id="username" size="21" value="<%=BysjUtil.parseString(user.getUsername()) %>"/></td></tr><tr><td align="right">年龄:&nbsp;&nbsp;</td><td>&nbsp;&nbsp;<input type="text" name="age" id="age" value="<%=user.getAge() %>" size="21" /></td></tr><tr><td align="right">电话:&nbsp;&nbsp;</td><td>&nbsp;&nbsp;<input type="text" name="tel" id="tel" size="21" value="<%=BysjUtil.parseString(user.getTel()) %>"/></td></tr><tr><td align="right">身份证:&nbsp;&nbsp;</td><td>&nbsp;&nbsp;<input type="text" name="cardno" id="cardno" size="21" value="<%=BysjUtil.parseString(user.getCardno()) %>"/></td></tr><tr><td align="right">地址:&nbsp;&nbsp;</td><td>&nbsp;&nbsp;<input type="text" name="addr" id="addr" size="21" value="<%=BysjUtil.parseString(user.getAddr()) %>"/></td></tr><tr><td align="right">性别:&nbsp;&nbsp;</td><td>&nbsp;&nbsp;<input type="radio" name="gender" value="boy" checked="checked" />男 &nbsp;&nbsp;<input type="radio" name="gender" value="girl"/>女</td></tr><tr align="center"><td colspan="2"><input type="submit" id="btn" value="更新" />&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="重置" /></td></tr></table></form></center></body>
</html>

















基于JSP的IQ智力测试系统相关推荐

  1. java实现模拟考试系统,基于jsp的驾照模拟考试系统a-JavaEE实现驾照模拟考试系统a - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的驾照模拟考试系统a, 该项目可用各类java课程设计大作业中, 驾照模拟考试系统a的系统架构分为前后台两部分, 最 ...

  2. java EE crm代码_基于jsp的小型企业CRM系统-JavaEE实现小型企业CRM系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的小型企业CRM系统, 该项目可用各类java课程设计大作业中, 小型企业CRM系统的系统架构分为前后台两部分, 最 ...

  3. 基于Java的电子作业提交系统_基于jsp的网上作业提交系统-JavaEE实现网上作业提交系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的网上作业提交系统, 该项目可用各类java课程设计大作业中, 网上作业提交系统的系统架构分为前后台两部分, 最终实 ...

  4. java课设超市收银系统_基于jsp的超市收银系统-JavaEE实现超市收银系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的超市收银系统, 该项目可用各类java课程设计大作业中, 超市收银系统的系统架构分为前后台两部分, 最终实现在线上 ...

  5. 审批流程java 代码_基于jsp的企业流程审批系统-JavaEE实现企业流程审批系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的企业流程审批系统, 该项目可用各类java课程设计大作业中, 企业流程审批系统的系统架构分为前后台两部分, 最终实 ...

  6. Java基于JSP的网上手机销售系统

    手机作为一个通讯工具一直在不断的更新换代,由最初的大哥大,到小灵通,再到诺基亚的塞班系统,直到现在的苹果安卓等系统.手机的功能也越来越多,从最初的只能打电话到现在聊天,游戏和看视频等功能.人们的业余生 ...

  7. 基于JSP的网上演唱会票务系统

    技术:Java.JSP等 摘要: 随着当今社会科技的发展,人们的精神生活水平日益提高.在这高新技术发展的时代,因特网的快速发展,使人们的生活更加便利,让人们的生活丰富多彩.本基于JSP的网上演唱会票务 ...

  8. 基于jsp的影视创作论坛系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)

    摘要: 本文基于JSP技术,设计并实现了一个基于JSP的影视创作论坛系统.该系统旨在提供一个在线平台,供影视创作者交流.展示作品和分享经验.系统具备用户注册.登录.发表文章.评论.上传作品等功能,以满 ...

  9. 基于JSP开发的电影票预订系统 JAVA MySQL

    10087基于JSP开发的电影票预订系统 代码: 鏈-椄:https://pan@baidu@com/s/11qEwMtFAmmwMDLQO_Pbk2Q (把@换成 . 就可正常访问) 趧-紶-碼:6 ...

最新文章

  1. 利用负载均衡优化和加速HTTP应用
  2. 计算机硬件带软件怎么入账,小企业购置计算机硬件所附带的、未单独计价的软件,通过( )科目核算。A.无形资产B.固定资产C.在 - 赏学吧...
  3. 关于类、方法、对象(实例):静态方法
  4. ACM试题 - 括号配对问题 - Java中字符串截取和定位问题
  5. Scala声明变量、常用类型、条件表达式、块表达式、循环
  6. Slide:配置Oracle 10g双向流复制
  7. Django - Cookie和Session
  8. SQL Server 2005中的分区表(四):删除(合并)一个分区
  9. C# ?? 操作符示例
  10. java利己线程_java利己线程 | 学步园
  11. Linux的巡检命令
  12. Tensorflow:安装和配置
  13. Atitit。团队建设--管理最佳实践--如何留住核心人才,防止人才流失 ??
  14. 三相三线与三相四线计算公式
  15. 中国高端IC封装市场调查分析与投资趋势研究报告2022-2028年
  16. 中国松针油市场趋势报告、技术动态创新及市场预测
  17. CF329B Biridian Forest
  18. DataGrip连接MySQL报错: Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezon
  19. 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 问题
  20. 【BZOJ3698】XWW的难题 有上下界的最大流

热门文章

  1. 计算机一级B考试总结500字,期中考试反思作文500字
  2. 推荐五款装机必备的常用软件
  3. KPA EtherCAT主站协议栈基准
  4. 非常全面的支付宝钱包系统架构图解
  5. 攻防世界 Miscellaneous-200
  6. 实时音频编解码之十六 Opus解码
  7. 保卫萝卜迅玩版53关php,保卫萝卜迅玩版 28关 | 手游网游页游攻略大全
  8. 【游戏开发小技】TexturePacker生成的图集逆向切分成精灵小图(json | python | PIL | TextureUnPacker | 逆向 | 切图)
  9. vhs预设_如何在Linux中数字化VHS磁带
  10. Wide Deep模型的理解及实战(Tensorflow)