jsp实现简单抽奖程序,适用于班级机房电脑集体抽奖,每个ip只能抽取一次
详情看代码如下:
import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Draw extends HttpServlet { private static HashMap<String, Integer> scoreMap = new HashMap<String, Integer>(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取客户端ip地址 String ip = request.getRemoteAddr(); Integer score = scoreMap.get(ip); if (score!=null) { //访问过了 }else{ //还未访问 Random r = new Random(); int i = r.nextInt(7); score = i-1; scoreMap.put(ip, score); } request.setAttribute("score",score); request.getRequestDispatcher("index.jsp").forward(request, response); } }jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <% Integer score = (Integer)request.getAttribute("score"); String msg = ""; if(score!=null){ switch(score){ case -1: msg = "喜提25遍"; break; case 0: msg = "喜提25遍"; break; case 1: msg = "喜提20遍"; break; case 2: msg = "喜提15遍"; break; case 3: msg = "喜提10遍"; break; case 4: msg = "喜提5遍"; break; case 5: msg = "玩耍"; break; } } %> <%=msg %> <form action="draw"> <table> <input type="submit" value="抽奖"/> </table> </form> </body> </html>代码逻辑比较简单,页面加上js等特效会比较有代入感