整理对应_JSP第二版课后习题答案【侵权联系我删除】
阅读原文时间:2021年04月25日阅读:1

JSP第二版课后习题下载:https://download.csdn.net/download/weixin_42859280/11265785

JSP第二版课后习题答案下载:https://download.csdn.net/download/weixin_42859280/11265728

剪切之前的:https://blog.csdn.net/weixin_42859280/article/details/94355366

习题四【第三版3章】

一、选择题

1、在JSP中,要定义一个方法,需要用到以下(   )元素。D

A.<%=  %>                            B.<%   %>

C.<%@  %>                           D.<%!  %>

2、在J2EE中,在一个JSP文件中,有表达式<%=2+3 %>,它将输出( )。 B

A.2+3                                   B.5           

C.2                                 D.不会输出,因为表达式是错误的

3、在JSP中,(    )动作用于将请求转发给其他JSP页面。  A

A.forward                     B.include

C.useBean                           D.setProperty

4、要设置某个JSP页面为错误处理页面,以下page指令正确的是(  )。  B

A.<%@ page errorPage="true"%>                     

B.<%@ page isErrorPage="true"%>

C.<%@ page extends="javax.servlet.jsp.JspErrorPage"%>

D.<%@ page info="error"%>

5、当浏览器第二次访问以下JSP网页时的输出结果是什么?( )C

<%! int a=0;     %> <%      int b=0;      a++;      b++; %>

a:<%= a %>

b:<%= b %>

选项:

A.a=0  b=0                         B. a=1  b=1

C. a=2  b=1                  D. a=2  b=2

6、关于, 下列说法不正确的是(  )。D【百度说是C】

A. 它可以包含静态文件。

B. 它可以包含动态文件。

C. 当它的flush属性为true时,表示缓冲区满时,将会被清空。

D. 它的flush属性的默认值为true。

Include指令(编译时包括)又叫静态引用,约等于同一个界面,可以共享数据。
Include动作(运行时包括)又叫动态引用,完全是两个界面,不能共享数据。
autoFlush 定义缓冲满时,缓冲输出是否自动完成(flush)或抛出异常。
缺省值为true。 

7、在JSP中,对<jsp:setProperty>标记描述正确的是(  )。C

A. 必须在一个JSP文件中搭配出现。

B. 就如同session.setAttribute()一样,来设计属性/值。

C. 和动作一起便用,来设置bean的属性值。

D. 就如同request.setAttribute()一样,来设置属性/值。

使用<jsp:getproperty>之前,必须<jsp:usebean>来创建它。

不能使用<jsp:getproperty>来检索一个已经被索引了的属性。

8、在 myjsp.jsp 中,关于下面的代码说法错误的是( )。A

<%@ page language="java" import="java.util.\*" errorPage="error.jsp" isErrorPage="false" %>      A.该页面可以使用 exception 对象  。 B.该页面发生异常会转向 error.jsp  。 C. 存在 errorPage 属性时,isErrorPage 是必须的属性值且一定为 false 。 D.error.jsp 页面一定要有isErrorPage 属性且值为 true。 9、下列哪一种不是JSP 中的注释符( )。   A A.                         B.  /\*注释内容\*/      C. //注释内容                              D.   /\*\*注释内容\*\*/ A是HTML里面的。 [https://blog.csdn.net/weixin\_42859280/article/details/94357167](https://blog.csdn.net/weixin_42859280/article/details/94357167) 10、J2EE中在JSP中要使用user包中的User类,则以下写法正确的是(   )。A A. B. C. D. 二、判断\[**1:表示对;0:表示错;**\] 1、在page指令中,import参数允许重复使用多次。( )**1** 2、中可以使用<% %>动态输出注释内容,同时<%--  --%>中也可以使用<% %>,因为预览JSP页面时没有报错。( )1 **\[P54\]** 3、当page标识的isThreadSafe属性设为true时,JSP只可以接受一个用户访问。( )**0** **【P61,默认是true,能同时处理多个用户请求。false,一个jsp一次只能处理一个请求】** 4、可用于在JSP页面中包含body.jsp文件,并传递两个参数name和password。( )**0** **【它没有这个功能】** 5、<%@ include file=”URL” %>允许包含动态文件和静态文件,但是这两种包含文件的结果是不同的,如果文件仅仅是静态文件,那么这种包含仅仅是把包含文件的内容加到JSP文件中去,这个被包含的文件不会被JSP编译执行。相反地,如果被包含文件是动态文件,那么这个被包含文件会被JSP编译器执行。( )**0** **这个命令只有静态的。** ![](https://article.cdnof.com/2104/a34bb966-1809-430a-be32-54aec50a9e31.png) 三、填空 1、JSP有三个指令元素: <%@page%>、<%@include %>、<%@taglib %>

2、JSP的脚本元素包含以下4个部分:

隐藏注释(Hidden Comment)、声明(Declarations)、脚本段(ScriptLets)、表达式(Expression)

、    、 、 。

3、动作元素的作用为 设置javabean对象的属性值 。

4、的作用是 页面跳转 。

5、在JSP页面中可以声明方法,但是仅在 当前页面 内有效。

四、简答

1. 如何在HTML网页中嵌入JSP程序代码?怎样来定义JSP中的声明区与程序区?

答:在JSP网页中必须于<%与%>符号间嵌入程序代码。
JSP声明的语法格式为:
<%! declaration; [ declaration; ] ... %> 或
<%! 声明; [声明; ] ... %>
脚本代码的语法格式如下:
<% code fragment %> 或
<% 代码 %>

2. 请说明JSP中有哪3个指令元素,以及这3个指令的主要用途。

答:page指令:可用来设置JSP网页的特性,如编码方式、引用类、缓冲区等。
include指令:可用来将HTML、文本文件或者JSP程序加载当前的JSP网页。
taglib指令:可用来引用一个自定义的标签库。

3. JSP中include指令与include动作的区别是什么?

答:include指令是指把其它页面的Java代码(源码)加进来,跟本页面的代码合并在一起,
相当于把源码从那个页面复制到本页面中来,然后再编译。
并且由于本页面编译时已经包含了别的文件的源码,所以以后其它页面更改时,
本页面并不理会,因为已经编译过了。
<jsp:include>动作是指两个页面的代码运行完以后,
再把包含的那个页面运行后的HTML结果页面加到本页面运行后的HTML结果页面中来。
所以是运行时包含,并且还可以传递参数给被包含的页面。

4. JSP网页可以使用的特殊操作元素有哪些?其中操作元素各有什么功能?

答:可使用的操作元素有<jsp:param>、<jsp:include>、<jsp:forward>、<jsp:plugin>。
<jsp:forward>:可将当前浏览器显示网页的网址,重新导向新的网址。
<jsp:param>:主要用来传递参数给JSP程序,而由程序取得参数值。

五、编程

1. 编写一个JSP程序,计算10!,并显示出结果。要求先声明计算阶乘的方法,再调用该方法,最后在页面上输出结果。

(进阶要求,通过表单提交一个正整数,然后计算它的阶乘。)

2. 在JSP页面中静态包含文件。要求程序包含两个文件,主文件静态包含一个能够计算数据的算数平方根的页面。

3. 动态包含页面并传递数据。要求程序包含两个文件,主文件加载次文件,并将随机产生的0~1之间的数据传递给它,并且在页面上显示出来。

(进阶要求,把动态包含改为动态重定向,比较两者之间的区别。)

4. 计算三角形的面积。要求由用户输入三角形的三条边,判断这三条边是否能构成一个三角形,若能构成三角形,则输出三角形的面积。

习题五【对应第三版4章】

一、选择题

1、在J2EE中,下列(  )语句可以获取页面请求中的一个单选框的选项值(单选框的名字为name)。C

A.  response.getParameter("name");      

B.  request.getAttribute("name");

C.  request.getParameter("name");     

D.  request.getParameters("name");

P89

2、在J2EE中,request对象的(     )方法可以获取页面请求中一个表单控件对应多个值时的用户的请求数据。D

A.String getParameter(String name)

B.String[] getParameter(String name)

C.String getParameterValuses(String name)

D.String[] getParameterValues(String name)

P91下面

3、以下对象中作用域最大的是(  )。C

A.request                    B.session     

C.application                 D.page

P116

4、在JSP页面中,能够完成输出操作的内置对象是 (  )。A

A.   out                      B.  response

C.   request                    D. config

P103

5、要在session对象中保存属性,可以使用以下哪个语句?(  )B

A.   session.getAttribute("key","value");

B.    session.setAttribute("key","value");

C.   session.setAtrribute("key");

D.   session.getAttribute("key");

P109

6、需要删除session中的某个属性key,可以调用下面的(   )方法。B

A.   remove(“key”)

B.    removeAttribute("key")

C.   invalidate()

D.   logout()

P110

7、在J2EE中,假如HttpSession的getLasAccessTime()方法返回值为x,getCreationTime()方法返回值为y,则为x - y()。C

A.两个连续请求之间间隔的最长时间

B.最近的两个连续请求之间的时间间隔

C.最后使用session发送请求的时间和session创建时间的间隔

D.最后使用session发送请求的时间

P110

8、以下代码能否编译通过,假如能编译通过,运行时得到什么输出结果( )。A

<% request.setAttribute("count",new Integer(0)); Integer count = request.getAttribute("count") ; %> <%=count %>

A.   编译不通过

B.    可以编译运行,输出0

C.   编译通过,但运行时抛出ClassCastException

D.   可以编译通过,但运行无输出

貌似request.getAttribute("count") 必须强制转化 Integer

9、现在session中没有任何属性,阅读下面2个JSP中的代码,将分别输出( )。A

<%           out.println(session.getAttribute("svse ")); %> <%           session.invalidate();           out.println(session.getAttribute("svse ")); %>

A.   null, 异常信息

B.    null, null,

C.   异常信息,异常信息

D.   异常信息,null

1,返回一个什么都没有的。所以是null

2,已经被结束。所以是null。参考P114

10、Form表单提交的信息中含有“name= svse”,阅读下面的JSP,a.jsp将输出()。A

       接受该请求的JSP:

<%           response.sendRedirect(“a.jsp");   %>

       a.jsp包含如下代码

<%=request.getParameter(“name") %>

A.   null

B.    什么都不输出

C.   异常信息

D.   svse

P89.没有实际参数与之对应的时候。就会输出null。89页有例子。

二、判断[1:表示对;0:表示错;]

1、标记的page属性值是相对的URL地址,只能静态的URL。( )0 P70 3.4.2

2、利用response对象的sendRedirect方法只能实现本网站内的页面跳转,但不能传递参数。(  )0 P98

3、contentType属性用来设置JSP页面的MIME类型和字符编码集,取值格式为"MIME类型"或"MIME类型;charset=字符编码集",response对象调用addHeader方法修改该属性的值。(  )0  P96

4、在J2EE中,重定向到另一个页面,可以用request.sendRedirect("http://www.jb-aptech.com.cn");(  )1P98

【有争议】

https://blog.csdn.net/qq_27668813/article/details/51394736

5、应用application对象能在不同用户之间共享数据(    )。1 P116

三、填空

1、当客户端请求一个JSP页面时,JSP容器会将请求信息包装在 对象中。request

2、已知文件look.jsp的路径为c:/myjsp/inc,文件login.jsp的路径为c:/myjsp。若使用response的重定向方法由look.jsp跳转到login.jsp中,则正确的写法为________________ 。response.sendRedirect(“../login.jsp”);

3、当getParameter()方法的参数部分指定的输入控件不存在时,该方法的返回值为  ____________。null

4、列表框的name属性值为“city”,并且允许多选,若要一次读取所有的选中项并存放于数组str中,则对应的java语句为____________________ 。String[] str=request.getParameterValues(“city”);

5、给定一个JSP程序源码如下:

在test.jsp中加入____________________代码片断可以输出参数location的值。<%=request.getParameter(“location”)%>

P89

四、简答

1. JSP中的内建对象包含哪些?试简述这些对象在JSP中的主要功能。

答:request:取得客户端数据与系统的信息。
response:响应客户端信息。
application:记录与处理上线者共享的数据。
session:记录与处理上线者的个别数据。
out:控制数据输出的操作。
config:取得JSP编译后Servlet的信息。
pageContext:存取与处理系统运行时期的各项信息。
page:表示当前的JSP网页。

2. response重定向方法sendRedirect()和动作元素的区别是什么?

(1)response.sendredirect()会在客户端呈现跳转后的URL地址;
这种跳转称为客户端跳转。使用response.sendredirect()将重定向的URL发送到客户端,
浏览器再根据这个URL重新发起请求。所以用这个方法时,
你在浏览器地址栏上会看到新的请求资源的地址。
并且这个时候的request,response都和第一次的不一样了。
这时是重新产生了新的request,response。
(2)使用<jsp:forward>完全是在服务器上进行,浏览器地址栏中的地址保持不变;
这种跳转称为服务器端跳转。所以使用这个方法时没有产生新的用request,response。
因为request没有变,在同一个请求内,可以用request来转递参数。
(3)response.sendRedirect()想带参数的话,
自己在地址中写成 xxx.jsp?param1=aaa&... 这种形式传递参数。
<jsp:forward>能够使用<jsp:param/>标签向目标文件传送参数和值 ,
目标文件必须是一个动态的文件,能够处理参数。
(4)<jsp:forward>后面的语句不会被执行也不会继续发送到客户端,
response.sendRedirect()后面的语句会继续执行,除非语句前面有return。
(5)<jsp:forward>是在服务器的内部进行转换,只发送给客户端最后转到的页面,
速度会比较快;response.sendRedirect()需要服务器与客户端之间的往返,
可以转到任何页面,包括网络有效域名。但速度比较慢。

3. application与session对象存储数据变量的方式有何区别?

答:application:记录联机用户共享的数据。session:记录联机用户的个别数据。

4. 请说明session对象的生命周期在哪些状况下会结束。

答:当以下四种情形之一发生时,session与其中的数据便会消失:
(1)用户关闭当前正在使用的浏览器程序。
(2)关闭网页服务器。
(3)用户未向服务器提出请求超过预设的时间,Tomcat服务器预设为30分钟。
(4)运行程序结束session。

五、编程

1. 编写一个简单的网上测试系统。要求由两个页面组成,第一个页面显示试题,例如单选题,如图5-37所示。第二个页面获取考生提交的选择,统计考生得分并显示。

2. 信息的保存和获取。

例如简单的网上购物,将购买者的姓名、商品名保存在session对象中,实现一个Web目录下的页面对session对象中信息的共享。要求创建3个页面,第1个页面输入用户的姓名,第2个页面输入购买商品名的名称,第3个页面实现结账处理。

3. 简单的用户登录。

用户通过输入用户名和密码(假设用户名和密码都是admin)进入用户或管理员页面,拒绝绕过登录页面直接进入用户或管理员页面。

要求创建4个文件,第1个是用户登录页面,此页面输入用户名和密码以及登录类型,如图5-38所示。

图5-37  网上测试单选题                    图5-38  用户登录页面

第2个文件对提交信息进行检查,如果输入正确则根据登录类型分别进入到管理员或普通用户页面,用重定向的方法实现跳转到这两个页面。如果输入有误,则弹出警示对话框,如图5-39所示,让用户重新输入信息。

第3个文件是管理员页面,显示管理员成功登录的信息。

第4个文件是普通用户页面,显示普通用户成功登录的信息。

4. 用application对象实现一个简单的聊天室。

要求采用application对象记录所有用户的留言信息并在页面上显示出来,如图5-40所示。

图5-39  警示对话框                    图5-40  显示聊天内容

习题六【第三版5章】

一、选择题

1、在web程序中,cookie和session的信息保存位置分别在哪里?( )  A

A. cookie保存在客户端,session保存在服务器端

B. cookie和session都保存在客户端

C. cookie和session都保存在服务器端

D. cookie保存在服务器端,session保存在客户端

cookie:P133 session:P147

2、有关会话跟踪技术描述不正确的是( )。D

A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端 P133

B.关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。实话

C.在禁用Cookie时可以使用URL重写技术跟踪会话。P147

D.隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示。P148

3、J2EE中,Servlet API 为使用Cookie,提供了( )类。     A

A. Javax.servlet.http.Cookie

B. Javax.servlet.http.HttpCookie

C. Javax.servlet. Cookie

D. Javax.servlet.http. HttpCookie

4、带有名为myCookie 的cookie存在于客户计算机上,服务器发送有同名的一个cookie。 这会发生什么?( )A

A.新cookie 重写到老的cookie       B.新 cookie 被拒绝

C.作为拷贝存贮新cookie               D.抛出一个异常

5、不能在不同用户之间共享数据的方法是( )。A

A.通过cookie

B.利用文件系统

C.利用数据库

D.通过ServletContext对象

6、如何获取一个 Cookie[] ?(  )。   A

A.request.getCookies()    

B.request.getCookie()

C.response.getCookies()   

D.response.getCookie()

7、如何发送Cookie? ( )B

A. 使用new Cookie语句

B. 调用response.addCookie方法

C. 使用Cookie的setMaxAge方法

D. setCookie方法

8、将Cookie保存到客户端,就是为了以后得到其中保存的数据。以下说法错误的是( )。C

A.调用HttpServletRequest的getCookies得到一个Cookie对象的数组

B.在客户端传来的Cookie数据类型都是数组类型,因此要得到其中某一项指定的Cookie对象,需要遍历数组来找。

C.在客户端传来的Cookie数据类型都是枚举类型,因此要得到其中某一项指定的Cookie对象,需要指定元素位置来找。

D.JSP将调用request.getCookies()从客户端读入Cookie,getCookies()方法返回一个HTTP请求头中的内容对应的Cookie对象。

9、Cookie调用getValue( )方法取得( )。A

A.与指定名字关联的值

B.从客户端读入Cookie    

C.检查各个Cookie的名字

D.检查各个Cookie的值  

10、下面的代码使用setMaxAge()方法设置Cookie对象login在一天之内都是有效的是(  )B

A.login.setMaxAge(3600);

B.login.setMaxAge(86400);

C.login.setMaxAge(1);

D.login.setMaxAge(7200);

二、判断[1:表示对;0:表示错;]

1、当用户关闭浏览器的时候,Cookie的数据便会消失。(  )0

2、Cookie实质是服务器端与客户端之间传送的普通HTTP头,可以保存也可以不保存在客户的硬盘上。(  )1

3、Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。(  )1

4、使用Cookie的目的就是为用户带来方便,为网站带来增值,但是事实上Cookie会造成严重的安全威胁。(  )0

 5、Cookie中的内容大多数经过了加密处理,因此在我们看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。(  )1

三、填空

1、Cookie数据存储的功能由 浏览器 所提供,因此,Cookie功能都必须要有浏览器的支持才行。

2、Response对象的addCookie(Cookie cookie)方法添加一个 Cookie 对象,用来保存客户端的用户信息。

3、用Request的 getCookies() 方法可以获得这个Cookie。

4、用response对象的 addCookie 方法可以将cookie对象写入客户端。

5、要删除某一个客户端的Cookie,必须使用前面的sexMaxAge()方法,并将Cookie的存在期限设为__0__。    

四、简答

1. 简述Cookie的概念与使用方式。

答:Cookie为浏览器提供的功能,是一种可将联机用户的数据存储在客户端计算机上的技术,
要运用Cookie必须先建立一个Cookie对象来存储字符串数据,再将此Cookie对象传送到客户端。

2. 查看自己计算机上Cookie文件的保存位置。浏览网页,运行本书的例子,看是否会把信息记录在此位置?文件是如何命名的?文件的内容是什么?

答:在默认情况下,Cookie是随着用户关闭浏览器而自动消失的。
所以书上例子不会保存Cookie。如果在例2中我们在usingCookie.
jsp中使用setMaxAge()方法,设置Cookie对象的存在期限。
这样Cookie对象就会保存在硬盘中的Cookies文件夹中
如“C:\Documents and Settings\Administrator\Cookies”如文件“administrator@ch06[1].txt”。
内容是如下代码  
“name
d
localhost/ch06/
1024
1524104704
30118001
4117789296
30117999
*”

3. Cookie的常见用途有哪些?

(1)网站浏览人数管理 
由于代理服务器、缓存等的使用,
唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一的ID。
使用Cookie,网站可以完成以下工作:测定多少人访问过;
测定访问者中有多少是新用户(即第一次来访),多少是老用户;
测定一个用户多久访问一次网站。 
通常情况下,网站设计者是借助后台数据库来实现以上目的的。
当用户第一次访问该网站时,网站在数据库中建立一个新的ID,
并把ID通过Cookie传送给用户。用户再次来访时,网站把该用户ID对应的计数器加1,
得到用户的来访次数或判断用户是新用户还是老用户。 
(2)按照用户的喜好定制网页外观 
有的网站设计者,为用户提供了改变网页内容、布局和颜色的权力,
允许用户输入自己的信息,然后通过这些信息对网站的一些参数进行修改,以定制网页的外观。
(3)在电子商务站点中实现诸如“购物篮”等功能 
可以使用Cookie记录用户的ID,这样当你往“购物篮”中放了新东西时,
网站就能记录下来,并在网站的数据库里对应着你的ID记录当你“买单”时,
网站通过ID检索数据库中你的所有选择就能知道你的“购物篮”里有些什么。

4. Cookie与session有何不同?

session与Cookie同样是用来记录上线用户的个别数据的,两者的差异在于session是存在于服务器端,
而Cookie则是存在于客户端。

五、编程

1. 理解并掌握Cookie的作用及利用Cookie实现用户的自动登录功能,如图6-10所示。

图6-10  应用Cookie保存用户信息

当服务器判断该用户是首次登录时,会自动跳转到登录页面等待用户登录,并填入相关信息。通过设置Cookie的有效期限来保存用户的信息。关闭浏览器后,验证是否能够自动登录,若能登录打印欢迎信息,否则跳转到登录页面。

习题七【第三版6章】

  • 选择题

1、声明对象的默认有效范围为(  )。A

A. page                      B.   session        C. application                      D. request

page对象就是指jsp页面本身,是java.lang.Object实例。

2、编写JavaBean就是编写一个Java类,所以只要会写类就能编写一个Bean,一个完整JavaBean在类的命名上需要遵守以下规则,其中错误的是(  )。D

A. 类中方法的访问属性必须是public的。类中方法的访问属性必须是public的

B. 对于boolean类型的成员变量,允许使用is代替get。对于boolean类型的成员变量,允许使用is代替get和set

C. 类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。

类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的

D. 在JavaBean中定义属性时,应该定义成public。javaBean属性定义为pirvate

https://blog.csdn.net/yihuliunian/article/details/90900212[遵守一下4项规定。]

3、关于JavaBean的说法,哪个是正确的?(  )D

A.   JavaBean的具体类可以不是public的。[P167]

B.    JavaBean可以只提供一个带参数的构造器。[P167]

C.   jsp:userBean可以向HTML标记一样不关闭。[]

D.   JavaBean可以保存状态。

4、下边哪个不是MVC中的组成部分?(  )B

A.   JavaBean  B. FrameWork C.   JSP  D. Servlet

5、下面哪一个是正确使用JavaBean的方式?(  )A

A.   P172

B.   

C.  

D.  

6、在JSP中使用标记时,不会出现的属性是:(  )C

A.  name     B.  property   C. value       D.以上皆不会出现

7.、在JSP中调用JavaBean时不会用到的标记是:(  )A

A.     B.     C.   D. P170首行

8.、关于JavaBean正确的说法是:( )A

A. Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写

B. 在JSP文件中引用Bean,其实就是用语句

他的这种说法没错,但是太绝对了,还有其他的方法可以引用bean啊,因为它是选择题,所以语句要要求很严谨

C. 被引用的Bean文件的文件名后缀为.java

jsp中还可以通过Java脚本来newJavabean对象

D. Bean文件放在任何目录下都可以被引用

所有编译好的JavaBean都需要放在某个应用目录下的_____WEB-INF/classes_______目录之下。

9、 test.jsp文件中有如下一行代码:

要使user对象可以作用于整个应用程序,下划线中应添入(  )。D

A.   page    B.    request  C.   session   D.  application

作用于整个应用程序

10、下面哪项是错误的设置Bean属性值的方法(   )。 B

A.

B.

C.<jsp:setProperty name="beanInstanceName" property="propertyName"

param="parameterName" />

D. <jsp:setProperty name="beanInstanceName" property="*" value="{string | <%= expression

%>}"/>

选项D重复啦

二、判断题[1:表示对;0:表示错;]

1、在MVC模式中,因为Servlet负责创建JavaBean,所以JavaBean的构造函数可以带有参数,除了保留get和set规则外,还可以有其他功能的函数。(   )1

2、Bean文件放在任何目录下都可以被引用。(  )0

3、get请求处理的数据量大小不受到限制。(   )0

4、必须出现在其对应的标签之后。(  )1【事实】

5、相同的Javabean只会实例化一次。(   )0【https://zhidao.baidu.com/question/1642382354215987180.html

三、填空题

1、Javabean是一种 Java 类,通过封装 属性 和 方法 成为具有某种功能或者处理某个业务的对象,简称bean。

2、在Tomcat中,所有编译好的JavaBean都需要放在某个应用目录下的_____WEB-INF/classes_______目录之下。

3、JSP开发网站的两种模式分为______jsp+javabean__________和_____jsp+javabean+servlet___________ 。

4、如果你想使用Javabean设计一个网站计数器,那么该bean的scope应当设为    application            。

5、按功能JavaBean可以分为____可视化JavaBean_________和_______非可视化JavaBean_____。

四、问答题

1. 试说明什么是JavaBean。

答:JavaBean是一种特殊的Java程序,是用于包装特定功能的程序代码,
可以被JSP网页重复使用,其本身无法独立运行,是JSP网页程序组件化的核心。

2. 试说明如何在JSP网页中载入JavaBean。

A:<jsp:useBean id=id-name scope=scope-name class=class-name />

3. JavaBean对象可声明哪些不同的生命周期?

答:request、session、page及applaction。

4. JavaBean程序除了必须要有一个无传入值的建构式之外,还有哪些特色?

答:除了必须要有一个无传入值的建构式之外,还必须是一个公开的类,并以set及get开头的方法来设置与取得属性。

5. 试说明Get和Post方法之间的差异?

答:Post和Get这两种设置方式主要的差异在于数据的传送方式,
前者将所要传送的数据包含在HTTP文件头中,
后者则是将数据直接串接在网址栏的后端,
两者都可使用GetParameter取得传送的数据内容。

五、编程

1、要求编写两个JSP页面:input.jsp和show.jsp。编写一个名字为car的JavaBean,其中car由Car.class类负责创建。

input.jsp页面提供一个表单。其中表单允许用户输入汽车的牌号、名称和生产日期,该表单将用户输入的信息提交给当前页面,当前页面调用名字为car的bean,并使用表单提交的数据设置car的有关属性的值。要求在input.jsp提供一个超链接,以便用户单击这个超链接访问show.jsp页面。

show.jsp调用名字为car的bean,并显示该bean的各个属性的值。

编写的Car.java应当有汽车号码、名称和生产日期的属性,并提供相应的getXxx和setXxx方法,来获取和修改这些属性的值。

习题八[对应第三版本7章]

一、选择题

1.在WEB应用程序的目录结构中,在WEB-INF文件夹中的lib目录是放(   )文件的。C

A. .jsp文件  B. .class文件  C. .jar文件 D. web.xml文件

2、java.io.File对象的(   )方法可以新建一个文件。D
A. delete()          B. createFile()       C. mkdir()      D. createNewFile()
3、在JSP应用程序中要求删除所有photo目录中的的文件,但是保留文件夹,下列代码中空缺位置最适合的选项为(   )。A

String path=request.getRealPath("photo");
File fp1=new File(path);
File[] files=fp1.listFiles();
for(int i=0;i<files.length;i++)
{
   if(__________________________)
     {
            files[i].delete();  
}
}
A. files[i].isFile()     B. files[i].isDirectory()  C. !files[i].isFile()      D. ! files[i].isDirectory()

4、下列File对象的哪个方法能够判断给定路径下的文件是否存在。(   )C

A. canRead()     B .canWrite()    C. exists()      D. isDirectory()

5、BufferedReader处理Reader类中的方法外,还提供了public String readLine()方法,该方

法读入一行文本,这里的“一行”指字符串以“\n”或什么做结尾。(   )C

A. \t      B. \f    C. \r    D. \p

二、判断题[1:表示对;0:表示错;]

1、File类直接处理文件和文件系统,它并不涉及文件的读写操作。(  )1

2、创建一个File对象,就会在某个物理路径下创建一个文件或目录。(  )0

3、使用Java的输出流写入数据的时候,就会开启一个通向目的地的通道,这个目的地可以是文件,但不能是内存或网络连接等。(  )0

4、“纯文本”类的信息,一般使用字符流来进行处理。(  )1

5、InputStream抽象类的read方法出错后一定会抛出一个IOException异常。(  )1

三、填空题

1、Java中有四个“输入/输出”的抽象类, 、 、 和 。

InputStream 、OutputStream、Writer、Reader

2、从网站上下载jspsmartupload.jar这个文件,将此文件放到网站的 WEB-INF\lib 文件夹底下。

3、字节流类为处理字节式输入/输出提供了丰富的环境,其处理单元为 1 个字

节;字符流提供了处理任何类型输入/输出操作的足够功能,字符流处理的单元为 2

个字节的Unicode字符。

四、问答题

1. JSP网页使用File类之前,将哪个命名空间载入?

import="java.io.*"

2. 试说明如何利用File类进行文件目录的操作?

答:利用File类进行文件目录的操作首先必需建立一个File对象,
将所要操作文件或是目录完整路径当作参数传入,当File对象建立之后,
JSP网页便可以利用这个对象调用File类的所有方法,以进行各种文件目录的操作。

3. 简述文件存取操作的操作过程。

答:首先利用File类建立一个参照指定文件的目录的File实体对象,
接下来利用FileWriter和FileReader这两个类,进行指定文件的读写,
其中的FileWriter的write方法,负责将数据写入文件,而FileReader的read则用来读取文件中的数据。

五、编程

1、 创建两个文件selectContent.jsp和writeContent.jsp,首先使用selectContent.jsp中的表单输入存放路径、保存的文件名和将要写入文件的文件内容信息,提交后,由writeContent.jsp文件负责将内容写到指定的文件中,同时放到指定的路径下。运行结果如图8-12和图8-13所示。

图8-12  selectContent.jsp页面

图8-13  提交成功后的结果

2、. 创建两个文件selectFile.jsp和readContent.jsp。首先使用selectFile.jsp中的表单输入存放路径和将要读取的文件名,提交后,由readContent.jsp文件负责将文件读出并显示在页面上。运行结果如图8-14和图8-15所示。

图8-14  selectFile.jsp页面                          图8-15  提交成功后的结果

习题十【对应三版本8章】

一、选择题

1、创建JSP应用程序时,配置文件web.xml应该在程序下的(   )目录中。C
       A. admin       B. servlet       C. WEB-INF        D. WebRoot  P234

2、 Oracle数据库的JDBC驱动程序类名及完整包路径为:(   )D

A.   jdbc.driver.oracle.OracleDriver

B.    jdbc.oracle.driver.OracleDriver

C.   driver.oracle.jdbc.OracleDriver

D.   oracle.jdbc.driver.OracleDriver   P231

3、请选出微软公司提供的连接SQL Server 2000的JDBC驱动程序。(   )C

A. oracle.jdbc.driver.OracleDriver                   B. sun.jdbc.odbc.JdbcOdbcDriver

C. com.microsoft.jdbc.sqlserver.SQLServerDriver  P231     D. com.mysql.jdbc.Driver

4、下述选项中不属于JDBC基本功能的是:( )D

A. 与数据库建立连接 B.  提交SQL语句   C.  处理查询结果 D.  数据库维护管理【常识吗?】

5.在 JSP中,便用 Resultset对象的 next()方法移动光标时,如果超过界限,会抛出异常,该异常通常是(   )。C

A.InterruptedExceptlon   B.AlreadyBoundExceptlon  C.SQLException  D.NetExcePtlon

6、cn是Connection对象,创建Statement 对象的方法是:(   )B

A. Statement st=new Statement ();       B. Statement st=cn.createStatement()

7、查询数据库得到的结果集中,游标最初定位在(    )。B

A. 第一行  B. 第一行的前面  C. 最后一行  D. 最后一行的后面

8、在JDBC中,下列哪个接口不能被Connection创建(  )。D

A.Statement   B.PreparedStatement      C.CallableStatement      D.RowsetStatement【在课本上面没找到】

9、该程序加载的是哪个驱动?(   )A【缺失啦】

A. JDBC-ODBC桥连接驱动      B.部分Java编写本地驱动

C. 本地协议纯Java驱动         D.网络纯Java驱动

10、下列代码生成了一个结果集

conn=DriverManager.getConnection(uri,user,password);

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);

rs=stmt.executeQuery("select * from book");

rs.first();rs. previous();

下面哪项对该rs描述正确( )D

A.rs.isFirst()为真  B.rs.ifLast()为真  C.rs.isAfterLast()为真  D.rs.isBeforeFirst()为真

二、判断题[1:表示对;0:表示错;]

1、使用JDBC-ODBC桥效率会有所降低。(  )1

2、Statement对象提供了int executeUpdate(String sqlStatement)方法,用于实现对数据库中数据的添加、删除和更新操作。(  )1

3、数据库服务与Web服务器需要在同一台计算机上。(  )0【事实】

4、使用数据库连接池需要烦琐的配置,一般不宜使用。(  )0【管理功能】

5、JDBC构建在ODBC基础上,为数据库应用开发人员、数据库前台工具开发人员提供了一种标准,使开发人员可以用任何语言编写完整的数据库应用程序。(  )0【任何就过分了吧】

三、填空题

1、JSP应用程序配置文件的根元素为 __________________。

2、JDBC的主要任务是:__________________、__________________、__________________。

与数据库建立连接    、    发送SQL语句  、   处理结果   。

3、如果想创建一个不敏感可滚动并且不可更新的结果集,参数选择__________________和__________________。

ResultSet.TYPE_SCROLL_INSENSITIVE   ResultSet.CONCUR_READ_ONLY

4、在可更新的结果集中插入一条新纪录,需要移动首先到可更新行,调用_______moveToInsertRow();___________函数。

5、Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 是__________Access________数据库的加载驱动语句。

四、问答题

1. 试说明Statement与ResultSet接口的意义,以及它们生成的对象在JSP程序处理数据库时,分别扮演着什么样的角色?

答:Statement:Statement接口中主要是提供了一些SQL运行的方法,
以及设置运行SQL后所返回ResultSet类型对象的属性。
由此接口所生成的对象在JSP中同样是用来运行各种SQL指令与设置Resultset对象的属性。
ResultSet:ResultSet接口下所定义的方法大都是用来控制ResultSet对象中指针的移动的,
以取得其中的数据元素。

2. 试列举说明Statement运行SQL指令的3种方法成员。

答:execute():运行一般SQL指令,例如建立数据库、修改数据表等等。
executeQuery():运行以SELECT语句开头的描述,
这个方法同时返回一个包含查看结果的ResultSet对象。

3. 说明如何一次运行多段SQL语句。

答:首先建立一个Statement对象,将多个想要运行的SQL指令以addBatch()方法加到批处理文档中,
最后引用executeBacth()方法运行。

五、编程

1. 使用本章的数据库ch10中student表的结构,创建3个页面selectStudent.jsp、byNumber.jsp和byName.jsp,通过JSP页面对student表进行名字和学号的查询。运行效果如图10-28、图10-29和图10-30所示。

图10-28  selectStudent.jsp页面

图10-29  byNumber.jsp页面

2. 使用本章数据库ch10中student表的结构通过JSP页面对student表进行添加、删除和修改。添加JSP页面处理功能:添加新学生、修改和删除选中的学生信息,如图10-31所示(或者自行设计界面)。

图10-30  byName.jsp页面                            图10-31  演示页面

习题十二【对应三版本10章】

一. 选择题

1. 下面Servlet的哪个方法用来为请求服务,在Servlet生命周期中,Servlet每被请求一次它就会被调用一次。( )A

A.service()     B.init()    C. doPost()      D.destroy()

P286

2. Servlet 可以在以下(  )三个不同的作用域存储数据。B

A.HttpServletRequest、HttpServletResponse、HttpSession

B.HttpServletRequest、HttpSession、ServletContext

C.HttpServletResponse、HttpSession、ServletContext

D.HttpServletRequest、HttpServletResponse、ServletContext

P298 P307 P311

3. 在J2EE中,Servlet从实例化到消亡是一个生命周期。下列描述正确的是( )。ABD

A.在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束Servlet就消亡了P286

B.init()方法是容器调用的Servlet实例此方法仅一次    P293

C.在容器把请求传送给Servlet之后,和在调用Servlet实例的doGet或者doPost方法之前,容器不会调用Servlet实例的其他方法

D.在Servlet实例在service()方法处理客户请求时,容器调用Servlet实例的init()方法一定成功运行了P293

4. 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是( )。B

Public class Servlet1 extends HttpServlet{

   Public void init() throws ServletException{

   }

   Public void service(HttpServletRequest request,HttpServletResponse response)

           Throws ServletException,IOException{

       PrintWriter out = response.getWriter();

       Out.println(“hello!”);

   }

}

A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过

B.编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello!

C.编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中看不到任何输出的文字

 D.编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到运行期错误信息

5. 下面是IP地址为222.22.49.189Web服务器上,ch应用下的一个Servlet部署文件的片段:

  

       Hello

       myservlet.example.FirstServlet     

  

  

       Hello

       /helpHello

  

   访问此Servlet的URL地址是。(  )A

A.http://222.22.49.189:8080/ch/helpHello【默认】

B.http://222.22.49.189:8080/ch/helpHello.java

C.http://222.22.49.189:8080/helpHello

D./helpHello

6. 在Web应用的部署描述文件中下面哪个选项能够将com.example.LoginServlet servlet 映射为 /utils/LoginServlet?(  )D

A.

com.example.LoginServlet

/utils/LoginServlet

B.

com.example.LoginServlet

 /utils/LoginServlet

C.

com.example.LoginServlet

Login Servlet

/utils/LoginServlet

D.

Login.Servlet

com.example.LoginServlet

Login.Servlet

/utils/LoginServlet

7. 在Web容器中,以下哪两个类别的实例分别代表HTTP请求与响应对象?(  )BC

A. HttpRequest                  B. HttpServletRequest

C. HttpServletResponse          D. HttpPrintWriter

二. 判断[1:表示对;0:表示错;]

1. 不能给一个Servlet映射多个访问路径。(  0)P292

2. JSP技术是在Servlet之后产生的,它以Servlet为核心技术,是Servlet技术的一个成功应用。( 1)P事实

3. 实现转发需要两个步骤,首先在Servlet中要得到RequestDispatcher对象,然后在调用该对象的forward方法实现转发。

( 1 )P313-314

三. 填空

1. 在Servlet中有两种异常处理机制:______和_______。

程序式异常处理机制和声明式异常处理机制。P316.以及标题。

2. 如果某个类要成为Servlet,则它应该继承_________、________或_________接口或类。

HttpServlet、GenericServlet、Servlet

3. Servlet 的生命周期又一系列事件组成,把这些事件按照先后顺序排序_________、________、_________、________、_________。

加载类,实例化,初始化,请求处理,销毁

四. 简答

1. 简述Servlet和JSP的关系。

答:Servlet是服务器端运行的一种Java应用程序。当浏览器端有请求则将其结果传递给浏览器。
在JSP中使用到的所有对象都将被转换为Servlet或者非Servlet的Java对象,
然后被执行,所以执行JSP实际上与执行Servlet是一样的。

2. 简述Servlet的生命周期。

答:
Servlet的生命周期可分为下面几个阶段:
(1)装载Servlet。
(2)实例化一个Servlet实例对象。
(3)调用Servlet的init( )方法进行初始化。
(4)服务。
(5)卸载。

3. 简述HttpSession接口的功能和使用方法。

答:
.HttpSession接口是Servlet提供会话追踪解决方案。 HttpSession对象存放在服务器端,只是对cookie和url重写技术的封装应用。
使用HttpSession进行会话控制的过程:
(1)获得一个HttpSession实例对象;
(2)访问和设置与会话相关联信息,维护会话的状态;
(3)废弃会话数据。

4. 简述开发一个Servlet所需要的步骤。

答:
第一步:编写Servlet实例
第二步:在web.xml文件中配置该Servlet
第三步:编写其它文件

五、编程

1. 编写一个HTML页面和一个Servelt,实现利用Servelt()的doPost()方法读取HTML文件中Form表单内容。

2. 编写一个利用HttpSession接口的用户登录的Servlet,当用户已经登录时,返回欢迎信息,否则转向登录页面。

习题十三【对应三版本11章】

一、选择题

1. 在web.xml文件中,有下列代码:

   LogFilter

   /*.jsp

   < dispatcher > REQUEST

   < dispatcher > INCLUDE < /dispatcher >

Hello.jsp文件的代码如下:

<%@ page contentType="text/html;charset=GB2312" %> <%@ page import="java.sql.\*" %>

 

 

 登录

访问Hello.jsp文件,过滤器LogFilter过滤的文件有( )D

A.Hello.jsp            B.helpHello.jsp

C.login.jsp            D.date.jsp

   < dispatcher > REQUEST </ dispatcher >
不要request

   < dispatcher > INCLUDE < /dispatcher >
不要include

2. 下列哪个不属于监听器接口ServletContextAttributeListener提供的方法()D

A.public void attributeAdded(ServletContextAttributeEvent event)

B.public void attributeRemoved(ServletContextAttributeEvent event)   

C. public void attributeReplaced(ServletContextAttributeEvent event)     

D.public void valueBound(HttpSessionBindingEvent event)

P355

3. 下列哪个不属于Servlet2.3提供的监听器。( )D

A.ServletContext对象状态变化(事件)的监听器P351

B.HttpSession对象状态变化(事件)的监听器P351

C.HttpServletRequest对象状态变化(事件)的监听器[没找到]

D.HttpServletResponse对象状态变化(事件)的监听器

【或者,可以按照P351的。没有response】

4. 为了实现对下列jsp代码动作的监听,需要定义的监听器必须实现下列哪些接口。( )BD

test.jsp文件代码如下:

<% getServletContext().setAttribute("userName","hellking"); getServletContext().removeAttribute("userName"); request.getSession.setAttribute("user","hellking"); %>

A. ServletContextListener           B. ServletContextAttributeListener

C. HttpSessionAttributeListener     D. HttpSessionBindingListener

E. ServletRequestAttributeListener

5.给定某Servlet程序的片段如下,用户在浏览器地址栏中键盘键入正确的请求URL并回车后,在控制台上显示的结果是。()C

   public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException ,IOException

   {

   System.out.println("get");

       doPost(request,response);

   }

   public void doPost(HttpServletRequest request,HttpServletResponse response)  throws ServletException ,IOException

   {

   System.out.println("post");

   }

A.get      B.post     C.getpost   D.postget

【嗯哼?】

二、判断[1:表示对;0:表示错;]

1. 部署过滤器的工作内容,实际就是在Web应用的Web.xml文件中配置过滤器。(  1)

2. 在Web.xml文件中部署监听器,用注册监听器,用映射监听器。( 0)P353

filter-mapping的配置:我们将uimfilter过滤器映射给所有的jsp文件【P342】

3. 如果使指定的IP访问JSP时报错,并告知用户不能访问,可以使用监听器。( 1 )

【监听器的理解:监听器好比一个卫兵,卫兵一直站在那里等待长官的命令,当卫兵收到长官的命令以后,立即执行

    之前已经协定好的事件。】

三、填空

1. 对Web应用来说,_______就是驻留在服务器端,在源数据和目的数据间,对Web请求和Web响应的头属性(Header)和内容体(Body)进行操作的一种特殊Web组件。过滤器&filter&Filter

2. 过滤器对象使用_______对象调用过滤器链中的下一个过滤器或者是目标资源。

FilterChain & filterchain & Filterchain & filterChainP339

3. 在J2EE中,使用Servlet过滤器时,需要在web.xml通过_____元素将过滤器映射到Web资源。[P342]

4. 在一个Filter中,处理filter业务的是____方法。 [P339-]

doFilter (ServletRequest request,ServletResponse response, FilterChain chain)

四、简答

1. 什么是过滤器?什么是监听器?分别应用在哪些方面?

2. Filter接口、FilterConfig接口和FilterChain接口的功能分别是什么?提供的方法有哪些?

3. ServletContextListener接口、ServletContextAttributeListener接口和HttpSessionBindingListener接口的功能分别是什么?提供的方法有哪些?

4. JSP乱码如何解决,列举几种解决方案?

5. 如何编写、配置过滤器,举例说明?

6. 如何编写、配置监听器,举例说明?

五、编程

1. 编写一个过滤器LogFilter.java,对Request请求进行过滤,记录请求的访问时间戳、从请求获取远程地址、从请求获取远程主机名、客户请求的资源URI、客户用的浏览器,并记录到日志文件中。

2. 编写一个监听器ContextListener .java,监听Web应用的启动和停止,并记录到日志文件中。

习题十四【对应三版本12章】

一. 选择题

1.  给定程序片段:

  <% String value = "beanvalue"; %>

  <% request.setAttribute ("com.example.bean", value); %>

  <%--插入代码处--%>

在第3行插入哪个EL表达式,能够计算并输出"beanValue"。( )E

A. ${bean}       B. ${value}      C. ${beanValue}

D. ${com.example.bean}

E. ${requestScope["com.example.bean"]}

F. ${request.get("com.example.bean").toString()}

2. 假定在web应用中,请求参数productID包含产品的标识符,下面哪两个EL表达式能够计算productID的值。(  )B

A. ${product ID}

B. ${param.productID}

C. ${params.productID}

D. ${params.productID[1]}

3. 用户的会话对象中存在属性cart,以下哪两条语句能够将该属性从session中删除( )  DE

A. ${cart = null}

B.

C.

D.

E. cart

F.

G. ${cart}

4. 在JSP页面中,开发人员需要构建如下的动态代码:

if ( test1 ) {

  // action1

 } else if ( test2 ) {

  // action2

} else {

  // action3

}

下面个JSTL的结构能够实现相同的功能?B

A.

action1

action2

action3

B.

action1

action2

action3

C.

action1

action2

action3

D.

action1

action2

action3

二. 判断[1:表示对;0:表示错;]

1. JSTL代码片段能够实现导入其他web资源的功能。(1 )

2. 是用于设置本地属性的JSTL标记。( 1)

3. SQL标记库中的标记是用来修改数据库中的记录。(0  )

三. 填空

1. 假定在web应用中,请求参数productID包含产品的标识符,能够计算productID值的EL表达式____。

2. JSTL的全称是____。

3. JSTL提供的标签分为5大类,分别是_____、______、______、______和______。

4. 在JSTL核心标签当中,网页数据的存取操作行为是由标签_______、_____与______等3个标签所设置的。

5. 在与url有关的标签中,______用来设置一个超级链接。

6. 流程控制标签用来控制程序运行的流程, __________搭配__________与__________,来进行多重判断。

7. 标签通过属性值_____、_____与_____控制循环的间隔数及起始与结束值。

8. 标签中使用____属性表示要输出的内容。

9. 标签的作用是____。

10. 标识EL语法元素的符号为______。

11.  EL中的三元运算符为________。

12. 与存活期范围有关的4个隐含对象分别是______、_______、_______以及_______。

13. 隐含对象_______与_______,可直接用来存取表单传递的参数。

14 系统初始化数据存放于WEB-INF文件夹的_____,隐含对象____可用来对其进行访问。

1. ${param.productID}
2. JSP Standard Tag Library  
3. JSTL提供的标签分为5大类,分别是[核心标签]、[i18n国际化格式标签]、[SQL标签]、[XML标签]和[函数标签]。
4. 在JSTL核心标签当中,网页数据的存取操作行为是由标签[out]、[set]与[remove]等3个标签所设置的
5. 在与url有关的标签中,[<c:url>]用来设置一个超级链接。
6. 流程控制标签用来控制程序运行的流程,[<c:choose>]搭配[<when>]与[<otherwise>],来进行多重判断。
7. <c:forEach>标签通过属性值[begin]、[end]及[step]控制循环的间隔数及起始与结束值。
8. value
9. 将EL表达式的值存储在一个变量中 
10. 标识EL语法元素的符号为[&{}]。
11. EL中的三元运算符为[A?B:C]。
12. 与存活期范围有关的4个隐含对象分别是[pageScope]、[requestScope]、[sessionScope]及[applicationScope]。
13. 隐含对象[param]及[paramValues],可直接用来存取表单传递的参数。
14. 系统初始化数据存放于WEB-INF文件夹的[web.xml]中,隐含对象[initParam]可用来对其进行存取。

四. 简答

1. 请简述JSTL与一般的JSP技术有何差异。

2. JSTL标签的分类主要有哪几种,请简单说明。

3. 使用JSTL有何优点?

4. 在Tomcat中安装使用JSTL的步骤有哪些?

5. 这两种标签都可以用来进行流程判断,请说明它们的差异及用法。

6. 说明如何使用JSTL所提供的标签设置联机信息。

7. 在EL中访问变量的值可以使用如下的EL元素:${变量名},如果没有指定变量的有效范围,JSP容器会依次到哪几个范围内查找该变量?

8. 说明如何运用隐含对象取得表单参数

1. 
请简述JSTL与一般的JSP技术有何差异。
   答:使用JSTL实现动态JSP页面的最大特点在于简单,避免了使用脚本片段带来的许多问题,Web应用开发人员利用JSTL可以取代直接嵌入页面的代码片段,提高程序可读性和可维护性。
2. 
JSTL标签的分类主要有哪几种,请简单说明。
答:核心标签库、I18N 格式标签库、SQL 标签库、XML 标签库、函数标签库 

4. 
在Tomcat中安装使用JSTL的步骤有哪些?
Sun的JSTL页面(http://java.sun.com/products/jsp/jstl)提供JSTL规范文档和相关实现的下载。Apache Jakarta项目是JSTL标准的一种实现,具体下载网址为:http://www.apache.org/dist/jakarta/taglibs/standard/。Windows系统下软件包的对应下载的文件名为:jakarta-taglibs-application-current.zip。
Jakarta JSTL的实现是一些JAR文件,如果在Web应用中使用JSTL,就需要在Web应用的WEB-INF\lib目录下包含JSTL的JAR文件。将jstl.jar和standard.jar复制到Tomcat网站根目录下的文件夹WEB-INF\lib当中,并将tld目录复制到Tomcat的WEB-INF目录下,重新启动Tomcat之后,就可以开始使用JSTL了。

5. 
<c:if>和<c:choose>这两种标签都可以用来进行流程判断,请说明它们的差异及用法。
答:<c:if>标签用于进行条件判断,只有当其test属性指定的Boolean表达式值为true时才会处理其本体的内容,否则不执行。
<c:choose>标记用来处理多个可选条件下的选择。<c:choose>标记需要和<c:when>、<c:otherwise>标记配套使用,并且<c:when>和<c:otherwise >必须依附在<c:choose>标签下。
6.
1.    说明如何使用JSTL所提供的<sql:setDataSource>标签设置联机信息。
答:
使用<sql:setDataSource>标记来指定数据源,其语法为:
<sql:setDataSource  
{ dataSource=“dataSource”  |  url=“jdbcUrl” 
[driver=“driverClassName”] 
[user=“userName”] 
[password=“password”] }
[var=“varName”] 
[scope=“{page|request|session|application}”] />
url属性用于指定连接的url。driver属性用于指定驱动程序。
dataSource属性为数据源。

7.
答:pageScope]、[requestScope]、[sessionScope]及[applicationScope]。

8.
答:隐含对象param与paramValues被设计用来提供使用request之外的一个选择,这两个对象最大的好处便是简化了request参数数据的存取,其功能相对于request对象如下表所示:
EL对象    Request对象
${param.paraName}    request.getParameter(paraName)
${paramValues.paraName }    request.getParameterValues(paraName)

以下为取值的范例程序:
${param.yearValue }
param内容包含当前网页所有的request参数,这段程序代码取得其中名为yearValue的参数值。

五. 编程

1. 使用JSTL标准标记库中的标记输出1~100的数字之和。

提示:本程序所使用的JSTL核心标记库的uri为http://java.sun.com/jsp/jstl/core。

2. 使用标准标签库中的标签、标签和标签列出1~100中能被2整除不能被3整除的数字。

图15-11 带body的标签