web开发技术课后答案.docx
《web开发技术课后答案.docx》由会员分享,可在线阅读,更多相关《web开发技术课后答案.docx(17页珍藏版)》请在冰豆网上搜索。
web开发技术课后答案
web开发技术课后答案
【篇一:
《javaweb编程技术》课后习题答案】
aweb编程习题解析
第1章习题解析
1.略。
什么是url,什么是uri,它们都由哪几个部分组成,url和uri之间有什么关系?
2.答:
url称为统一资源定位符,url通常由4部分组成:
协议名称、页面所在主机的dns名、可选的端口号和资源的名称。
uri称为统一资源标识符,是以特定语法标识一个资源的字符串。
uri由模式和模式特有的部分组成,它们之间用冒号隔开,一般格式如下:
schema:
schema-specific-part
uri是url和urn的超集。
3.答:
①是url,①和②都是uri,③是urn
动态web文档技术有哪些?
服务器端动态文档技术的客户端动态文档技术有何不同?
4.答:
动态web文档技术包括服务器端动态文档技术和客户端动态文档技术,前者包括cgi技术、服务器扩展技术和html页面中嵌入脚本技术。
其中html页面中嵌入脚本技术包括asp、php和jsp技术。
最流行的客户端动态文档技术是在html页面中嵌入javascript脚本代码。
使用javascript可以设计交互式页面。
与服务器端动态文档不同,javascript脚本是在客户端执行的。
什么是servlet?
什么是servlet容器?
它的主要作用是什么?
5.答:
servlet是用servletapi开发的java程序,它运行在servlet容器中。
servlet容器是运行servlet的软件,主要用来扩展web服务器的功能。
简述开发一个servlet的上体步骤
6.答:
开发servlet的一般步骤包括:
(1)编写servlet源程序;
(2)编译;(3)将servlet部署到servlet容器中;(4)访问执行servlet。
要使一个servlet能够正确编译的运行,应该将什么文件加到classpath环境变量中?
7.答:
tomcat-install\lib\servlet-api.jar文件。
web应用程序的部署描述文件名是什么?
它是什么类型的文件?
应该存放在什么目录中?
8.答:
部
署描述文件名是web.xml,它是xml文件,应该存放在web应用程序的\web-inf目录中。
什么是404错误?
9.答:
当服务器找不到用户请求的资源时将发生404错误。
什么是jsp页面?
它与html页面有什么关系?
10.答:
jsp页面是嵌入了java脚本元素的html页面。
servlet与jsp各适用于什么场合?
11.答:
servlet主要用来实现业务逻辑和控制逻辑,jsp页面主要用来实现表示逻辑。
第2章习题解析
servlet接口中定义了哪几个方法?
1.答:
servlet接口定义了下面5个方法:
publicvoidinit(servletconfigconfig)
publicvoidservice(servletrequestrequest,servletresponseresponse)throwsservletexception,ioexception
publicvoiddestroy()
publicservletconfiggetservletconfig()
publicstringgetservletinfo()
简述servlet的生命周期,生命周期方法有哪几个?
2.答:
servlet是在容器中运行的组件,有一个从创建到销毁的过程,其中包括加载和实例化、初始化、提供服务以及销毁几个阶段。
其中生命周期方法有init()、service()和destroy()等3个。
发生哪些事件,浏览器会向服务器发出请求?
3.答:
发生下列事件,浏览器向服务器发出请求。
(1)用户点击了html页面中的超链接;
(2)用户在html页面中填写一个表单并点击提交按钮;
(3)用户在浏览器的地址栏中输入url并按回车键。
4.答:
查询串
5.答:
http请求结构由请求行、请求头、空行和请求数据组成。
请求行由方法名、请求资源的uri和使用的http版本3部分组成。
6.答:
http响应结构由状态行、响应头和响应数据3部分组成。
状态行由http版本、状态码和简短描述3部分组成。
7.答:
get请求主要用来从服务器检索资源,post请求主要用来向服务器发送数据。
它们的详细比较请参阅教材的表2.8。
8.答:
在servletrequet接口中定义了setattribute()、getattribute()、getattributenames()和removeattribute()方法来处理请求作用域的属性。
9.答:
forward()方法转发请求是服务器端控制权的转向,客户端地址栏中不显示转发
后的资源地址。
sendredirect()方法是服务器向浏览器发送302状态码,它使浏览器连接到新的位置,浏览器地址栏可看到地址的变化。
使用重定向,资源不能位于web-inf目录中。
10.答:
可先通过请求对象的getparameternames()方法得到enumeration对象,然后在其上得到每个请求参数名,再通过getparameter()得到请求参数值。
11.答:
a12.答:
b13.答:
e
14.答:
action=courseservlet.do
httpservlet
com.demo.courseservlet
courseservlet
15.答:
①e②d③c④b⑤a
第3章习题解析
1.答:
web应用程序是运行在应用服务器之中的。
应用服务器为web应用程序提供一种简单的和可管理的对系统资源的访问机制。
2.答:
web.xmlbankapp\web-inf
3.答:
d4.答:
a5.答:
d
6.答:
f7.答:
e8.答:
d
9.答:
getservletconfig().getservletcontext()或getservletcontext()
10.答:
b11.答:
b12.答:
d
13.答:
因为applet只能运行在客户端,所以可以将它放在web应用程序的文档根目录的任何位置,但不能将其放在web-inf目录或其子目录中。
14.答:
不能这样做,至少不能直接这样。
部署描述文件不允许为一个名称指定多个参数,所以必须像下面这样:
init-param
param-namecountries/param-name
param-valueaustralia,brazil,india,uk,us/param-value
init-param
然后在servlet中解析param-value串的值并解释字符串中列出的多个值。
15.答:
packagecom.demo;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.io.*;
publicclasshellocounterservletextendshttpservlet{
privateintegervisits=0;
publicvoiddoget(httpservletrequestrequest,
httpservletresponseresponse)
throwsioexception,servletexception{
response.setcontenttype(text/html;charset=gb2312);
printwriterout=response.getwriter();
visits=visits+1;
try{
thread.sleep(2000);
}catch(interruptedexceptione){
log(exceptionduringsleeping.);
}
out.println(htmlbody);
out.println(欢迎您!
br+该servlet已被访问+visits+次。
);out.println(/body/html);
}
}
修改后的servlet如下:
packagecom.demo;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.io.*;
publicclasshellocounterservletextendshttpservlet{
privateintegervisits=0;
privatestringdbpath=null;
publicvoidinit(){
try{
dbpath=getservletcontext().getrealpath(/web-inf/counter.db);
fileinputstreamfis=newfileinputstream(dbpath);
datainputstreamdis=newdatainputstream(fis);
visits=dis.readint();
dis.close();
}catch(exceptione){
log(errorloadingpersistentcounter,e);
}
}
publicvoiddoget(httpservletrequestrequest,
httpservletresponseresponse)
throwsioexception,servletexception{
response.setcontenttype(text/html;charset=gb2312);
printwriterout=response.getwriter();
synchronized(this){
visits=visits+1;
out.println(htmlbody);
out.println(欢迎您!
br+该servlet已被访问+visits+次。
);out.println(/body/html);
}
}
publicvoiddestroy(){
try{
fileoutputstreamfos=newfileoutputstream(dbpath);
dataoutputstreamdos=newdataoutputstream(fos);
dos.writeint(visits);
dos.close();
}catch(exceptione){
log(errorstoringpersistentcounter,e);
}
}
}
第4章习题解析
1.答:
使用请求对象(即httpservletrequest接口)的getsession()方法。
2.答:
如果客户在指定时间内没有访问服务器,则该会话超时。
对超时的会话对象,服务器使其失效。
通过会话对象的setmaxinactiveinterval()方法设置会话最大超时时间。
web.xml文件使用session-config元素的子元素session-timeout设置最大超时时间,如下所示。
session-config
session-timeout20/session-timeout
/session-config
这里的最大超时时间是对整个应用程序的所有会话有效,session-timeout元素指定的时间单位是分钟。
setmaxinactiveinterval()方法参数单位是秒。
3.答:
有些客户浏览器可能不支持cookie或用户阻止所有的cookie,此时不能用cookie实现会话。
4.答:
使用响应对象(即httpservletresponse接口)的encodeurl()方法或
encoderedirecturl()方法。
5.答:
不能。
因为许多用户是通过代理服务器访问internet的,此时服务器得到的是代理服务器的ip地址而不是实际用户的ip地址,因此这些用户的ip地址不唯一。
6.答:
d7.答:
a,b8.答:
a,d
9.答:
c10.答:
a,c11.答:
c
12.答:
c,d13.答:
b,c14.答:
c
15.答:
b16.答:
a17.答:
c
18.答:
a,b,d,f
19.答:
具有很大的影响。
该应用程序将不能维护用户的状态。
servlet容器将为每个客户的每次请求都创建一个新的会话。
修改这个问题的唯一方法是修改servlet代码加入url重写功能。
第5章习题解析
1.答:
包含jsp指令、jsp小脚本和jsp表达式。
2.答:
合法的jsp表达式:
%=500%
%=anint*3.5/100-500%
【篇二:
web应用开发技术(齐东元编著)课后习题答案】
l元素
①标题和段落②超链③html框架④html表单⑤html表格⑥html图像⑦html中的注释
4.什么是css层叠样式表?
css在网络程序设计中有什么作用?
css是cascadingstylesheet的缩写,译为“层叠样式表”或“级联样式表”,是为了弥补html在排版样式上的不足而制订的一套样式标准。
可以用来:
设置页面中的字体;定义层及其在页面中的位置;修改html标记。
作用:
减少图形文件的使用;集中管理样式内容;共享样式设定;将样式分类使
用
5.在web页面中使用css有哪些方法?
①在html标签中使用行内样式:
②在html页面中嵌入一个样式表:
③在html页面中链接一个外部样式表文件:
④通过import关键字导入样式表:
6.css是怎样通过选择器来指定页面样式的?
①类选择器(class)
使用类选择器可以在不同的标签上套用相同的样式。
其定义语法为:
.类名称{规则1;规则2;?
}
在html中使用类选择器的语法为:
标签名称class=类名称
②id选择器(id)
id选择器和类选择器很相似,也是用来区别套用的样式。
id选择器的定义语法为:
#id标识符{规则1;规则2;…}
在html中使用id选择器的语法为:
标签名称id=id标识符
③上下文选择器(contextual)
为html中的特定上下文定制的样式,其定义语法为:
标签1标签2{规则1;规则2;?
}
第二章
3.在使用vs2005创建一个网站项目时,有几种位置选项可以选择?
请分别简述。
在“位置”列表中有3个可选项,代表3种开发web应用的方式:
文件系统、http和ftp。
①文件系统
文件系统是默认的选项。
使用该选项可以把网站创建到当前物理文件系统上任何可以访问的地方,既可以是本机的一个目录,也可以在网络可访问的其他机器上。
通过文件系统创建的网站在发布之前不能够通过浏览器直接浏览,而只能在vs2005环境下运行。
②http
http方式指定iis为webserver。
开发的web应用程序必须是在iis的某个虚拟目录下,vs2005会自动创建虚拟目录。
③ftp
ftp方式允许开发者在远程计算机上通过ftp协议开发web应用程序。
4.试总结在开发过程中获得帮助的方法有哪些?
除了在网上的论坛中进行交流并获得帮助外,使用vs2005的联机帮助也是一个重要手段。
在使用vs2005的过程中,有六种方法可以获得“帮助”。
(1)f1搜索:
按f1键可获得上下文相关的帮助搜索功能。
(2)搜索:
使用搜索界面,返回与任何指定的术语或术语集相匹配的所有文档。
(3)索引:
索引可以快速找到本地MSDNLibrary中的文档。
(4)目录:
MSDNLibrary目录以分层的树视图结构显示库中的所
有主题。
(5)如何实现:
是MSDNLibrary的筛选视图,其中主要包括成为
“如何”或“演练”的文档,这些文档说明如何完成特定的开发任务。
(6)动态帮助:
根据代码编辑器中插入点的当前位置,显示到.NETFr
amework和C#语言的参考文档的连接。
第三章
1.c#语言控制台应用程序的入口在哪里?
在visualc#中的模板中。
2.如何为c#语言程序增加注释?
c#中使用双斜杠即是//来进行单行注释或者使用分隔符/*和*/来进行多行注释。
3.c#语言支持哪些数据类型?
与c++语言相比有哪些特点?
支持值类型和引用类型;值类型分为:
整数型、布尔型、实数型、字符型、结构类型、枚举类型;引用类型分为:
类、数组
c#是一个“纯“的面向对象的语言不再有全局变量和局部变量任何变量都必须属于一个类。
4.c#语言中的值类型和引用类型有什么区别?
区别:
值类型通常被分配在堆栈上,它的变量直接包含变量的实例;引用类型总是分配在托管堆上,引用类型的变量通常仅包含一个指向实例的指针,系统通过该指针来引用实例。
5.在c#语言中结构类型和类的区别是什么?
区别:
类是引用类型,结构是值类型;结构不能像类一样继承;结构类型永远不会是抽象的。
6.c#语言引入装箱和拆箱概念有何意义?
意义:
装箱和拆箱机制使得在c#类型系统中任何值类型、引用类型、和object对象类型之间都可以进行转换。
7.请简述装箱和拆箱的过程?
对值类型装箱将把该值类型打包到object引用类型的一个实例中;拆箱将从对象中提取值类型。
8.console类都提供了哪些输入输出方法?
p45
输入:
writeline
输出:
readline
9.switch语句在c#语言与c语言中有哪些异同点?
c语言中允许case标签后不出现break语句,但c#语言不允许这样;c#语言可以把字符串当成常量表达式来使用,所以switch语句的控制类型可以是string类型。
10.判断下列写法的正误,如果有错误请指出错误原因?
(1)if(nvalue=5)i=1;错误,改为if(nvalue==5)i=1;
(2)int[]nvalue={1,2,3,4,5};
foreach(intninnvalue)
{
n++;
console.writeline(n);
}正确
11.错误与异常有什么区别?
为什么要进行异常处理?
用于异常处理的语句有哪些?
区别:
错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象。
当错误中断流程时,该程序将尝试寻找异常处理程序(一段告诉程序如何对错误做出响应的代码),以帮助程序恢复流程。
换句话说,错误是一个事件,而异常是该事件创建的对象;
如果不进行异常处理,即不对错误做出响应,程序的健壮性就会大打折扣,甚至无法保证正常运行,所以必须要进行异常处理。
用于异常处理的语句有:
try-catch语句、try-catch-finally语句、throw语句。
12.编写一个程序段,输出1~5的平方值,要求:
(1)用for语句实现;
(2)用while语句实现;
(3)用do-while语句实现。
1.解:
usingsystem;
2.usingsystem.collections.generic;
3.usingsystem.text;
4.namespaceoutputsquarevalue
5.{
6.classprogram
7.{
8.staticvoidmain()
9.{
10.//用for语句实现
11.for(inti=1;i=5;i++)
12.{
13.console.writeline({0}的平方值为{1},i,i*i);
14.}
15.//用while语句实现
16.intj=0;
17.while(j++5)
18.{
19.console.writeline({0}的平方值为{1},j,j*j);
20.}
21.//用do-while语句实现
22.intk=1;
23.do
24.{
25.console.writeline({0}的平方值为{1},k,k*k);
26.}while(k++5);
27.console.readline();
28.}
29.}
30.}
13.编写一个程序段,输出fibonacci数列的前十位数值?
1.usingsystem;
2.usingsystem.collections.generic;
3.usingsystem.text;
namespaceoutputsquarevalue
publicstaticvoidmain(string[]args)
inti;
for(i=2;i13i2;i++)
a[i]=a[i-1]+a[i-2];
}
console.writeline(a[i]);
console.readline();
}}
14.编写一个程序段,接收一个长度大于4的字符串,并完成下列功能:
(1)输出字符段的长度;
usingsystem;
usingsystem.collections.generic;
usingsystem.linq;
usingsystem.text;
namespaceconsoleapplication2
{
classprogram
{
staticvoidmain(string[]args)
{
system.console.writeline(请输入一个字符串:
);
stringstr1=console.readline();
if(str1.length=4)
{
console.writeline(您输入的字符串不对:
);
}
else
{
console.writeline(字符串长度为:
);
console.writeline(str1.length);
}
(2)输出字符段中第一次出现a的位置;
chara;
for(inti=0;istr1.length;i++)
{
if(str1[i]==a)
{
console.writeline(第一次出现a的位置:
);
console.writeline(i+1);
break;
}
}
(3)在字符串的第四个字符后面插入子串“hello”并输出心字符串;
【篇三:
web课后习题答案】
1.什么是静态网页?
什么是动态网页?
两