第12周
分工:
本周工作总述:
本周实现了
- 本课程设计数据库的设计
- 以通过网站访问提交表单的方式
- 实时展示各个玩家的数据
代码展示:
GoldPoint.jsp
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%@page import="java.sql.*,java.io.*"%>
<html>
<head>
<title>黄金点</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form id="add_form" name="add_form" action="gp提交.jsp">
<br>
您的名称:
<input type="text" id="user_id" name="user_id" value="">
<br>
您的数值:
<input type="text" id="user_value" name="user_value" value="30">
<br>
<input type="submit" name="submit_btn" value="提交">
</form>
<input type="button" value="当前数据列表" onclick="javascrtpt:window.location.href='record_list.jsp'"/>
</body>
</html>
record_list.jsp
<%-- --%><%@page contentType="text/html; charset=UTF-8"%>
<html>
<head>
<meta charset="utf-8" />
<title>尝试一下</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1" name="viewport" />
<meta content="" name="description" />
<meta content="" name="author" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div style="margin:50px;border:2px solid pink;">
<table class="table table-striped table-bordered table-hover datatable" id="record_list">
<thead>
<tr>
<th class="table-checkbox"><input type="checkbox" class="group-checkable" data-set="#record_list .checkboxes" /></th>
<th>序号</th>
<th>玩家名称</th>
<th>玩家的值</th>
<th>上传时间</th>
</tr>
</thead>
</table>
</div>
</body>
<!-- END BODY -->
</html>
<link rel="stylesheet" type="text/css" href="dataTables.bootstrap.css" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css"/>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="jquery.uniform.min.js"></script>
<script type="text/javascript" src="jquery.dataTables.min.js"></script>
<script src="record_list.js" type="text/javascript"></script>
get_record.jsp
<%@page contentType="text/html; charset=UTF-8" language="java"
import="java.text.*,org.json.JSONObject,java.util.ArrayList,java.io.PrintWriter"
import="java.util.HashMap,java.util.List,java.sql.*,java.util.Map,java.io.IOException"%>
<%
String action=request.getParameter("action");
String deviceId=request.getParameter("device_id");
System.out.println("获得的参数是:action="+action+",device_id="+deviceId);
//开始查询数据库
//注意:如果遇到问题,Tomcat的日志在C:\Tomcat\logs\stdout.log,可以查看
List jsonList = new ArrayList();
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException classnotfoundexception) {
classnotfoundexception.printStackTrace();
}
try {
//注意:数据表video_file确保在test数据库下面,如果没有就导入进去,或者放在自己建的数据库,下面的test相应要修改
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/se?user=root&password=123456&useUnicode=true&characterEncoding=UTF-8");
Statement statement = conn.createStatement();
System.out.println("连接数据库Ok!!!");
String sql="select * from gold_point";
//也可以根据device_id查询
//String sql="select * from video_file where device_id like '%"+deviceId+"%' order by register_time";
System.out.println("构造出来的sql语句是:"+sql);
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
List list = new ArrayList();
list.add(rs.getString("id"));
list.add(rs.getString("id"));
list.add(rs.getString("user_id"));
list.add(rs.getString("user_value"));
list.add(rs.getString("create_time"));
jsonList.add(list);
}
statement.close();
conn.close();
System.out.println("数据库关闭了!!!");
} catch (SQLException sqlexception) {
sqlexception.printStackTrace();
}
//数据库查询完毕,得到了json数组jsonList//
//jsonList.clear();
//下面开始构建返回的json
JSONObject jsonObj=new JSONObject();
jsonObj.put("aaData",jsonList);
jsonObj.put("action",action);
jsonObj.put("result_msg","ok"); //如果发生错误就设置成"error"等
jsonObj.put("result_code",0); //返回0表示正常,不等于0就表示有错误产生,错误代码
System.out.println("最后构造得到的json是:"+jsonObj.toString());
response.setContentType("text/html; charset=UTF-8");
try {
response.getWriter().print(jsonObj);
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("返回结果给调用页面了。");
%>
注意:由于js代码冗长,此处不做展示
截图演示:
-
数据库表单:
-
提交数据页面
提交之后的返回信息
-
数据库更新与页面更新:
工作展望:
- 我们将在后端进一步加入数据分析,以丰富程序内容,但由于时间成本较大,目前没能实现。
- 前端处理不够漂亮,我们打算学习响应式页面架构,做到多处访问仍能够做到显示美观
待解决的问题:
- 后端
后端仍然存在些许逻辑问题,有待解决。虽然已经实现黄金点的整体逻辑,但仍需要重构。 - 前端
页面较为简陋,这与展望是相对应的