一、目标
在网页中创造一个表格,每刷新一下,表格内的随机生成的内容就会更新
其中OpenID为一个不可编辑的文本框
省份为一个可以编辑的下拉列表
二、基本思想
(1)
JSP中与Java中产生随机数的方法一致,
其中Math.random()必须加以修饰,否则只会在0-1中产生随机数。
(2)
HTML中,下拉列表的基本写法应该是这样的:
<select name="s1">
<option selected>请选择</option>
<option value="1">脚本语言</option>
<option value="2">高级语言</option>
<option value="3">其他语言</option>
</select>
其中,后台通过如String myValue=request.getParameter("s1");来获取这个下拉列表的值
三、制作过程
由于没有调用后台,仅仅是一个基本的前台网页,详情请看代码,但必须注意的是,凡是涉及到随机数的部分,不要先声明一个类,
否则随机数只产生一次,然后这个类需要直到服务器重启才不会永驻内存,也就是客户端的刷新是没有用的
应该直接在<% %>中的代码段生成。
这样客户端刷新一次,原来的随机数就是重新产生一次。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%!int random = 0;%> <!-- 声明变量与代码段的符号是不同的,一个是<% %>一个是<%! %> --> <!-- 以下修改的,只有<title>标签中的网页标题,其余都是Eclipse编辑网页时生成的,本网页关键的是下<body>标签下的内容 --> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>用户信息页</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <!-- 设置表格的表框 --> <table border="1"> <tr> <td> OpenID: </td> <td> <% String[] code = new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; //指定随机数产生的范围 int length = code.length; StringBuffer randomStr = new StringBuffer(); for (int i = 0; i < 32; i++) { random = (int) (Math.random() * length); //这样保证所产生的随机数在这个数组内。强制类型转换保证没有小数 randomStr.append(code[random]); //append与+是没有区别的,都是用来连接字符串的,但注意是与StringBuffer类型想对应 //StringBuffer与String也是没有区别的,据说只是用来提升性能的 //每random出一个随机数,就相加一次 } String Openid = randomStr.toString(); //用一个字符串变量来承载这个随机数,以便后续用这个稳定的变量去操作 %> <input type="text" name="openid" disabled value="<%=Openid%>"> </td> </tr> <tr> <td> 省份: </td> <td> <%//这里的思想与前面OpenID思想相同,同时少了连接字符串的那一步 String[] provinceArray = new String[] { "北京", "上海", "天津", "重庆", "河北", "山西", "内蒙", "辽宁", "吉林", "黑龙江", "江苏", "浙江", "安徽", "福建", "江西", "山东", "河南", "湖北", "湖南", "广东", "广西", "海南", "四川", "贵州", "云南", "西藏", "陕西", "甘肃", "宁夏", "青海", "新疆", "香港", "澳门", "台湾", "其它" }; random = (int) (Math.random() * provinceArray.length); String Province = provinceArray[random]; %> <!-- 这是根据HTML下拉列表的基本写法来套用JSP循环语句来完成这个大型的下拉列表 --> <select name="select"> <% for (int i = 0; i < provinceArray.length; i++) { %> <option value="<%out.print(i);%>"> <% out.print(provinceArray[i]); %> </option> <% } %> <!-- 设置下拉菜单当前的默认值 --> <option selected="selected"><%=Province%></option> </select> </td> </tr> </table> </body> </html>