问题导读:
1. 团队介绍以及team work 经验总结
2. 项目介绍以及架构思想
3. 技术分享
解决方案:
1 团队介绍及经验总结
1.1 团队成员:
注:工作照片
1.2 分工:
1.2.1 李:
- 项目架构
- 前端界面
- Ajax 异步交互
- 代码整合
- 代码复审
1.2.2 刘:
- 数据库设计
- Servlet
- JDBC
- 开发文档
1.3 评价:
- 刘 在开发中能及时完成交给他的任务,在实现过程中有技术盲点他可以很直接的提出并认真查找资料
- 我们可以提前约定好代码规范,一起探讨实现逻辑,定义好前端和后台的接口
2 项目介绍
2.1 简介:
黄金点游戏:
N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),
得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。
2.2 分析:
- 本项目采用B/S模式开发
- 在首页中输入参加游戏人数,初始化比赛界面
- 输入玩家名字,输入数据,提交,异步交互提交数据,存入mysql数据库中
- 当裁判按下结束游戏键时,向所有人展示比赛结果和历史记录
2.3 界面:
1. 开始界面
2. 游戏界面
3. 结果界面
2.4 架构图:
项目架构想法(不喜勿喷)
对于开发Java Web 项目,我的想法是能少用框架就少用框架
原因:为什么要使用web框架?我的答案是:让程序猿更好的偷懒(减短开发周期,提高开发效率,易于维护)。当代码量很小,业务逻辑简单时,可以直接
应用框架基于的Servlet、JDBC 等Java WEB底层实现技术,提高项目运行效率
代码托管:https://coding.net/u/peerslee/p/Golden-Point-Game/git
3 技术分享
3.1 Jsp 中获得页面中input标签value值
<form class="form-horizontal" action ='/Gold/index.jsp?number=<%=request.getParameter("number")%>' id="startForm"> <div class="form-group"> <label class="col-lg-3 control-label">玩家人数:</label> <div class="col-lg-3"> <input type="text" class="form-control" name="number" id="number"> </div> </div> </form>
3.2 在另一个页面得到传递的值
<input id="n" style="display: none" value='<%=request.getParameter("number") %>'>
3.3 Bootstrap 搜索框
<form role="form" class="form-inline pull-right" id="query"> <div class="form-group" style="margin-right:10px"> <label> 游戏次数:</label> <input type="text" class="form-control" name="username" id="username"> </div> <div class="form-group"> <button type="button" class="btn btn-info" id="querybtn">查询</button> </div> </form>
3.4 Java Math abc() 取绝对值
for( int i=0;i<name.length;i++){ a[i]=java.lang.Math.abs(Double.parseDouble(input[i])); }
3.5 Java Integer int -> String
score[i]= Integer.toString(name.length);
3.6 Java jackson API
ObjectMapper om = new ObjectMapper(); response.setContentType("text/plain;charset=UTF-8"); PrintWriter out = response.getWriter(); out.print(om.writeValueAsString(list)); out.flush(); out.close();
3.7 JDBC
Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; // mysql 驱动 Class.forName("org.gjt.mm.mysql.Driver"); con = DriverManager.getConnection("","",""); pstmt = con.prepareStatement(sql); rs= pstmt.executeQuery(); close