资源简介
修改至http://blog.csdn.net/appearbeauty/article/details/13766377
代码片段和文件信息
package com.ostarsier.servlet;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 抽奖概率算法来自:http://www.helloweba.com/view-blog-216.html
*/
public class AwardServlet extends HttpServlet {
public static final int k = 5;// 4个属性
public void doGet(HttpServletRequest request HttpServletResponse response)
throws ServletException IOException {
String sql = null;
DBHelper db1 = null;
ResultSet ret = null;
sql = “select *from lotto“;//SQL语句
db1 = new DBHelper(sql);//创建DBHelper对象
try {
ret = db1.pst.executeQuery();//执行语句,得到结果集
int sample = 0;
while (ret.next()) {
sample++;
}
object[][] prizeArr = new object[sample][k];
ret = db1.pst.executeQuery();// 特别重要,否则取到的全是0。因为执行上面的while(rs.next())后,ResultSet对象的下标已指到0。
// API:当生成ResultSet对象的Statement对象关闭、重新执行或用来从多个结果的序列获取下一个结果时,ResultSet对象将自动关闭。
for (int i = 0; ret.next(); i++) {
for (int j = 0; j < k; j++) {
prizeArr[i][j] = ret.getobject(j + 1);
}
}
object result[] = award(prizeArr);//抽奖后返回角度和奖品等级
response.setContentType(“text/html;charset=UTF-8“);
response.getWriter().write(“{\“angle\“:\““+result[0]+“\“\“msg\“:\““+result[2]+“\“}“);
System.out.println(“转动角度:“+result[0]+“\t奖项ID:“+result[1]+“\t提示信息:“+result[2]);
ret.close();
db1.close();//关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
//抽奖并返回角度和奖项
public object[] award(object[][] prizeArr){
//概率数组
Integer obj[] = new Integer[prizeArr.length];
for(int i=0;i obj[i] = (Integer) prizeArr[i][4];
}
Integer prizeId = getRand(obj); //根据概率获取奖项id
//旋转角度
int angle = new Random().nextInt((Integer)prizeArr[prizeId][2]-(Integer)prizeArr[prizeId][1])+(Integer)prizeArr[prizeId][1];
String msg = (String) prizeArr[prizeId][3];//提示信息
return new object[]{angleprizeIdmsg};
}
//根据概率获取奖项
public Integer getRand(Integer obj[]){
Integer result = null;
try {
int sum = 0;//概率数组的总概率精度
for(int i=0;i sum+=obj[i];
}
for(int i=0;i int randomNum = new Random().nextInt(sum);//随机生成1到sum的整数
if(randomNum result = i;
break;
}else{
sum -=obj[i];
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public void doPost(HttpServletRequest request HttpServletResponse response)
throws ServletException IOExcepti
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 604 2017-12-21 15:36 ChouJiang\.classpath
文件 294 2017-12-21 15:36 ChouJiang\.myme
文件 1750 2017-12-21 15:36 ChouJiang\.project
文件 500 2017-12-21 15:36 ChouJiang\.settings\.jsdtscope
文件 1040 2017-12-21 15:36 ChouJiang\.settings\com.genuitec.eclipse.j2eedt.core.prefs
文件 395 2017-12-21 15:36 ChouJiang\.settings\org.eclipse.jdt.core.prefs
文件 459 2017-12-21 15:36 ChouJiang\.settings\org.eclipse.wst.common.component
文件 252 2017-12-21 15:36 ChouJiang\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2017-12-21 15:36 ChouJiang\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2017-12-21 15:36 ChouJiang\.settings\org.eclipse.wst.jsdt.ui.superType.name
文件 3430 2017-12-21 15:36 ChouJiang\src\com\ostarsier\servlet\AwardServlet.java
文件 1099 2017-12-21 15:36 ChouJiang\src\com\ostarsier\servlet\DBHelper.java
文件 154511 2017-12-21 15:36 ChouJiang\WebRoot\files\activity-lottery-1.png
文件 18045 2017-12-21 15:36 ChouJiang\WebRoot\files\activity-lottery-2.png
文件 7705 2017-12-21 15:36 ChouJiang\WebRoot\files\activity-st
文件 45587 2017-12-21 15:36 ChouJiang\WebRoot\files\disk.jpg
文件 5555 2017-12-21 15:36 ChouJiang\WebRoot\files\jquery.easing.min.js
文件 90518 2017-12-21 15:36 ChouJiang\WebRoot\files\jquery.min.js
文件 11500 2017-12-21 15:36 ChouJiang\WebRoot\files\jQueryRotate.2.2.js
文件 27297 2017-12-21 15:36 ChouJiang\WebRoot\files\start.png
文件 2563 2017-12-21 15:36 ChouJiang\WebRoot\index.jsp
文件 36 2017-12-21 15:36 ChouJiang\WebRoot\me
文件 3529 2017-12-21 15:36 ChouJiang\WebRoot\WEB-INF\classes\com\ostarsier\servlet\AwardServlet.class
文件 1388 2017-12-21 15:36 ChouJiang\WebRoot\WEB-INF\classes\com\ostarsier\servlet\DBHelper.class
文件 999810 2017-12-21 15:36 ChouJiang\WebRoot\WEB-INF\lib\mysql-connector-java-5.1.45-bin.jar
文件 83787 2017-12-21 15:36 ChouJiang\WebRoot\WEB-INF\lib\servlet-api.jar
文件 710 2017-12-21 15:36 ChouJiang\WebRoot\WEB-INF\web.xm
文件 1749 2017-12-21 15:37 choujiang.sql
目录 0 2017-12-21 15:36 ChouJiang\WebRoot\WEB-INF\classes\com\ostarsier\servlet
目录 0 2017-12-21 15:36 ChouJiang\WebRoot\WEB-INF\classes\com\ostarsier
............此处省略17个文件信息
相关资源
- java投票系统的设计
- 进销管理系统是用Java代码编写的 运用
- java高仿qq聊天
- MVC3 层开发 在线考试系统(内容多,
- 超级玛丽SuperMario[Java实现]
- Java学生管理系统[控制台版]
- JNA 转java接口以及指针结构体解析
- java漂亮软件界面 超酷可更改做java软
- 网上书城javaWeb项目
- 通讯录管理系统,java体系实现!
- 医院信息管理系统JAVA+SQL Server
- Fortify SCA 代码规则库-支持Java
- 基于jsp考勤系统代码
- java文件管理模块
- 耿祥义 java第三版PDF 课件
- 记忆测试系统JAVA版
- 上传Excel的Demojava代码
- JAVA指纹识别uaru4000B指纹仪
- Java抓包程序实现(附说明文档)
- java I/O
- Java+SQL学籍管理系统
- ajaxstruts2jspjava验证用户名是否存在
- 169JSP社团管理系统 源码可运行
- mysql-connector-java-5.1.13-bin.zip
- 简单Jsp的图书馆图书借阅信息管理系
- 简单基于Java的招聘网站毕业设计
- java MongoDB上传(图片,txt等大文件)
- javaEE管理系统项目源码
- 超强java雷电游戏
- Java 人事管理系统源代码+详细设计文
评论
共有 条评论