JSP第二版课后习题下载:https://download.csdn.net/download/weixin_42859280/11265785
JSP第二版课后习题答案下载:https://download.csdn.net/download/weixin_42859280/11265728
习题一
一、选择题
1、JSP文件在第一次运行的时候被JSP引擎编译为( )文件。A
A.Servlet B.Class
C.HTML D.XML
2、MVC设计模式将应用程序分为( )部分。B
A.2 B.3
C.4 D.5
MVC 模式将应用分为模型、视图和控制器三个部分
3、与JSP同类型的技术有( )。C
A.JavaScript B.Java
C.ASP.NET D.C#
4、以下文件名后缀中,只有( )不是动态网页的后缀。B
A..jsp B..html
C..aspx D..PHP
5、以下关于Servlet 和JSP的叙述中,正确的是( )C
A.JSP和Servlet都是Java 。
B.Servlet 是JAVA平台下实现的基本技术。
C.在Servlet中,需要用Java代码向客户端输出返回信息。
D.以上都不对。
6、JSP页面经过转译之后,将创建一个( )文件。B
A. applet B.servlet
C. application D.server
7、下面关于JSP的说法是不正确的( )C
A.将内容的生成和显示进行分离
B. 能够跨平台
C.可以直接在浏览器端解释执行
D. 采用标签简化页面开发
8、Jsp在转译阶段生成文件的扩展名是( ) B
A. class B. java
C. exe D. bin
9、http协议默认使用( ) 选一项 A
A.8080 端口 B.7001 端口
C.80 端口 D.25端口
10、在JDK 的工具包中用来编译Java 源文件的工具是( ) A
A.Javac B.Javap
C.Java D.Javah
二、判断[1:表示对;0:表示错;]
1、静态网页*.htm中可以嵌入脚本代码,如JavaScript、VBScript程序段等,但这些程序段不可能在服务器端运行,只能在客户端运行。( )1
2、动态网页是在服务器端被执行,其中嵌入的代码只能在服务器端运行,不能在客户端浏览器中运行。( )1
3、JSP文件可以单独运行。( )0
4、JSP是解释性语言。( )0【因为需要在服务器上编译】
5、JSP是以Servlet程序方式运行的,而ASP是由ASP引擎解释执行的。( )1
三、填空
1、JSP的英文全称是 Java Server Pages ,中文全称是 Java服务器端语言 。
2、JSP页面由 和嵌入其中的 所组成。
HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(Tag)
3、Tomcat是JSP运行的 Web 应用服务器 。
4、MVC设计模式将应用程序分为模型、 视图 和 控制器 。
5、JSP的实质就是 Servlet 。
四、问答题
1. 什么是静态网页?什么是动态网页?两者的区别是什么?试举例说明。
答:在网站设计中,纯粹HTML格式的网页通常被称为“静态网页”,早期的网站一般都是由静态网页制作的。静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。你编的是什么它显示的就是什么、不会有任何改变。静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。静态网页的网址形式通常为:www.example.com/eg/eg.htm,也就是以.htm、.html、.shtml、.xml等为后后缀的。在HTML格式的网页上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字母等,这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。
我们将静态网页的特点简要归纳如下:
(1)静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”;
(2)网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件;
(3)静态网页的内容相对稳定,因此容易被搜索引擎检索;
(4)静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;
(5)静态网页的交互性交叉,在功能方面有较大的限制
动态网页是与静态网页相对应的,也就是说,网页 URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见形式,而是以.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”,如有这样一个动态网页的地址为:http://www.pagehome.cn/ip/index.asp?id=1这就是一个典型的动态网页URL形式。这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的“动态效果”没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,采用动态网站技术生成的网页都称为动态网页。
我们将动态网页的一般特点简要归纳如下:
(1)动态网页以数据库技术为基础,可以大大降低网站维护的工作量;
(2)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等;
(3)动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
(4)动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索蜘蛛不去抓取网址中“?”后面的内容,因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求
静态网页与动态的区别
程序是否在服务器端运行,是重要标志。在服务器端运行的程序、网页、组件,属于动态网页,它们会随不同客户、不同时间,返回不同的网页,例如ASP、PHP、JSP、ASP.net、CGI等。运行于客户端的程序、网页、插件、组件,属于静态网页,例如html页、Flash、JavaScript、VBScript等等,它们是永远不变的。
2. 什么是B/S模式?什么是C/S模式?试举例说明。
答:即浏览器服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。
这种模式,我们通常将其成为瘦客户端模式。
典型的系统:网上银行、网上书店、Blog等等
客户机/服务器(Client/Server,C/S)模式
即客户机和服务器结构。这种体系结构模式是以数据库服务器为中心、以客户机为网络基础、在信息系统软件支持下的两层结构模型。这种体系结构中,用户操作模块布置在客户机上,数据存储在服务器上的数据库中。客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。目前大多数信息系统是采用Client/Server结构。
服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
这种模式我们也通常成为胖客户端模式。
典型的系统:QQ、MSN
3. 什么是JSP?与ASP、PHP、ASP.NET相比,JSP有哪些优点?
答:JSP(Java Server Pages)是由Sun Microsystems公司倡导的、许多公司参与一起建立的一种动态网页技术标准。JSP技术是用Java语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。
JSP不像CGI,ISAPI和NSAPI那样难于编写和维护,不像PHP那样只能适应中小流量的网站,也不像ASP那样受到跨平台的限制(只能运行于Microsoft公司开发的IIS和PWS上)。JSP体现了当今最先进的网站开发思想,和其他Web开发工具相比,JSP有着它自己强大的优势。
程序可以跨台平执行。JSP可以让开发人员在任意环境中进行开发,在任意环境中进行系统部署,在任意环境中扩展应用程序。
多样化和功能强大的开发工具支持。Java有许多非常优秀的开发工具,而且有许多可以免费得到,并且其中的许多已经可以顺利地运行于多种平台之下。
强大的可伸缩性。从只有一个小的jar文件就可以运行servlet/jsp到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,一台服务器到无数台服务器,Java显示了巨大的生命力。。
4. JSP、Java和JavaScript有什么区别与联系?
答:JAVASCRIPT从其名称含义是JAVA脚本,是在浏览器中运行的脚本语言,由于其大部分语法规范取自于JAVA语法规范,所以取名为JAVASCRIPT。JAVASCRIPT是一门基于对象的弱类型脚本编程语言,主要用来制作网页前台的技术。并且是现在比较热门的AJAX技术的核心。
JSP是JAVA SERVER PAGE的首字母缩写,顾名思义,是JAVA的服务端页面,其动态语法部分完全是JAVA规范。JSP是基于Java的技术,用于创建可支持跨平台及Web服务器的动态网页。从构成情况上来看,JSP页面代码一般由普通的HTML语句和特殊的基于Java语言的嵌入标记组成,所以它具有了Web和Java功能的双重特性。JSP是和ASP,PHP一样的服务器端语言,主要用来制作网站后台的技术。
JAVA是和C/C++一个等级的强类型编程语言,是纯面向对象的.比起JSP和JAVASCRIPT要复杂的多。一般学好JAVA就能很容易转向其他两门语言。
总结:JSP是JAVA技术的其中之一,所以学好了JAVA过渡到JSP从编程角度来讲比较容易,学好JSP以后要想学好JAVA,就还要学习更多的JAVA方面的东西,比如JAVABEAN,企业级应用等等。
JAVASCRIPT严格来讲,除了语法参照了JAVA语法规范外,和JAVA毫无关系,所以两者之间只是语法规范类似,相互之间的过渡就只有语法能够参照,其他的都得分别去了解,JAVASCRIPT是过程式语言,JAVA则是面向对象的。
五. 拓展实践题
(1) 体验静态网页和动态网页的特点。
在客户端浏览器地址栏中输入http://www.sina.com/进入新浪网主页,查看新闻内容,体验静态网页的特点。在客户端浏览器地址栏中输入http://www.csdn.net/index.htm,进入中国程序员网,注册会员,体会动态网页特点。在“程序员网”注册成功后,使用用户名登录程序员网,查询相关JSP的学习资料。
(2) 通过网上书店购书,体验Web应用程序特点。
习题二
一、选择题
1、在网页中插入图像使用标签( )。A
A.<img> B.<image>
C.<pic> D.<picture>
2、表格标签是( )。A
A.<table> B.<td>
C.<tr> D.<th>
3、表单项<input>标签中表示插入提交按钮时,type的属性值需设为( )。B
A.button B.submit
C.reset D.btn
4、HTML5中,<input>标签的属性type为( )时用户可以通过鼠标在调色板上自由的选择某种颜色。A
A.color B.check
C.select D.look
5、关于CSS,以下叙述错误的是( )。C
A. CSS的中文意思是层叠样式表,简称样式表。
B. CSS可以精确地控制网页中元素的样式。
C. 一个HTML网页文件只能应用一个CSS文件。
D. CSS文件可以单独保存而不必和HTML文件合并在一起。
6、下列选项中,应用了行内样式的是( )。 C
A. <p class="s1"> B. <p id="s1">
C. <p style="color:green;"> D. <p class="color:green;">
二、判断[1:表示对;0:表示错;]
1、HTML的中文含义是超文本标记语言。( )1
2、colspan是<td>标签的属性,表示跨越的列数,例如“colspan=4”表示这一格的宽度为4个列的宽度。( )1
3、表单在网页中用来给访问者填写信息,从而能采集客户端信息,使页面具有交互信息的功能。( )1
4、超链接只能在不同的网页之间进行跳转。( )0
5、文本链接使用属性a{text-decoration:none;}可以设置链接加上下划线。( )0
三、填空
1、表格由3个基本组成部分,分别为行、列和 单元格 。
2、CSS中ID选择器在定义的前面要有指示符 # 。
3、段落标签是 <p>...</p> 。
4、当<input>标签的type属性值为 date 时,代表在网页中加入一个日期表单项。
四、解答题
1. HTML文档的基本结构是什么?
答:
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
...
</body>
</html>
2. 完成如图2-25所示网页,使用表格布局,使用CSS控制样式,表格第一行的日期是使用JavaScript显示的系统当前日期,当点击“查看谜底”时弹出谜底。
图2-25综合练习
习题三【对应2章,2019.6.30不用看】不用看不用看
一、选择题
1、WebContent文件夹用来保存的文件是( )。A
A. JSP文件和HTML文件
B.CLASS文件和JAR文件
C.WEB文件和JAVA文件
D.以上都不对
2、在WEB应用程序的目录结构中,在WEB-INF文件夹外的文件为( )。A
A..jsp文件
B..class文件
C..jar文件
D.web.xml文件
3、Tomcat服务默认使用的端口号,可以在( )文件中修改。A
A. server.xml
B.web.xml
C. context.xml
D. admin.xml
4、当多个用户请求同一个JSP页面时,Tomcat服务器为每个客户启动一个( )B
A.进程
B.线程
C.程序
D.服务
5、在本机上安装了Tomcat服务器,使用的均为默认安装选项,将自己编写的test.jsp文件放在Tomcat安装目录\webapps\examples目录里,那么在本机的浏览器中要访问test.jsp文件,应使用的url地址为( )A
A.http://localhost:8080/examples/test.jsp
B.Http://localhost:8080/ webapps /examples/test.jsp
C.HTTP://localhost:8080 /test.jsp
D. http://localhost /examples/test.jsp
二、判断[1:表示对;0:表示错;]
1、Lomboz是一个Eclipse插件。一定要针对Eclipse版本来选择相应版本的Lomboz,否则可能导致Lomboz无法正常使用。1
2、Tomcat是一个JSP/Servlet容器。( )1
3、在Eclipse开发环境中Java文件代码的编译输出目录为WEB-INF。( )0
4、如果要在浏览器中运行JSP页面,Tomcat必须处于启动状态。( )1
5、安装MyEclipse以前 需先安装Eclipse。( )0
三、填空
1、除了开发工具之外,还要安装一个支持Java Servlet的 Web服务器 ,或者在现有的Web服务器上安装 Servlet 软件包。
2、Tomcat的全局配置文件是 server.xml 。
3、 Myeclipse 是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错。
4、在Eclipse的开发项目中src目录用来存放 java源文件 。
5、MyEclipse MyEclipse6.0 以后版本安装时不需安装Eclipse。
四、问答题
1. 为什么在客户端双击.jsp文件不能运行JSP?
答:JSP是服务器端程序,它的运行需要服务器支持。
2. JSP是否支持JavaScript语言?
答:JSP的标准支持语言是JAVA,JavaScript的客户端支持普遍,JSP程序中可以嵌入JavaScript
3、安装JDK有什么用,是否需要掌握JDK的命令使用?
答:JDK是JAVA开发工具包,它提供JSP程序运行的类包,JSP服务器会自动用用JDK编译和运行JSP。
4、Tomcat服务器有什么优点?
答:免费、开源、支持最新标准、更新快、跨平台
习题四【第三版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 %> <br>
b:<%= b %>
选项:
A.a=0 b=0 B. a=1 b=1
C. a=2 b=1 D. a=2 b=2
6、关于<jsp:include>, 下列说法不正确的是( )。D
A. 它可以包含静态文件。
B. 它可以包含动态文件。
C. 当它的flush属性为true时,表示缓冲区满时,将会被清空。
D. 它的flush属性的默认值为true。
7、在JSP中,对<jsp:setProperty>标记描述正确的是( )。C
A. <jsp:setProperty>和<jsp:getProPerty>必须在一个JSP文件中搭配出现。
B. 就如同session.setAttribute()一样,来设计属性/值。
C. 和<jsp:useBean>动作一起便用,来设置bean的属性值。
D. 就如同request.setAttribute()一样,来设置属性/值。
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. /**注释内容**/
10、J2EE中在JSP中要使用user包中的User类,则以下写法正确的是( )。A
A. <jsp:useBean id="user"class="user.User"scope="page"/>
B. <jsp:useBean class="user.Use.class"/>
C. <jsp:useBean name="user"class="user.User"/>
D. <jsp:useBeam id="user"class="user"import="user.*"/>
二、判断[1:表示对;0:表示错;]
1、在page指令中,import参数允许重复使用多次。( )1
2、<!-- -->中可以使用<% %>动态输出注释内容,同时<%-- --%>中也可以使用<% %>,因为预览JSP页面时没有报错。( )1
3、当page标识的isThreadSafe属性设为true时,JSP只可以接受一个用户访问。( )0
4、<jsp:include page="body.jsp?name=tom&password=123" />可用于在JSP页面中包含body.jsp文件,并传递两个参数name和password。( )0
5、<%@ include file=”URL” %>允许包含动态文件和静态文件,但是这两种包含文件的结果是不同的,如果文件仅仅是静态文件,那么这种包含仅仅是把包含文件的内容加到JSP文件中去,这个被包含的文件不会被JSP编译执行。相反地,如果被包含文件是动态文件,那么这个被包含文件会被JSP编译器执行。( )0
三、填空
1、JSP有三个指令元素:
<%@page%>、<%@include %>、<%@taglib %>
2、JSP的脚本元素包含以下4个部分:
隐藏注释(Hidden Comment)、声明(Declarations)、脚本段(ScriptLets)、表达式(Expression)
、 、 、 。
3、动作元素<jsp:setProperty>的作用为 设置javabean对象的属性值 。
4、<jsp:forward>的作用是 页面跳转 。
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:forward>与<jsp:param>操作元素各有什么功能?
答:可使用的操作元素有<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)。
A. response.getParameter("name");
B. request.getAttribute("name");
C. request.getParameter("name");
D. request.getParameters("name");
2、在J2EE中,request对象的( )方法可以获取页面请求中一个表单控件对应多个值时的用户的请求数据。
A.String getParameter(String name)
B.String[] getParameter(String name)
C.String getParameterValuses(String name)
D.String[] getParameterValues(String name)
3、以下对象中作用域最大的是( )。
A.request B.session
C.application D.page
4、在JSP页面中,能够完成输出操作的内置对象是 ( )。
A. out B. response
C. request D. config
5、要在session对象中保存属性,可以使用以下哪个语句?( )
A. session.getAttribute("key","value");
B. session.setAttribute("key","value");
C. session.setAtrribute("key");
D. session.getAttribute("key");
6、需要删除session中的某个属性key,可以调用下面的( )方法。
A. remove(“key”)
B. removeAttribute("key")
C. invalidate()
D. logout()
7、在J2EE中,假如HttpSession的getLasAccessTime()方法返回值为x,getCreationTime()方法返回值为y,则为x - y()。
A.两个连续请求之间间隔的最长时间
B.最近的两个连续请求之间的时间间隔
C.最后使用session发送请求的时间和session创建时间的间隔
D.最后使用session发送请求的时间
8、以下代码能否编译通过,假如能编译通过,运行时得到什么输出结果( )。
<%
request.setAttribute("count",new Integer(0));
Integer count = request.getAttribute("count") ;
%>
<%=count %>
A. 编译不通过
B. 可以编译运行,输出0
C. 编译通过,但运行时抛出ClassCastException
D. 可以编译通过,但运行无输出
9、现在session中没有任何属性,阅读下面2个JSP中的代码,将分别输出( )。
<%
out.println(session.getAttribute("svse "));
%>
<%
session.invalidate();
out.println(session.getAttribute("svse "));
%>
A. null, 异常信息
B. null, null,
C. 异常信息,异常信息
D. 异常信息,null
10、Form表单提交的信息中含有“name= svse”,阅读下面的JSP,a.jsp将输出()。
接受该请求的JSP:
<%
response.sendRedirect(“a.jsp");
%>
a.jsp包含如下代码
<%=request.getParameter(“name") %>
A. null
B. 什么都不输出
C. 异常信息
D. svse
二、判断[1:表示对;0:表示错;]
1、<jsp:forward ... >标记的page属性值是相对的URL地址,只能静态的URL。( )
2、利用response对象的sendRedirect方法只能实现本网站内的页面跳转,但不能传递参数。( )
3、contentType属性用来设置JSP页面的MIME类型和字符编码集,取值格式为"MIME类型"或"MIME类型;charset=字符编码集",response对象调用addHeader方法修改该属性的值。( )
4、在J2EE中,重定向到另一个页面,可以用request.sendRedirect("http://www.jb-aptech.com.cn");( )
5、应用application对象能在不同用户之间共享数据( )。
三、填空
1、当客户端请求一个JSP页面时,JSP容器会将请求信息包装在 对象中。
2、已知文件look.jsp的路径为c:/myjsp/inc,文件login.jsp的路径为c:/myjsp。若使用response的重定向方法由look.jsp跳转到login.jsp中,则正确的写法为________________ 。
3、当getParameter()方法的参数部分指定的输入控件不存在时,该方法的返回值为 ____________。
4、列表框的name属性值为“city”,并且允许多选,若要一次读取所有的选中项并存放于数组str中,则对应的java语句为____________________ 。
5、给定一个JSP程序源码如下:
<jsp:include page = “test.jsp”flush = “true”>
<jsp:param name = “location”value = “beijing”/>
</jsp:include>
在test.jsp中加入____________________代码片断可以输出参数location的值。
四、简答
1. JSP中的内建对象包含哪些?试简述这些对象在JSP中的主要功能。
2. response重定向方法sendRedirect()和动作元素<jsp:forward>的区别是什么?
3. application与session对象存储数据变量的方式有何区别?
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保存在客户端
2、有关会话跟踪技术描述不正确的是( )。D
A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端
B.关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。
C.在禁用Cookie时可以使用URL重写技术跟踪会话。
D.隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示。
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、<jsp:useBean>声明对象的默认有效范围为( )。A
A. page B. session C. application D. request
2、编写JavaBean就是编写一个Java类,所以只要会写类就能编写一个Bean,一个完整JavaBean在类的命名上需要遵守以下规则,其中错误的是( )。D
A. 类中方法的访问属性必须是public的。
B. 对于boolean类型的成员变量,允许使用is代替get。
C. 类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。
D. 在JavaBean中定义属性时,应该定义成public。
3、关于JavaBean的说法,哪个是正确的?( )D
A. JavaBean的具体类可以不是public的。
B. JavaBean可以只提供一个带参数的构造器。
C. jsp:userBean可以向HTML标记一样不关闭。
D. JavaBean可以保存状态。
4、下边哪个不是MVC中的组成部分?( )B
A. JavaBean B. FrameWork C. JSP D. Servlet
5、下面哪一个是正确使用JavaBean的方式?( )A
A. <jsp:useBean id="address" class="AddressBean" />
B. <jsp:useBean name="address" class="AddressBean"/>
C. <jsp:useBean bean="address" class="AddressBean" />
D. <jsp:useBean beanName="address" class="AddressBean" />
6、在JSP中使用<jsp:getProperty>标记时,不会出现的属性是:( )C
A. name B. property C. value D.以上皆不会出现
7.、在JSP中调用JavaBean时不会用到的标记是:( )A
A.<javabean> B. <jsp:useBean> C.<jsp:setProperty> D. <jsp:getProperty>
8.、关于JavaBean正确的说法是:( )A
A. Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写
B. 在JSP文件中引用Bean,其实就是用<jsp:useBean>语句
C. 被引用的Bean文件的文件名后缀为.java
D. Bean文件放在任何目录下都可以被引用
9、 test.jsp文件中有如下一行代码:
<jsp:useBean id=”user” scope=”__” type=”com.UserBean”>
要使user对象可以作用于整个应用程序,下划线中应添入( )。D
A. page B. request C. session D. application
10、下面哪项是错误的设置Bean属性值的方法( )。 B
A. <jsp:setProperty name="beanInstanceName" property= "*" />
B.<jsp:setProperty name="beanInstanceName" property="propertyName"/>
C.<jsp:setProperty name="beanInstanceName" property="propertyName"
param="parameterName" />
D. <jsp:setProperty name="beanInstanceName" property="*" value="{string | <%= expression
%>}"/>
二、判断题[1:表示对;0:表示错;]
1、在MVC模式中,因为Servlet负责创建JavaBean,所以JavaBean的构造函数可以带有
参数,除了保留get和set规则外,还可以有其他功能的函数。( )1
2、Bean文件放在任何目录下都可以被引用。( )0
3、get请求处理的数据量大小不受到限制。( )0
4、<jsp:getProperty>必须出现在其对应的<jsp:usebean>标签之后。( )1
5、相同的Javabean只会实例化一次。( )0
三、填空题
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 提交成功后的结果
习题九
一、选择题
1、以下关于MySQL的说法中错误的是:( ) D
A. MySQL是一种关系型数据库管理系统
B. MySQL软件是一种开放源码软件
C. MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中
D. MySQL配置向导将用户选择结果放到模板中生成一个 my.xml文件
2、要想对表中记录分组查询,可以使用哪一子句?( )A
A. GROUP BY B. AS GROUP C. GROUP AS D. TO GROUP
3、使用 DELETE 删除数据时,会有一个返回值,其含义是:( )A
A.被删除的记录的数目
B.删除操作所针对的表名
C.删除是否成功执行
D.以上均不正确
4、在显示数字时,要想使用0作为填充符,可以使用哪一关键字?( )A
A. ZEROFILL B. ZEROFULL C.FILLZERO D. FULLZERO
5、以下哪些命令是DDL语句( )B
A. ALTER TABLE命令
B. CREATE DATABASE命令
C. SELECT 命令
D. INSERT命令
二、填空题
1、在创建数据库时,可以使用_If not exists__子句确保如果数据库不存在就创建它,如果存在就直接使用它。
2、有时我们在查询中,需要从查询的结果中消除重复的内容,这时可以使用______DISTINCT___关键字来实现这一要求。
3、如果一个列是____整数_____类型,则可以使用“___AUTO_INCREMENT______________”关键字 如果一个列是指定该列的值自动增加。
4、使用MySQL命令时,缺省主机名是localhost。
5、在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过_主键____。
三、上机练习
1. 创建一张学生表,包含以下信息,学号、姓名、年龄、性别、家庭住址、联系电话。
2. 修改学生表的结构,添加一列信息,学历。
3. 修改学生表的结构,删除一列信息,家庭住址。
4. 向学生表添加如下信息:
学号 姓名 年龄 性别 联系电话 学历
1) A 22 男 123456 小学
2) B 21 男 119 中学
3) C 23 男 110 高中
4) D 18 女 114 大学
5. 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”。
6. 删除学生表的数据,将姓名以C开头、性别为男的记录删除。
7. 查询学生表的数据,将所有年龄小于22岁、学历为“大专”的学生的姓名和学号显示出来。
8. 查询学生表的数据,查询所有信息,列出前25%的记录。
9. 查询出所有学生的姓名、性别和年龄,并按年龄降序排列。
10. 按照性别分组查询所有学生的平均年龄。
习题十【对应三版本8章】
一、选择题
1、创建JSP应用程序时,配置文件web.xml应该在程序下的( )目录中。C
A. admin B. servlet C. WEB-INF D. WebRoot
2、 Oracle数据库的JDBC驱动程序类名及完整包路径为:( )D
A. jdbc.driver.oracle.OracleDriver
B. jdbc.oracle.driver.OracleDriver
C. driver.oracle.jdbc.OracleDriver
D. oracle.jdbc.driver.OracleDriver
3、请选出微软公司提供的连接SQL Server 2000的JDBC驱动程序。( )C
A. oracle.jdbc.driver.OracleDriver B. sun.jdbc.odbc.JdbcOdbcDriver
C. com.microsoft.jdbc.sqlserver.SQLServerDriver 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描述正确( )
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应用程序配置文件的根元素为 _______<web-app>___________。
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.service() B.init() C. doPost() D.destroy()
2. Servlet 可以在以下( )三个不同的作用域存储数据。
A.HttpServletRequest、HttpServletResponse、HttpSession
B.HttpServletRequest、HttpSession、ServletContext
C.HttpServletResponse、HttpSession、ServletContext
D.HttpServletRequest、HttpServletResponse、ServletContext
3. 在J2EE中,Servlet从实例化到消亡是一个生命周期。下列描述正确的是( )。
A.在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束Servlet就消亡了
B.init()方法是容器调用的Servlet实例此方法仅一次
C.在容器把请求传送给Servlet之后,和在调用Servlet实例的doGet或者doPost方法之前,容器不会调用Servlet实例的其他方法
D.在Servlet实例在service()方法处理客户请求时,容器调用Servlet实例的init()方法一定成功运行了
4. 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是( )。
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部署文件的片段:
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>myservlet.example.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/helpHello</url-pattern>
</servlet-mapping>
访问此Servlet的URL地址是。( )
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?( )
A. <servlet>
<servlet-class>com.example.LoginServlet</servlet-class>
<url-pattern>/utils/LoginServlet</url-pattern>
</servlet>
B. <servlet-mapping>
<servlet-class>com.example.LoginServlet</servlet-class>
<url-pattern>/utils/LoginServlet</url-pattern>
</servlet-mapping>
C. <servlet>
<servlet-mapping>
<servlet-class>com.example.LoginServlet</servlet-class>
<servlet-name>Login Servlet</servlet-name>
<url-pattern>/utils/LoginServlet</url-pattern>
</servlet-mapping>
</servlet>
D. <servlet>
<servlet-name>Login.Servlet</servlet-name>
<servlet-class>com.example.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login.Servlet</servlet-name>
<url-pattern>/utils/LoginServlet</url-pattern>
</servlet-mapping>
7. 在Web容器中,以下哪两个类别的实例分别代表HTTP请求与响应对象?( )
A. HttpRequest B. HttpServletRequest
C. HttpServletResponse D. HttpPrintWriter
二. 判断[1:表示对;0:表示错;]
1. 不能给一个Servlet映射多个访问路径。( )
2. JSP技术是在Servlet之后产生的,它以Servlet为核心技术,是Servlet技术的一个成功应用。( )
3. 实现转发需要两个步骤,首先在Servlet中要得到RequestDispatcher对象,然后在调用该对象的forward方法实现转发。( )
三. 填空
1. 在Servlet中有两种异常处理机制:______和_______。
2. 如果某个类要成为Servlet,则它应该继承_________、________或_________接口或类。
3. Servlet 的生命周期又一系列事件组成,把这些事件按照先后顺序排序_________、________、_________、________、_________。
四. 简答
1. 简述Servlet和JSP的关系。
2. 简述Servlet的生命周期。
3. 简述HttpSession接口的功能和使用方法。
4. 简述开发一个Servlet所需要的步骤。
五、编程
1. 编写一个HTML页面和一个Servelt,实现利用Servelt()的doPost()方法读取HTML文件中Form表单内容。
2. 编写一个利用HttpSession接口的用户登录的Servlet,当用户已经登录时,返回欢迎信息,否则转向登录页面。
习题十三【对应三版本11章】
一、选择题
1. 在web.xml文件中,有下列代码:
<filter-mapping>
<filter-name>LogFilter</filter-name>
<url-pattern>/*.jsp</url-pattern>
< dispatcher > REQUEST </ dispatcher >
< dispatcher > INCLUDE < /dispatcher >
</filter-mapping>
Hello.jsp文件的代码如下:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<html>
<body bgcolor=cyan>
<jsp:include file="date.jsp"/>
<jsp:forward page="helpHello.jsp"/>
<a href="login.jsp">登录</a>
</body>
</html>
访问Hello.jsp文件,过滤器LogFilter过滤的文件有( )
A.Hello.jsp B.helpHello.jsp
C.login.jsp D.date.jsp
2. 下列哪个不属于监听器接口ServletContextAttributeListener提供的方法()
A.public void attributeAdded(ServletContextAttributeEvent event)
B.public void attributeRemoved(ServletContextAttributeEvent event)
C. public void attributeReplaced(ServletContextAttributeEvent event)
D.public void valueBound(HttpSessionBindingEvent event)
3. 下列哪个不属于Servlet2.3提供的监听器。( )
A.ServletContext对象状态变化(事件)的监听器
B.HttpSession对象状态变化(事件)的监听器
C.HttpServletRequest对象状态变化(事件)的监听器
D.HttpServletResponse对象状态变化(事件)的监听器
4. 为了实现对下列jsp代码动作的监听,需要定义的监听器必须实现下列哪些接口。( )
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并回车后,在控制台上显示的结果是。()
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文件中配置过滤器。( )
2. 在Web.xml文件中部署监听器,用<listener>注册监听器,用<listener-mapping>映射监听器。( )
3. 如果使指定的IP访问JSP时报错,并告知用户不能访问,可以使用监听器。( )
三、填空
1. 对Web应用来说,_______就是驻留在服务器端,在源数据和目的数据间,对Web请求和Web响应的头属性(Header)和内容体(Body)进行操作的一种特殊Web组件。
2. 过滤器对象使用_______对象调用过滤器链中的下一个过滤器或者是目标资源。
3. 在J2EE中,使用Servlet过滤器时,需要在web.xml通过_____元素将过滤器映射到Web资源。
4. 在一个Filter中,处理filter业务的是____方法。
四、简答
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"。( )
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的值。( )
A. ${product ID}
B. ${param.productID}
C. ${params.productID}
D. ${params.productID[1]}
3. 用户的会话对象中存在属性cart,以下哪两条语句能够将该属性从session中删除( )
A. ${cart = null}
B. <c:remove var="cart" />
C. <c:remove var="${cart}" />
D. <c:remove var="cart" scope="session" />
E. <c:remove scope="session">cart</c:remove>
F. <c:remove var="${cart}" scope="session" />
G. <c:remove scope="session">${cart}</c:remove>
4. 在JSP页面中,开发人员需要构建如下的动态代码:
if ( test1 ) {
// action1
} else if ( test2 ) {
// action2
} else {
// action3
}
下面个JSTL的结构能够实现相同的功能?
A. <c:choose>
<c:when test="test1" >action1</c:when>
<c:when test="test2">action2</c:when>
<c:when>action3</c:when>
</c:choose>
B. <c:choose>
<c:when test="test1">action1</c:when>
<c:when test="test2">action2</c:when>
<c:otherwise>action3</:otherwise>
</c:choose>
C. <c:if test="test1">
<c:then>action1</c:then>
<c:else-if test=""test2">
<c:then>action2</c:then>
<c:else>action3</c:else>
</c:else-if>
</c:if>
D. <c:if test="test1">
<c:then>action1</c:then>
<c:else>
<c:if test="test2">
<c:then>action2</c:then>
<c:else>action3</c:else>
</c:if>
<c:else>
<c:if>
二. 判断[1:表示对;0:表示错;]
1. JSTL代码片段<c:import url="foo.jsp"/>能够实现导入其他web资源的功能。( )
2. <fmt:setLocale>是用于设置本地属性的JSTL标记。( )
3. SQL标记库中的标记<sql:query>是用来修改数据库中的记录。( )
三. 填空
1. 假定在web应用中,请求参数productID包含产品的标识符,能够计算productID值的EL表达式____。
2. JSTL的全称是____。
3. JSTL提供的标签分为5大类,分别是_____、______、______、______和______。
4. 在JSTL核心标签当中,网页数据的存取操作行为是由标签_______、_____与______等3个标签所设置的。
5. 在与url有关的标签中,______用来设置一个超级链接。
6. 流程控制标签用来控制程序运行的流程, __________搭配__________与__________,来进行多重判断。
7. <c:forEach>标签通过属性值_____、_____与_____控制循环的间隔数及起始与结束值。
8. <c:out>标签中使用____属性表示要输出的内容。
9. <c:set>标签的作用是____。
10. 标识EL语法元素的符号为______。
11. EL中的三元运算符为________。
12. 与存活期范围有关的4个隐含对象分别是______、_______、_______以及_______。
13. 隐含对象_______与_______,可直接用来存取表单传递的参数。
14 系统初始化数据存放于WEB-INF文件夹的_____,隐含对象____可用来对其进行访问。
四. 简答
1. 请简述JSTL与一般的JSP技术有何差异。
2. JSTL标签的分类主要有哪几种,请简单说明。
3. 使用JSTL有何优点?
4. 在Tomcat中安装使用JSTL的步骤有哪些?
5. <c:if>和<c:choose>这两种标签都可以用来进行流程判断,请说明它们的差异及用法。
6. 说明如何使用JSTL所提供的<sql:setDataSource>标签设置联机信息。
7. 在EL中访问变量的值可以使用如下的EL元素:${变量名},如果没有指定变量的有效范围,JSP容器会依次到哪几个范围内查找该变量?
8. 说明如何运用隐含对象取得表单参数
五. 编程
1. 使用JSTL标准标记库中的标记输出1~100的数字之和。
提示:本程序所使用的JSTL核心标记库的uri为http://java.sun.com/jsp/jstl/core。
2. 使用标准标签库中的<c:foreach>标签、<c:if>标签和<c:out>标签列出1~100中能被2整除不能被3整除的数字。
习题十五【19.6.30.不考】
一.选择题
1. 在动态Web页面使用自定义标签,需要编写的文件有( )。
A. tag文件 B. tld文件 C. dtd文件
D. .xml文件 E. java文件 F. jsp文件
2. 所有的标签处理器类都要实现( )接口。这个接口是在JSP 2.0中新增加的一个标识接口,它没有任何方法,主要是作为基类。
A. JspTag B. Tag C. SimpleTag D. BodyTag
3. 作为 IterationTag接口中doAfterBody()方法的常量返回值,表示请求重复执行标签体的是( )。
A. EVAL_BODY_INCLUDE B. EVAL_BODY_ AGAIN
C. SKIP-BODY D. EVAL-PAGE
E. EVAL_BODY_BUFFERED F. SKIP-PAGE
二. 判断[1:表示对;0:表示错;]
1. 在web.xml的根元素<web-app>下通过<jsp-config>元素指定要引入的标签库。( )
2. public static final int EVAL-BODY- INCLUDE作为doStartTag()方法的返回值,表示标签体要被执行,执行结果输出到当前的输出流中。( )
3. public static final int EVAL-PAGE作为doStartTag()方法的返回值,表示忽略标签体。( )
三. 填空
1. 在J2EE中,标签库中文件(*.tld)存放在____目录下。
2. 在J2EE中,若要在JSP正确使用标签:<x:getKing/>,在jsp中声明的taglib指令为:
<%@taglib uri=”/WEB-INF/myTags.tld”prefix=”___"%> 。
四. 简答
1. 创建自定义标签哪有几种方式?如何使用自定义标签?
2. 编写自定义标签的步骤是什么。
五. 编程
1. 使用Tag接口编写一个输出welcome的自定义标签。
2. 通过继承TagSupper类实现输出welcome的自定义标签。
3. 通过继承BodyTagSupport类实现welcome的迭代输出。
4. 进行算术运算,把结果显示在页面上,如图15-11所示。标签类MyBody.java采用带Body的标签实现,Jsp页面body.jsp使用用标签。
图15-11 带body的标签
习题十六
采用MVC模式编写用户登录验证程序,系统中的文件可参考表16-11提示。
表16-11 用户登录模块划分
分 类 | 文 件 名 | 作 用 |
JSP页面 | welcome.jsp | 成功登录显示欢迎界面。 |
login2.jsp | 进行登录界面 | |
loginerr.jsp | 登录错误重定向页面 | |
JavaBean | UserBean.java | 保存多个用户信息,可以在多个JSP页面中传递用户数据 |
UserCheckBean.java | 对用户名和密码进行验证 | |
Servlet | ControllerServlet | 作为控制器,接收客户登录的信息,调用JavaBean组件对用户登录信息进行验证,并根据验证结果调用JSP页面返回给客户端 |
部署描述符 | web.xml | 部署Servlet文件 |