最新《JSP实用教程第三版》课后答案资料Word文档格式.docx
《最新《JSP实用教程第三版》课后答案资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新《JSP实用教程第三版》课后答案资料Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
true"
/>
3使用http:
//localhost:
8080/fish/example1_1.jsp访问example1_1.jsp页面.
5.假设Dalian是一个Web服务目录,其虚拟目录为moon。
A.jsp保存在Dalian的子目录sea中。
那么在Tomcat服务器(端口号8080)所在计算机的浏览器键入下列哪种方式是访问A.jsp的正确方式?
A.http:
//127.0.0.1:
8080/A.jspB.http:
8080/Dalian/A.jsp
C.http:
8080/moon/A.jspD.http:
8080/moon/sea/A.jsp
D
6.如果想修改Tomcat服务器的端口号,应当修改哪个文件?
能否将端口号修改为80?
修改Tomcat服务器的conf目录下的主配置文件server.xml可以更改端口号.
若Tomcat服务器上没有其它占有80端口号的程序,可以将其修改为80,否则不能。
第2章JSP语法
1."<
%!
"和"%>
"之间声明的变量与"<
%"和"%>
"声明的变量有何不同?
答:
"<
"声明的变量为类的成员变量,其所占的内存直到Tomcat服务器关闭才释放.
"为类方法中声明的局部变量,仅在JSP页面后继的程序片及表达式中有效.
2.如果有2个用户访问一个JSP页面,该页面中的Java程序片将被执行几次?
2次(当有一个用户访问JSP页面,JAVA程序片就被访问一次).
5.假设有两个不同用户访问下列JSP页面hello.jsp,请问第一个访问和第二个访问hello.jsp页面的用户看到的页面的效果有何不同?
hello.jsp
<
%@pagecontentType="
text/html;
charset=GB2312"
%>
%@pageisThreadSafe="
false"
BODY>
HTML>
intsum=1;
voidadd(intm){
sum=sum+m;
}
%>
%intn=100;
add(n);
%=sum%>
/BODY>
/HTML>
第一个客户看到结果是101;
第二个客户看到结果是201;
6.请编写一个简单的JSP页面,显示英文字母表。
%
for(charc='
A'
;
c<
='
Z'
c++)
{
out.println("
"
+c);
}
7.请简单叙述include指令标记和include动作标记的不同.
include指令标记:
是把被包含的文件的内容放于包含文件中,组成一个文件后编译运行.
include动作标记:
是把被包含的文件的运行结果放于包含文件运行产生的结果中,这2个文件各自编译运行.
8.编写三个JSP页面:
main.jsp、circle.jsp、ladder.jsp,将三个JSP页面保存在同一web服务目录中。
main.jsp使用include动作标记加载circle.jsp和ladder.jsp页面。
circle.jsp页面可以计算并显示圆的面积。
ladder.jsp页面可以计算并显示梯形的面积。
当circle.jsp和ladder.jsp被加载时获取main.jsp页面include动作标记的param子标记提供的圆的半径以及梯形的上底、下底和高的值。
main.jsp:
html>
body>
jsp:
includepage="
circle.jsp"
>
paramname="
R"
value="
4"
ladder.jsp"
A"
5"
B"
6"
C"
10"
/jsp:
include>
/body>
/html>
circle.jsp:
StringstrR=request.getParameter("
);
doubleR=Double.parseDouble(strR);
doublearea=3.14*R*R;
p>
圆形的面积是:
%=area%>
ladder.jsp:
StringstrA=request.getParameter("
StringstrB=request.getParameter("
StringstrC=request.getParameter("
doublea=Double.parseDouble(strA);
doubleb=Double.parseDouble(strB);
doublec=Double.parseDouble(strC);
doublearea=(a+b)*c/2;
梯形的面积是:
第3章JSP内置对象
1.假设JSP使用的表单中有如下的GUI(复选框)
inputtype="
checkbox"
name="
item"
bird"
鸟
apple"
苹果
cat"
猫
moon"
月亮
该表单所请求的JSP可以使用内置对象request获取该表单提交的数据,那么,下列哪些是request获取该表单提交的值的正确语句?
A.Stringa=request.getParameter("
B.Stringb=request.getParameter("
C.Stringc[]=request.getParameterValues("
D.Stringd[]=request.getParameterValues("
C.
2.如果表单提交的信息中有汉字,接收该信息的页面应做怎样的处理?
处理方法有2种:
第1种:
Charset=GB2312"
指令中的Charset首字母”C”大写.
第2种:
%Stringstr1=request.getParameter("
number"
bytec[]=str1.getBytes("
ISO-8859-1"
str1=newString(c);
3.编写两个JSP页面inputString.jsp和computer.jsp,用户可以使用inputString.jsp提供的表单输入一个字符串,并提交给computer.jsp页面,该页面通过内置对象获取inputString.jsp页面提交的字符串,计算并显示该字符串的长度。
inputString.jsp
Fontsize=5>
FORMaction="
computer.jsp"
method=postname=form>
BR>
请输入字符串:
INPUTtype="
text"
string"
"
/BR>
INPUTTYPE="
submit"
提交"
reset"
重置"
>
/FORM>
/FONT>
computer.jsp
%
StringyourString=request.getParameter("
P>
您输入的字符串是:
%=yourString%>
/P>
字符串的长度是:
%=yourString.length()%>
/p>
ahref="
inputString.jsp"
return<
/a>
4.response调用sendRedirect(URL:
url)方法的作用是什么?
从一个页面跳转到sendRedirect(URL:
url)中url指定的页面,并且这种跳转是客户端跳转.
5.略
6.一个用户在不同Web服务目录中的session对象相同吗?
不相同.
7.一个用户在同一Web服务目录的不同子目录的session对象相同吗?
相同.
第4章JSP与Javabean
1.假设Web服务目录mymoon中的JSP页面要使用一个bean,该bean的包名为blue.sky。
请说明,应当怎样保存bean的字节码文件?
(1)在当前Web服务目录下建立如下目录结构:
(2)Web服务目录\WEB-INF\classes
(3)根据类的包名,在目录classes下建立相应的子目录.即:
Web服务目录\WEB-INF\classes\blue\sky
(4)将获得的字节码文件保存在其中.
2.tom.jiafei.Circle是创建bean的类,下列哪个标记是正确创建session周期bean的标记?
useBeanid="
circle"
class="
tom.jiafei.Circle"
scope="
page"
request"
session"
type="
3.假设创建bean的类有一个int型的属性number,下列哪个方法是设置该属性值的正确方法?
A.publicvoidsetNumber(intn)B.voidsetNumber(intn)
{number=n;
{number=n;
}}
C.publicvoidSetNumber(intn)D.publicvoidSetnumber(intn)
}}
A.
5.编写一个JSP页面,该页面提供一个表单,用户可以通过表单输入梯形的上底,下底和高的值,并提交给本JSP页面,该JSP页面将计算梯形的面积之任务交给一个bean去完成。
JSP页面使用getProperty动作标记显示梯形的面积。
%@pagepageEncoding="
GBk"
ladder"
pfc.Ladder"
BODYbgcolor=yellow>
Fontsize=3>
Method="
post"
输入梯形上底、下底和高:
上底:
Inputtype=textname="
top"
value=0>
下底:
bottom"
高:
height"
Inputtype=submitvalue="
setPropertyname="
property="
*"
getPropertyname="
下底:
高:
.
面积是:
area"
Ladder.java:
packagepfc;
publicclassLadder
{
doubletop=0,bottom=0,height=0,area=-1;
publicdoublegetArea()
{area=(top+bottom)*height/2;
returnarea;
publicdoublegetBottom(){
returnbottom;
publicvoidsetBottom(doublebottom){
this.bottom=bottom;
publicdoublegetHeight(){
returnheight;
publicvoidsetHeight(doubleheight){
this.height=height;
publicdoublegetTop(){
returntop;
publicvoidsetTop(doubletop){
this.top=top;
6.编写两个JSP页面a.jsp和b.jsp,a.jsp页面提供一个表单,用户可以通过表单输入矩形的两个边长提交给b.jsp页面,b.jsp调用一个bean去完成计算矩形面积的任务。
b.jsp页面使用getProperty动作标记显示矩形的面积。
a.jsp:
b.jsp"
输入矩形的长和宽:
长:
longside"
宽:
width"
b.jsp:
rectangle"
pfc.Rectangle"
矩形的长和宽:
宽:
Rectangle.java:
publicclassRectangle
doublelongside=0,width=0,area=-1;
{area=longside*width;
publicdoublegetLongside(){
returnlongside;
publicvoidsetLongside(doublelongside){
this.longside=longside;
publicdoublegetWidth(){
returnwidth;
publicvoidsetWidth(doublewidth){
this.width=width;
第5章JavaServlet基础
1.servlet对象是在服务器端还是在客户端创建的?
服务器端.
2.servlet对象被创建后首选调用init方法还是service方法?
init方法.
3.“servlet第一次被请求加载时调用init方法,当后续的客户请求servlet对象时,servlet对象不再调用init方法”,这样的说法是否正确?
正确.
4.假设创建servlet的类是tom.jiafei.Dalian,创建的servlet对象的名字是myservlet,应当怎样配置web.xml文件?
?
xmlversion=“1.0”encoding="
web-app>
servlet>
!
--创建一个servlet对象-->
servlet-name>
myservlet<
/servlet-name>
--对象名-->
servlet-class>
tom.jiafei.Dalian<
/servlet-class>
--指定创建对象的servlet-->
/servlet>
servlet-mapping>
--为Servlet进行映射地址-->
--必须与Servlet标记中的servlet-name指定的名称相同-->
--具体的映射路径,前面必须有一个/-->
url-pattern>
/lookHello<
/url-pattern>
/servlet-mapping>
…..
/web-app>
5.如果Servlet类不重写service方法,那么应当重写哪两个方法?
doGet方法或doPost方法。
6.HttpServletResponse类的sendRedirect方法和RequestDispatcher类的forward方法有何不同?
javax.servlet.http.HttpServletResponse提供的方法
voidsendRedirect(String
location)throwsIOException
客户端跳转.即当前页面可用request对象获取用户提交参数,而目标页面都不可用request对象获取用户提交参数.
转发
javax.servlet.RequestDispatcher接口提供的方法
voidforward(ServletRequest
request,ServletResponse
response)
//Forwardsarequestfromaservlettoanotherresource(servlet,JSPfile,orHTMLfile)ontheserver.
服务器跳转.即当前页面和目标页面都可用request对象获取用户提交参数.
7.Servlet对象怎样获得用户的会话对象?
在doGet()或doPost()方法中使用获取当前会话对象.
HttpSessionsession=request.getSession(true);
一个用户在不同的Servlet中获取的session对象是完全相同的,不同的用户的session对象互不相同。
第6章