• 大小: 1.25MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-21
  • 语言: Java
  • 标签: 转盘  抽奖  java  web  MySQL  

资源简介

修改至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\.mymetadata

     文件       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.xml

     文件         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-style.css

     文件      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\meta-INF\MANIFEST.MF

     文件       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.xml

     文件       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个文件信息

评论

共有 条评论