admin 管理员组

文章数量: 1184232


2024年3月7日发(作者:css超链接)

(完整版)《JSP实用教程(第三版)》课后答案

《JSP实用教程(第三版)》课后答案

第1章 JSP简介

1.

安装Tomcat引擎的计算机需要事先安装JDK吗?

答:需要。

2.

怎样启动和关闭Tomcat服务器?

答:bin目录下使用启动Tomcat服务器。bin目录下使用shutdown。bat关闭Tomcat服务器。

3. Boy。jsp和boy。jsp是否是相同的JSP文件名字?

答:不是

4. 请在D:下建立一个名字为water的目录,并将该目录设置成一个Web服务目录,然后编写一个简单JSP页面保存到该目录中,让用户使用虚拟目录fish来访问该JSP页面.

答:设置方法:

建立D: water目录;

修改文件,在〈/host〉上一行添加:

〈Context path=”/fish” docBase=”D: water” debug="0” reloadable=”true"/〉

使用http://localhost:8080/ fish /example1_1。jsp访问example1_1。jsp页面。

5。 假设Dalian是一个Web服务目录,其虚拟目录为moon。保存在Dalian的子目录sea中。那么在Tomcat服务器(端口号8080)所在计算机的浏览器键入下列哪种方式是访问A。jsp的正确方式?

A.127.0.0.1:8080/A。jsp B。 http://127.0。0.1:8080/Dalian/

1

(完整版)《JSP实用教程(第三版)》课后答案

C。 http://127。0.0。1:8080/moon/A。jsp D。 http://127.0.0.1:8080/moon/sea/

答:D

6.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80?

答:修改Tomcat服务器的conf目录下的主配置文件可以更改端口号.

若Tomcat服务器上没有其它占有80端口号的程序,可以将其修改为80,否则不能。

2

(完整版)《JSP实用教程(第三版)》课后答案

第2章 JSP语法

1。"〈%!"和"%〉"之间声明的变量与"<%"和"%>"声明的变量有何不同?

答:

"〈%!"和"%>"声明的变量为类的成员变量,其所占的内存直到Tomcat服务器关闭才释放.

"〈%"和"%>"为类方法中声明的局部变量,仅在JSP页面后继的程序片及表达式中有效。

2. 如果有2个用户访问一个JSP页面,该页面中的Java程序片将被执行几次?

答:2次(当有一个用户访问JSP页面,JAVA程序片就被访问一次)。

5. 假设有两个不同用户访问下列JSP页面hello。jsp,请问第一个访问和第二个访问页面的用户看到的页面的效果有何不同?

hello。jsp

<%@ page contentType="text/html;charset=GB2312” %>

<%@ page isThreadSafe=”false" %〉

〈BODY>〈HTML〉

<%! int sum=1;

void add(int m){

sum = sum +m;

%〉

〈% int n =100;

add(n);

%〉

<%=sum%>

3

(完整版)《JSP实用教程(第三版)》课后答案

〈/BODY〉

答:第一个客户看到结果是101;

第二个客户看到结果是201;

6。 请编写一个简单的JSP页面,显示英文字母表.

<%@ page contentType=”text/html;charset=GB2312” %〉

〈%

for(char c=’A';c<='Z’;c++)

{

out。println(" ”+c);

%〉

〈/BODY>

7。 请简单叙述include指令标记和include动作标记的不同。

答:

include指令标记:是把被包含的文件的内容放于包含文件中,组成一个文件后编译运行。

include动作标记: 是把被包含的文件的运行结果放于包含文件运行产生的结果中,这2个文件各自编译运行。

8. 编写三个JSP页面:、、,将三个JSP页面保存在同一web服务目录中。main。jsp使用include动作标记加载和页面.页面可以计算并显示圆的面积。页面可以计算并显示梯形的面积.当和被加载时获取main。jsp页面include动作标记的param子标记提供的圆的半径以及梯形的上底、下底和高的值。

答:

:

〈%@ page contentType=”text/html;charset=GB2312” %〉

4

(完整版)《JSP实用教程(第三版)》课后答案

〈HTML〉

<% double r=3,a=2,b=5,c=2;

%〉

〈br〉加载计算半径为 〈%=r%〉的圆的面积:

〈jsp:include page="circle。jsp”>

〈jsp:param name=”sideR" value=”<%=r%〉”/>

〈/jsp:include〉

加载计算上底,下底,高为<%=a%〉,<%=b%〉,<%=c%〉的梯形面积:

〈jsp:include page=”ladder。jsp"〉

〈jsp:param name="sideB" value=”<%=b%〉"/〉

〈%@ page contentType=”text/html;charset=GB2312" %>

<%! public String getArea(double a,double b,double c)

if(a>0&&b>0&&c〉0)

{

double area=((a+b)*c)/2。0;

5

(完整版)《JSP实用教程(第三版)》课后答案

return ”"+area;

else

{

return (””+c+"传递的参数小于零,出现错误!” );

}

%〉

〈% String sideA=ameter("sideA”);

String sideB=ameter(”sideB");

String sideC=ameter("sideC");

double a=Double。parseDouble(sideA);

double b=ouble(sideB);

double c=Double。parseDouble(sideC);

%〉

我是被加载的文件,负责计算梯形的面积

给我传递的上底,下底,高分别是:〈%=sideA%>,〈%=sideB%>,<%=sideC%>

〈br>圆形的面积:〈%=getArea(a,b,c) %〉

〈/font>

circle。jsp:

〈%@ page contentType=”text/html;charset=GB2312” %〉

6

(完整版)《JSP实用教程(第三版)》课后答案

〈%!public String getArea(double r)

{

if(r〉0)

{

double area=3.14*r*r;

return ””+area;

}

else

{

return ("”+r+”传递的参数小于零,出现错误!请重新检查r的数值!" );

%>

〈% String sideR=ameter(”sideR");

double r=ouble(sideR);

%〉

我是被加载的文件,负责计算圆的面积〈br>

给我传递的半径是:〈%=sideR%>

〈br〉圆形的面积:<%=getArea(r) %〉

第3章 JSP 内置对象

7

(完整版)《JSP实用教程(第三版)》课后答案

1。假设JSP使用的表单中有如下的GUI(复选框)

〈input type=”checkbox" name="item" value=”apple”>苹果

〈input type=”checkbox" name=”item” value=”cat”>猫

月亮

该表单所请求的JSP可以使用内置对象request获取该表单提交的数据,那么,下列哪些是request获取该表单提交的值的正确语句?

A。 String a=request。getParameter(”item");

B。 String b=request。getParameter("checkbox");

C。 String c[]=request。getParameterValues("item”);

D。 String d[]=request。getParameterValues("checkbox");

答: C。

2。 如果表单提交的信息中有汉字,接收该信息的页面应做怎样的处理?

答:处理方法有2种:

第1种:

<%@ page contentType=”text/html;Charset=GB2312" %〉指令中的Charset首字母”C”大写。

第2种:

<% String str1=request。getParameter(”number”);

byte c[]=str1。getBytes("ISO-8859-1");

str1=new String(c);

%〉

8

(完整版)《JSP实用教程(第三版)》课后答案

3。编写两个JSP页面和computer。jsp,用户可以使用inputString。jsp提供的表单输入一个字符串,并提交给页面,该页面通过内置对象获取页面提交的字符串,计算并显示该字符串的长度。

答: inputString。jsp

<%@ page contentType="text/html;Charset=GB2312" %〉

〈Font size=5>

〈BR〉请输入字符串:〈/BR>

〈INPUT TYPE=”submit” value=”提交” name=”submit”>

〈/HTML>

computer。jsp

<%@ page contentType="text/html;Charset=GB2312" %〉

〈% String yourString=ameter("string”); %〉

您输入的字符串是:〈%=yourString %>〈/P>

〈p>字符串的长度是:〈%=() %>〈/p〉

〈a href = ""〉return

〈/FONT>〈/BODY〉

9

(完整版)《JSP实用教程(第三版)》课后答案

4. response调用sendRedirect(URL: url)方法的作用是什么?

答:从一个页面跳转到sendRedirect(URL: url)中url指定的页面,并且这种跳转是客户端跳转.

5。 略

6. 一个用户在不同Web服务目录中的session对象相同吗?

答:不相同。

7。 一个用户在同一Web服务目录的不同子目录的session对象相同吗?

答:相同.

10

(完整版)《JSP实用教程(第三版)》课后答案

第4章 JSP与Javabean

1. 假设Web服务目录mymoon中的JSP页面要使用一个bean,该bean的包名为blue。sky。请说明,应当怎样保存bean的字节码文件?

答:

(1)在当前Web服务目录下建立如下目录结构:

(2)Web服务目录WEB-INFclasses

(3)根据类的包名,在目录classes下建立相应的子目录。即:

Web服务目录WEB—INFclassesbluesky

(4)将获得的字节码文件保存在其中。

2。 tom。是创建bean的类,下列哪个标记是正确创建session周期bean的标记?

〈jsp:useBean id="circle” class=”tom。jiafei。Circle” scope=”page”/〉

答:

3。 假设创建bean的类有一个int型的属性number,下列哪个方法是设置该属性值的正确方法?

A. public void setNumber(int n) B。 void setNumber(int n)

{ number=n; { number =n;

} }

11

(完整版)《JSP实用教程(第三版)》课后答案

C. public void SetNumber(int n) D。 public void Setnumber(int n)

{ number =n; { number =n;

} }

答: A.

5. 编写一个JSP页面,该页面提供一个表单,用户可以通过表单输入梯形的上底,下底和高的值,并提交给本JSP页面,该JSP页面将计算梯形的面积之任务交给一个bean去完成。JSP页面使用getProperty动作标记显示梯形的面积.

答:

ladder。jsp:

<%@ page pageEncoding=”GBk" %〉

〈jsp:useBean id="ladder" class="pfc。Ladder" scope=”page"/〉

〈HTML>〈BODY bgcolor=yellow〉〈Font size=3>

〈FORM action=”" Method=”post" >

输入梯形上底、下底和高:

上底:

下底:〈Input type=text name="bottom" value=0>

高:

〈jsp:setProperty name=”ladder” property=”*”/〉

输入梯形上底、下底和高:

上底:〈jsp:getProperty name=”ladder” property="top”/〉,

12

(完整版)《JSP实用教程(第三版)》课后答案

下底:,

高:〈jsp:getProperty name="ladder" property=”height”/>。

〈BR>面积是:

〈/FONT>

Ladder。java:

package pfc;

public class Ladder

double top=0,bottom=0,height=0,area=-1;

public double getArea()

{ area=(top+bottom)*height/2;

return area;

}

public double getBottom() {

public void setBottom(double bottom) {

public double getHeight() {

13

return bottom;

= bottom;

return height;

(完整版)《JSP实用教程(第三版)》课后答案

public void setHeight(double height) {

}

public double getTop() {

}

public void setTop(double top) {

}

this。height = height;

return top;

= top;

6。 编写两个JSP页面和b。jsp,a。jsp页面提供一个表单,用户可以通过表单输入矩形的两个边长提交给页面,b。jsp调用一个bean去完成计算矩形面积的任务.页面使用getProperty动作标记显示矩形的面积。

答:

a。jsp:

〈%@ page pageEncoding=”GBk” %>

〈jsp:useBean id="ladder” class="pfc。Ladder" scope="page”/>

〈HTML>〈BODY bgcolor=yellow〉

输入矩形的长和宽:

长:

宽:

14

(完整版)《JSP实用教程(第三版)》课后答案

〈Input type=submit value="提交”>

〈/FORM〉

〈/FONT>〈/BODY>〈/HTML>

〈%@ page pageEncoding=”GBk” %〉

〈HTML〉〈BODY bgcolor=yellow〉〈Font size=3>

〈jsp:setProperty name="rectangle” property="*”/〉

矩形的长和宽:

长:

宽:〈jsp:getProperty name="rectangle" property=”width”/〉,

〈BR〉面积是: 〈jsp:getProperty name=”rectangle” property="area”/〉

〈/FONT>〈/BODY>

Rectangle。java:

package pfc;

public class Rectangle

{

double longside=0,width=0,area=—1;

public double getArea()

{ area=longside*width;

return area;

public double getLongside() {

15

(完整版)《JSP实用教程(第三版)》课后答案

}

return longside;

public void setLongside(double longside) {

de = longside;

public double getWidth() {

return width;

public void setWidth(double width) { = width;

}

16

(完整版)《JSP实用教程(第三版)》课后答案

第5章Java Servlet 基础

1.

servlet对象是在服务器端还是在客户端创建的?

答:服务器端.

2.

servlet对象被创建后首选调用init方法还是service方法?

答:init方法。

3.

“servlet第一次被请求加载时调用init方法,当后续的客户请求servlet对象时, servlet对象不再调用init方法”, 这样的说法是否正确?

答:正确。

4.

假设创建servlet的类是,创建的servlet对象的名字是myservlet,应

当怎样配置文件?

答:

〈?xml version=“1。0" e ncoding=”ISO—8859-1"?〉

〈web—app>

〈servlet〉 〈!--创建一个servlet对象 —->

〈servlet—name〉myservlet 〈!-—对象名 ——>

〈servlet—class〉。Dalian

〈servlet—name>myservlet

〈/servlet-mapping>

…..

〈/web-app〉

5.

如果Servlet类不重写service方法,那么应当重写哪两个方法?

答:doGet方法或doPost方法。

6. HttpServletResponse类的sendRedirect方法和RequestDispatcher类的forward方法有何不同?

答:

javax。 .HttpServletResponse提供的方法

void sendRedirect(String location) throws IOException

客户端跳转.即当前页面可用request对象获取用户提交参数,而目标页面都不可用request对象获取用户提交参数.

转发

javax。servlet 。RequestDispatcher接口提供的方法

void forward(ServletRequest request, ServletResponse response)

// Forwards a request from a servlet to another resource (servlet, JSP file,

or HTML file) on the server。

服务器跳转.即当前页面和目标页面都可用request对象获取用户提交参数。

7. Servlet对象怎样获得用户的会话对象?

18

(完整版)《JSP实用教程(第三版)》课后答案

答:

在doGet()或doPost()方法中使用获取当前会话对象。

HttpSession session=request。getSession(true);

一个用户在不同的Servlet中获取的session对象是完全相同的,不同的用户的session对象互不相同。

19

(完整版)《JSP实用教程(第三版)》课后答案

第6章 MVC模式

1.

在JSP中,MVC模式中的数据模型之角色由谁担当?

答:

由Java Bean或EJB充当。

2.

在JSP中,MVC模式中的控制器之角色由谁担当?

答:

一个或多个Servlet对象充当.

3.

在JSP中,MVC模式中的视图之角色由谁担当?

答:

由一个或多个JSP页面或HTML页面充当。

4.

MVC的好处是什么?

答:

MVC模式的核心思想是有效地组合“视图”、“模型”和“控制器”.在JSP技术中,视图是一个或多个JSP页面,其作用主要是向控制器提交必要的数据和为模型提供数据显示;模型是一个或多个Javabean对象,用于存储数据;控制器是一个或多个servlet对象,根据视图提交的要求进行数据处理操作,并将有关的结果存储到Javabean中,然后servlet使用重定向方式请求视图中的某个JSP页面更新显示.

5.

MVC模式中用到的Javabean是由JSP页面还是servlet负责创建?

答:

是servlet负责

20

(完整版)《JSP实用教程(第三版)》课后答案

第7章 在JSP中使用数据库

1。 加载MySQL的JDBC数据库驱动程序代码是什么?

答:

try{ e(”。”);

}

catch(Exception e){ }

2.

加载SQL server的JDBC数据库驱动程序代码是什么?

答:

try{ Class。forName("oft。verDriver");

catch(Exception e){ }

4.

使用预处理语句的好处是什么?

答:

预处理语句PreparedStatement会将传入的SQL命令封装在PreparedStatement对象中,事

21

(完整版)《JSP实用教程(第三版)》课后答案

先进行预编译处理等待使用.

当有单一的SQL语句多次执行时,用PreparedStatement类会比Statement类更有效率。

第8章 JSP中的文件操作

1。 File对象能读写文件吗?

答:不能.

2.

File对象怎样获取文件的长度?

答:调用public long length()方法。

3.

准备读取文件“A。java”,下列哪些是正确创建输入流的代码?

A。try{ FileInputStream in=new FileInputStream(“A。java”);

22

(完整版)《JSP实用教程(第三版)》课后答案

catch(IOException e){}

B. try{ InputStream in=new InputStream(“”);

catch(IOException e){}

C. try{ FileReader in=new FileInputStream(new File(“A。java”));

}

catch(IOException e){}

D. try{ FileReader in=new FileReader (new File(“A。java”));

}

catch(IOException e){}

答:A和D。

4.

RandomAccessFile类创建的流在读写文件时有什么特点?

答:RandomAccessFile类既不是输入流类InputStream类的子类,也不是输出流类Outputstream类的子类。想对一个文件进行读写操作时,可以创建一个指向该文件的RandomAccessFile流,这样我们既可以从这个流中读取这个文件的数据,也可以通过这个流给这个文件写入数据。

23


本文标签: 页面 文件 对象 使用