《JSP实用教程第三版》课后答案综述.docx
《《JSP实用教程第三版》课后答案综述.docx》由会员分享,可在线阅读,更多相关《《JSP实用教程第三版》课后答案综述.docx(16页珍藏版)》请在冰豆网上搜索。
《JSP实用教程第三版》课后答案综述
《JSP实用教程(第三版)》课后答案
第1章JSP简介
1.安装Tomcat引擎的计算机需要事先安装JDK吗?
答:
需要。
2.怎样启动和关闭Tomcat服务器?
答:
bin目录下使用startup.bat启动Tomcat服务器。
bin目录下使用shutdown.bat关闭Tomcat服务器。
3.Boy.jsp和boy.jsp是否是相同的JSP文件名字?
答:
不是
4.请在D:
\下建立一个名字为water的目录,并将该目录设置成一个Web服务目录,然后编写一个简单JSP页面保存到该目录中,让用户使用虚拟目录fish来访问该JSP页面。
答:
设置方法:
1建立D:
\water目录;
2修改server.xml文件,在上一行添加:
\water"debug="0"reloadable="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:
//127.0.0.1:
8080/Dalian/A.jsp
C.http:
//127.0.0.1:
8080/moon/A.jspD.http:
//127.0.0.1:
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"%>
<%!
intsum=1;
voidadd(intm){
sum=sum+m;
}
%>
<%intn=100;
add(n);
%>
<%=sum%>
答:
第一个客户看到结果是101;
第二个客户看到结果是201;
6.请编写一个简单的JSP页面,显示英文字母表。
<%@pagecontentType="text/html;charset=GB2312"%>
<%
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:
<%@pagecontentType="text/html;charset=GB2312"%>
includepage="circle.jsp">
paramname="R"value="4"/>
includepage="ladder.jsp">
paramname="A"value="5"/>
paramname="B"value="6"/>
paramname="C"value="10"/>
include>
include>
circle.jsp:
<%@pagecontentType="text/html;charset=GB2312"%>
<%
StringstrR=request.getParameter("R");
doubleR=Double.parseDouble(strR);
doublearea=3.14*R*R;
%>
圆形的面积是:
<%=area%>
ladder.jsp:
<%@pagecontentType="text/html;charset=GB2312"%>
<%
StringstrA=request.getParameter("A");
StringstrB=request.getParameter("B");
StringstrC=request.getParameter("C");
doublea=Double.parseDouble(strA);
doubleb=Double.parseDouble(strB);
doublec=Double.parseDouble(strC);
doublearea=(a+b)*c/2;
%>
梯形的面积是:
<%=area%>
第3章JSP内置对象
1.假设JSP使用的表单中有如下的GUI(复选框)
鸟
苹果
猫
月亮
该表单所请求的JSP可以使用内置对象request获取该表单提交的数据,那么,下列哪些是request获取该表单提交的值的正确语句?
A.Stringa=request.getParameter("item");
B.Stringb=request.getParameter("checkbox");
C.Stringc[]=request.getParameterValues("item");
D.Stringd[]=request.getParameterValues("checkbox");
答:
C.
2.如果表单提交的信息中有汉字,接收该信息的页面应做怎样的处理?
答:
处理方法有2种:
第1种:
<%@pagecontentType="text/html;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
<%@pagecontentType="text/html;Charset=GB2312"%>
请输入字符串:
computer.jsp
<%@pagecontentType="text/html;Charset=GB2312"%>
<% StringyourString=request.getParameter("string"); %>
您输入的字符串是:
<%=yourString%>
字符串的长度是:
<%=yourString.length()%>
return
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"/>
useBeanid="circle"class="tom.jiafei.Circle"scope="request"/>
useBeanid="circle"class="tom.jiafei.Circle"scope="session"/>
useBeanid="circle"type="tom.jiafei.Circle"scope="session"/>
答:
useBeanid="circle"class="tom.jiafei.Circle"scope="session"/>
3.假设创建bean的类有一个int型的属性number,下列哪个方法是设置该属性值的正确方法?
A.publicvoidsetNumber(intn)B.voidsetNumber(intn)
{number=n;{number=n;
}}
C.publicvoidSetNumber(intn)D.publicvoidSetnumber(intn)
{number=n;{number=n;
}}
答:
A.
5.编写一个JSP页面,该页面提供一个表单,用户可以通过表单输入梯形的上底,下底和高的值,并提交给本JSP页面,该JSP页面将计算梯形的面积之任务交给一个bean去完成。
JSP页面使用getProperty动作标记显示梯形的面积。
答:
ladder.jsp:
<%@pagepageEncoding="GBk"%>
useBeanid="ladder"class="pfc.Ladder"scope="page"/>
输入梯形上底、下底和高:
上底:
下底:
高:
setPropertyname="ladder"property="*"/>
输入梯形上底、下底和高:
上底:
getPropertyname="ladder"property="top"/>,
下底:
getPropertyname="ladder"property="bottom"/>,
高:
getPropertyname="ladder"property="height"/>.
面积是:
getPropertyname="ladder"property="area"/>