📄 sampling.jsp
字号:
<%@ page language="java" %> <%-- 脚本所用语言 --%>
<%@ page contentType="text/html;charset=gb2312" %> <%-- 定义JSP页面的字符编码和对应的MIME类型 --%>
<%@ page errorPage="errorpage.jsp" %> <%-- 定义捕捉例外的对应脚本,当有例外时,自动跳转到此页面 --%>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>JSP与Servlet的通信实例</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
.tblline { border-color: #6060FF #6060ff #6060ff; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<%
/* 定义一个一维样本字典,以供抽样*/
char[] samplingElement = {'0','1','7','8','9','a','b','c','d','2','3','4','5','6','m','n','o','p','q','u','v','x','#','$','|','?','.','&','A','B','I','M','N','O','T', '*','[',']','_','^','U','V','W','X','Y','Z'};
String[] specialStr = {"#","$","|","?",".","&","*","[","]","_","^"};
String[] vowelStr = {"A","E","I","O","U","a","e","i","o","u"};
int[] samplingTimes = {0,0,0,0}; // 定义整型数组,用以存放样本被抽取的次数
String[] samplingPrecentage = new String[4]; // 存放字符抽取的概率
int samplingTotTimes = 0;
int randomIndex = -1;
int i = 0;
int j = 0;
double samplingPrecent = 0;
String samplingStr = null;
String getVarStr = null;
boolean flag = false;
PrintWriter pw = null;
String writeStr = null;
String Samplingresultfilename = null;
getVarStr = request.getParameter("selectTimes"); // 获取抽样的总次数
if(getVarStr.length() < 1 || getVarStr == null || getVarStr.equals("0"))
{
throw new Exception("你所定义的抽样次数是无效的!");
}
else
{
try
{
samplingTotTimes = Integer.parseInt(getVarStr.trim());
}
catch(Exception e)
{
throw new Exception("你所定义的抽样次数是无效的!");
}
/* 开始抽样,并且记录特定的样本被抽到的次数 */
for(i = 0;i < samplingTotTimes;i++)
{
/* 利用random()方法(函数)产生一个随机的整型数,用来确定样本数组的对应元素 */
randomIndex = ((new Double(Math.random() * 990)).intValue()) % samplingElement.length;
samplingStr = String.valueOf(samplingElement[randomIndex]);
samplingStr = samplingStr.trim();
flag = false;
/* 判断抽到字符的类型 */
/* 是否为数字 */
if(flag == false)
{
for(j = 0;j < 10;j++)
{
if(Integer.toString(j,0).trim().equals(samplingStr))
{
samplingTimes[0] = samplingTimes[0] + 1;
flag = true;
}
}
}
/* 判断是否为特殊字符 */
if(flag == false)
{
for(j = 0;j < specialStr.length;j++)
{
if(specialStr[j].equals(samplingStr))
{
samplingTimes[1] = samplingTimes[1] + 1;
flag = true;
}
}
}
/* 判断是否为元音字母 */
if(flag == false)
{
for(j = 0;j < vowelStr.length;j++)
{
if(vowelStr[j].equals(samplingStr))
{
samplingTimes[2] = samplingTimes[2] + 1;
flag = true;
}
}
}
/* 判断是否为辅音字母 */
if(flag == false)
{
samplingTimes[3] = samplingTimes[3] + 1;
}
flag = false;
samplingStr = null;
}
}
/* 将抽样的结果保存在文件中 */
Samplingresultfilename = "C:\\jswdk-1.0.1\\webpages\\sampling\\samplingResult.inc";
try
{
writeStr = Integer.toString(samplingTotTimes,10); // 第一位存放总的抽样次数
for(i = 0;i < samplingTimes.length;i++)
{
writeStr = writeStr + "|" + samplingTimes[i];
}
pw = new PrintWriter(new FileOutputStream(Samplingresultfilename));
pw.print(writeStr);
pw.close();
}
catch(IOException e)
{
throw new Exception("写入文件错误");
}
/* 计算字符被抽取的概率 */
for(i = 0;i < samplingTimes.length;i++)
{
samplingPrecent = samplingTimes[i] * 100.0 / samplingTotTimes;
samplingPrecentage[i] = String.valueOf(samplingPrecent).trim()+"%";
}
%>
<table width="100%" border="0">
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2">
<div align="center"><b><font size="5" color="#3333FF">随机抽样结果的图形化显示实例</font></b></div>
</td>
</tr>
<tr>
<td colspan="2" height="2"> </td>
</tr>
<tr>
<td colspan="2" height="2"><b><font color="#009933">抽样结果:</font></b></td>
</tr>
<tr>
<td colspan="2" height="54">
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="32%">
<div align="center"><b><font color="#3333FF">测试项目</font></b></div>
</td>
<td width="36%">
<div align="center"><b><font color="#3333FF">被抽取次数(次)</font></b></div>
</td>
<td width="32%">
<div align="center"><b><font color="#3333FF">占总次数的概率</font></b></div>
</td>
</tr>
<tr>
<td width="32%">
<div align="center"><font size="2">数字字符</font></div>
</td>
<td width="36%">
<div align="center"><%=Integer.toString(samplingTimes[0],10)%></div>
</td>
<td width="32%">
<div align="center"><%=samplingPrecentage[0]%></div>
</td>
</tr>
<tr>
<td width="32%" height="2">
<div align="center"><font size="2">特殊字符</font></div>
</td>
<td width="36%" height="2">
<div align="center"><%=Integer.toString(samplingTimes[1],10)%></div>
</td>
<td width="32%" height="2">
<div align="center"><%=samplingPrecentage[1]%></div>
</td>
</tr>
<tr>
<td width="32%">
<div align="center"><font size="2">元音字母</font></div>
</td>
<td width="36%">
<div align="center"><%=Integer.toString(samplingTimes[2],10)%></div>
</td>
<td width="32%">
<div align="center"><%=samplingPrecentage[2]%></div>
</td>
</tr>
<tr>
<td width="32%">
<div align="center"><font size="2">辅音字母</font></div>
</td>
<td width="36%">
<div align="center"><%=Integer.toString(samplingTimes[3],10)%></div>
</td>
<td width="32%">
<div align="center"><%=samplingPrecentage[3]%></div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" height="2"> </td>
</tr>
<tr>
<td colspan="2" height="2"><b><font color="#009933">图形化结果:</font></b></td>
</tr>
<tr>
<td colspan="2" height="2">
<div align="center"><img src="http://127.0.0.1/examples/servlet/SamplingGraphic" width="150" height="100"></div>
</td>
</tr>
<tr>
<td colspan="2" height="2"> </td>
</tr>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -