加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

JSP中设置操作HTTP应答头

发布时间:2023-05-22 14:01:00 所属栏目:教程 来源:
导读:primenumbers.java

   注意,该servlet要用到前面给出的servletutilities.java。另外还要用到:primelist.java,用于在后台线程中创建一个素数的vector;primes.java,用于随机生成biginteger类型的大数字,检
primenumbers.java
 
   注意,该servlet要用到前面给出的servletutilities.java。另外还要用到:primelist.java,用于在后台线程中创建一个素数的vector;primes.java,用于随机生成biginteger类型的大数字,检查它们是否是素数。(此处略去primelist.java和primes.java的代码。)
 
package hall;
 
import java.io.*;
 
import javax.servlet.*;
 
import javax.servlet.http.*;
 
import java.util.*;
 
public class primenumbers extends httpservlet {
 
private static vector primelistvector = new vector();
 
private static int maxprimelists = 30;
 
public void doget(httpservletrequest request,
 
httpservletresponse response)
 
throws servletexception, ioexception {
 
int numprimes = servletutilities.getintparameter(request, "numprimes", 50);
 
int numdigits = servletutilities.getintparameter(request, "numdigits", 120);
 
primelist primelist = findprimelist(primelistvector, numprimes, numdigits);
 
if (primelist == null) {
 
primelist = new primelist(numprimes, numdigits, true);
 
synchronized(primelistvector) {
 
if (primelistvector.size() >= maxprimelists)
 
primelistvector.removeelementat(0);
 
primelistvector.addelement(primelist);
 
}
 
}
 
vector currentprimes = primelist.getprimes();
 
int numcurrentprimes = currentprimes.size();
 
int numprimesremaining = (numprimes - numcurrentprimes);
 
boolean islastresult = (numprimesremaining == 0);
 
if (!islastresult) {
 
response.setheader("refresh", "5");
 
}
 
response.setcontenttype("text/html");
 
printwriter out = response.getwriter();
 
string title = "some " + numdigits + "-digit prime numbers";
 
out.println(servletutilities.headwithtitle(title) +
 
"<body bgcolor=\"#fdf5e6\">\n" +
 
"<h2 align=center>" + title + "</h2>\n" +
 
"<h3>primes found with " + numdigits +
 
" or more digits: " + numcurrentprimes + ".</h3>");
 
if (islastresult)
 
out.println("<b>done searching.</b>");
 
else
 
out.println("<b>still looking for " + numprimesremaining +
 
" more<blink>...</blink></b>");
 
out.println("<ol>");
 
for(int i=0; i<numcurrentprimes; i++) {
 
out.println(" <li>" + currentprimes.elementat(i));
 
}
 
out.println("</ol>");
 
out.println("</body></html>");
 
}
 
public void dopost(httpservletrequest request,
 
httpservletresponse response)
 
throws servletexception, ioexception {
 
doget(request, response);
 
}
 
// 检查是否存在同类型请求(已经完成,或者正在计算)。
 
// 如存在,则返回现有结果而不是启动新的后台线程。
 
private primelist findprimelist(vector primelistvector,
 
int numprimes,
 
int numdigits) {
 
synchronized(primelistvector) {
 
for(int i=0; i<primelistvector.size(); i++) {
 
primelist primes = (primelist)primelistvector.elementat(i);
 
if ((numprimes == primes.numprimes()) &&
 
(numdigits == primes.numdigits()))
 
return(primes);
 
}
 
return(null);
 
}
 
}
 
}
 
   primenumbers.html
 
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
 
<html>
 
<head>
 
<title>大素数计算</title>
 
</head>
 
<center>
 
<body bgcolor="#fdf5e6">
 
<form action="/servlet/hall.primenumbers">
 
<b>要计算几个素数:</b>
 
<input type="text" name="numprimes" value=25 size=4><br>
 
<b>每个素数的位数:</b>
 
<input type="text" name="numdigits" value=150 size=3><br>
 
<input type="submit" value="开始计算">
 
</form>
 
</center>
 
</body>
 
</html>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!