JSP中设置操作HTTP应答头
发布时间:2023-05-22 14:01:00 所属栏目:教程 来源:
导读:primenumbers.java
注意,该servlet要用到前面给出的servletutilities.java。另外还要用到:primelist.java,用于在后台线程中创建一个素数的vector;primes.java,用于随机生成biginteger类型的大数字,检
注意,该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> (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐