- 浏览: 59040 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
liumingtong:
我想要你的联系方式.可以吗?要不你加我Q 3813774
success -
抛出异常的爱:
congdepeng 写道Liskov替换原则(LSP)
描 ...
设计原则 -
wumingshi:
楼主关于LSP的解释是错误的。LSP的精髓是,使用父类的代码可 ...
设计原则 -
liumingtong:
struts2的OGNL表达式
struts2的值栈
st ...
总结struts2 完成中······ -
Cindy_Lee:
Joy.zhang 写道
下面是具体的设计模式:
单例 ...
设计模式中11种
本文介绍在JSP中设置HTTP应答头的文章专题。
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>
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>
发表评论
-
利用jsp读取远程文件保存到本地
2010-07-14 18:02 1841本文介绍利用jsp读取远程文件保存到本地的文章专题。 用js ... -
jsp+tomcat+mysql&sevlet&javabean配置
2010-07-14 18:01 682在配置jsp开发环境的过 ... -
JSP中用bean封装常用的功能
2010-07-14 18:00 713本文介绍JSP中用bean封装常用的功能的文章专题。 1、建 ... -
JSP中关于html的转换技巧
2010-07-14 17:59 609本文介绍JSP中关于html的转换技巧的文章专题。 publ ... -
在JSP中访问CORBA服务对象实例
2010-07-14 17:58 804结合J2EE和CORBA可以充分 ... -
学习jsp与javascript结合在页面间传递参数
2010-07-14 17:57 1285本文介绍学习jsp与javascript结合在页面间传递参数的 ... -
JSP Commons FileUpload 组件上传文件的总结
2010-07-14 17:57 913本文介绍JSP Commons FileUpload 组件上传 ... -
JSP开发前设置
2010-07-14 17:56 682由于朋友问起我开发JSP前都要做些什么,就写了这篇东东。 ? ... -
JSP应用语法详解集三
2010-07-14 17:56 734本文介绍JSP应用语法详 ... -
JSP应用语法详解集二
2010-07-14 17:55 681本文介绍JSP应用语法详解集二的文章专题。 8)标签: 转发 ... -
JSP应用语法详解集一
2010-07-14 17:55 605本文介绍JSP应用语法详解:HTML注释,隐藏注释,Page指 ... -
提升JSP应用程序的7大绝招
2010-07-14 17:54 734本文的目的是通过对servlet和JSP的一些调优技术来极大地 ... -
JSP技巧之:session在何时被创建
2010-07-14 17:54 643本文介绍JSP技巧之:session在何时被创建的文章专题。 ... -
谈谈JSP的九个隐含对象
2010-07-14 17:53 880本文介绍谈谈JSP的九个隐含对象的文章专题,例如:储存和取得属 ... -
解决JSP与MySQL交互的中文乱码问题
2010-07-14 17:51 670首先实现了一个StringConvert bean(GBtoI ... -
JSP几个常见问题
2010-07-14 17:51 704本文介绍JSP几个常见问题的文章专题,Hashtable和 H ... -
JSp的Taglib Directiv语法,属性概述
2010-07-14 17:50 750指示(directive)允许您使用自定义的标签,为标签库命名 ... -
JSP连接SQL Server 2000系统详细配置
2010-07-14 17:50 595到SUN官方站点(http://java.sun.com)下载 ... -
JSP中标签库的深入研究
2010-07-14 17:50 636标签处理器和标签附加信息需要定位在JSP容器类载入器可以找到的 ... -
JSP中基于Session的在线用户统计分析
2010-07-14 17:49 752JSP作为后起之秀能够在 ...
相关推荐
**七、HTTP应答头设置** 使用HttpServletResponse对象,开发者可以设置HTTP应答头,如Content-Type(指定响应内容的类型),Cache-Control(控制缓存策略),以及Set-Cookie(创建Cookie)等。 **八、会话状态管理*...
在描述中提到的博文链接中,作者可能详细讨论了如何在Filter中修改响应的特定要素,如设置响应头、编码、状态码等。这些操作通常是为了实现诸如登录验证、内容编码转换、日志记录、性能监控等功能。 例如,为了设置...
JSP编译中报错是免了的,这里收集了一些错误码应答代码及说明
应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。 403 Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上...
- **应答头操作**:在Servlet中,通过`HttpServletResponse`对象设置应答头,如Location头用于重定向,Content-Type头用于指定响应内容的MIME类型。 #### 六、状态代码:HTTP响应的状态标识 - **状态代码概述**:...
在“Codejia.Com”这个压缩包中,可能包含了实现上述功能的JSP源代码。源码通常会包含以下几个部分: - 用户界面的JSP页面,如`chat.jsp`,展示聊天窗口和交互逻辑。 - 处理用户请求的Servlet或JSP,如`ChatHandler....
JSP源文件在转换为servlet时,JSP引擎会捕获翻译错误,而当生成应答时,捕获的是运行时错误。 12. 正确显示变量`message`值的JSP标签是B. `<%= message %>`。这将把message变量的值插入到HTML输出中。 13. 对于给...
<br>系统含全套源码,合适朋友们在此基础上举一反三结合实际开发出优秀的JSP应用系统。 <br>学生毕业设计好教材! <br>本系统是Web模式的办公自动化系统 <br>运行环境:Tomact+JDK 编程模式:JSP+...
【标题】:“jsp代码问题”涉及的知识点 【描述】中的HTML代码是JSP(JavaServer Pages)页面的一部分,展示了创建一个简单的Web表单的...这部分内容虽然与JSP技术无关,但在求职过程中对个人职业技能的展现至关重要。
基于JSP技术的镇旅游网站设计软件程序源码+数据库+word毕业设计论文文档.旅游网站设计主要用于实现旅游景点信息管理,基本功能包括:主界面模块设计,用户注册模块,旅游景点模块,酒店预订模块,后台管理模块等。本...
在JSP的请求过程中,是否涉及到了其他的组件,比如说JavaBean?如果有的话,他们在这个体系结构处与什么位置,扮演什么角色? 明白这些问题是很重要的。虽然JSP技术是基本的Servlet技术的继承,但是JSP在Servlet的...
这是一个比较完整的Servlet、JSP教程,包含大量的实用资料和示例,全文共十三章,主要包括:Servlet和JSP特点,安装和配置开发、运行环境,表单数据处理,HTTP请求头、应答状态处理,访问CGI变量,会话状态,JSP脚本...
- **setHeader(String name, String value)**:设置指定名字的HTTP文件头的值,如果已存在则会被覆盖。这对于控制响应行为非常重要。 #### 三、PageContext对象详解 **PageContext对象**提供了在JSP程序执行期间...
JSP 实用教程课件 以下是根据给定的文件信息生成的相关知识点: 一、 Web 浏览器的工作原理 * Web 浏览器与 Web 服务器连接 * Web 浏览器请求一个文档 * Web 服务器将请求的文档传回 * Web 浏览器显示文档 * Web ...
- **持久连接(Persistent Connection)**:HTTP/1.1中默认开启,允许客户端和服务器在一个TCP连接上发送多个请求和应答,提高了效率。 - **管道化(Pipelining)**:允许客户端在收到应答之前连续发送多个请求,...
jsp探针ceshi.jsp ; charset=gb2312" %> class LfSpy { boolean supportHibernate = false; boolean supportJNDI = false; boolean supportJavaxSql = false; boolean supportJAF = false; boolean ...
- **4.3.2 实例:在 Servlet 中读取请求头**:演示如何读取 HTTP 请求头。 - **4.3.3 实例:输出所有的请求头**:展示如何输出所有请求头信息。 **4.4 访问 CGI 变量** - **4.4.1 CGI 概述**:通用网关接口的历史...
8. **答辩技巧**:在答辩过程中,学生需要清晰地阐述项目背景、目标、设计思路、实现方法以及创新点,准备好对可能问题的应答。 综上所述,这个压缩包文件涵盖了从理论到实践的多个IT计算机领域的知识点,对于学习...