一、目标
在网页中创造一个表格,每刷新一下,表格内的随机生成的内容就会更新
其中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>