jsp程序设计第2版习题解答.doc
《jsp程序设计第2版习题解答.doc》由会员分享,可在线阅读,更多相关《jsp程序设计第2版习题解答.doc(22页珍藏版)》请在冰点文库上搜索。
![jsp程序设计第2版习题解答.doc](https://file1.bingdoc.com/fileroot1/2023-4/30/1231d998-d085-478c-b9a3-1ae2cb89d92f/1231d998-d085-478c-b9a3-1ae2cb89d92f1.gif)
习题一
1.答:
确保Tomcat服务器使用的是Java_home环境变量设置的JDK。
2.答:
属于操作题,解答略。
3.答:
Web服务目录的下的目录称为该Web服务目录下的相对Web服务目录。
浏览器的地址栏中键入:
http:
//IP:
8080/Web目录名字/子目录名字/JSP页面。
4.答:
修改Tomcat服务器安装目录中conf文件夹中的主配置文件:
server.xml,只要没有其他应用程序正在占用80,就可以将端口号设置为80。
习题二
1.答:
“<%!
”和“%>”之间声明的变量在整个JSP页面内都有效,称为JSP页面的成员变量,成员变量的有效范围与标记符号<%!
、%>所在的位置无关。
所有用户共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。
“<%”和“%>”之间声明的变量称为局部变量,局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。
运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。
当一个线程将Java程序片执行完毕,运行在该线程中的Java程序片的局部变量释放所占的内存。
2.答:
两次。
3.答:
第一个问题的答案是允许;第二个问题的答案是不允许。
4.答:
第一个用户看到的sum的值是610,第二个用户看到的sum的值是1210
5.答:
<%@pagecontentType="text/html;charset=GB2312"%>
<%
for(charc='A';c<='Z';c++)
{
out.print(""+c);
}
%>
6.答:
include指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件,即JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。
因此,插入文件后,必须保证新合并成的JSP页面符合JSP语法规则,即能够成为一个JSP页面文件。
include动作标记告诉JSP页面动态加载一个文件,不把JSP页面中动作指令include所指定的文件与原JSP页面合并一个新的JSP页面,而是告诉Java解释器,这个文件在JSP运行时(Java文件的字节码文件被加载执行)才被处理。
如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;如果包含的文件是JSP文件,JSP引擎就执行这个文件,然后将执行的结果发送到客户端,并由客户端负责显示这些结果。
7.答:
main.jsp:
<%@pagecontentType="text/html;charset=GB2312"%>
includepage="lader.jsp">
paramname="a"value="5"/>
paramname="b"value="6"/>
paramname="h"value="10"/>
include>
lader.jsp:
<%@pagecontentType="text/html;charset=GB2312"%>
<%
StringstrA=request.getParameter("a");
StringstrB=request.getParameter("b");
StringstrH=request.getParameter("h");
doublea=Double.parseDouble(strA);
doubleb=Double.parseDouble(strB);
doubleh=Double.parseDouble(strH);
doublearea=(a+b)*h/2;
%>
梯形面积:
<%=area%>
习题三
1.答:
不可以
2.答:
如果某个Web服务目录下的JSP页面准备调用一个Tag文件,那么必须在该Web服务目录下,建立目录:
Web服务目录\WEB-INF\tags,其中,WEB-INF和tags都是固定的子目录名称,而tags下的子目录名字可由用户给定。
一个Tag文件必须保存到tags目录或其下的子目录中。
3.答:
body-content、language、import、pageEncoding。
4.答:
使用attribute指令可以动态地向该Tag文件传递对象的引用。
5.答:
使用variable指令可以将Tag文件中的对象返回给调用该Tag文件的JSP页面。
6.答:
Lianxi6.jsp:
<%@pagecontentType="text/html;Charset=GB2312"%>
<%@taglibtagdir="/WEB-INF/tags"prefix="computer"%>
以下是调用Tag文件的效果:
RectsideA="5"sideB="6"/>
以下是调用Tag文件的效果:
Circleradius="16"/>
Rect.tag:
这是一个Tag文件,负责计算矩形的面积。
<%@attributename="sideA"required="true"%>
<%@attributename="sideB"required="true"%>
<%!
publicStringgetArea(doublea,doubleb)
{if(a>0&&b>0)
{
doublearea=a*b;
return"
矩形的面积:
"+area;
}
else
{return("
"+a+","+b+"不能构成一个矩形,无法计算面积");
}
}
%>
<%out.println("
JSP页面传递过来的两条边:
"+sideA+","+sideB);
doublea=Double.parseDouble(sideA);
doubleb=Double.parseDouble(sideB);
out.println(getArea(a,b));
%>
Circle.tag:
这是一个Tag文件,负责计算园的面积。
<%@attributename="radius"required="true"%>
<%!
publicStringgetArea(doubler)
{if(r>0)
{
doublearea=Math.PI*r*r;
return"
圆的面积:
"+area;
}
else
{return("
"+r+"不能构成一个圆,无法计算面积");
}
}
%>
<%out.println("
JSP页面传递过来的半径:
"+radius);
doubler=Double.parseDouble(radius);
out.println(getArea(r));
%>
7.答:
one.jsp:
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pageimport="java.text.*"%>
<%@taglibtagdir="/WEB-INF/tags"prefix="computer"%>
GetAreasideA="3"sideB="6"sideC="5"/>
面积保留3位小数点:
<%
NumberFormatf=NumberFormat.getInstance();
f.setMaximumFractionDigits(3);
doubleresult=area.doubleValue();
Stringstr=f.format(result);
out.println(str);
%>